深度学习训练中的种子设置



深度学习训练中的种子设置

1. 为什么需要设置随机种子

在神经网络训练过程中,经常会通过随机的方式对一些数据进行初始化:

1、随机权重,网络有些部分的权重没有预训练,它的值则是随机初始化的,每次随机初始化不同会导致结果不同。
2、随机数据增强,一般来讲网络训练会进行数据增强,特别是少量数据的情况下,数据增强一般会随机变化光照、对比度、扭曲等,也会导致结果不同。
3、随机数据读取,喂入训练数据的顺序也会影响结果。

如果每次的实验都进行随机操作,那么实验的结果也会具有随机性,即相同的训练数据,相同的超参数,但是最终的结果可能会相差好几个百分点。

如何解决随机带来的问题呢?即,使得我们每次实验具有可复现性?

在计算机中的随机,其实不是真随机,都是伪随机,通过设置一个随机数种子,就能使得每次随机产生的结果都相同。

2. 随机种子的设置及使用

一般训练会用到多个库包含有关random的内容。

在pytorch构建的网络中,一般都是使用下面三个库来获得随机数,我们需要对三个库都设置随机种子:
1、torch库;
2、numpy库;
3、random库。

通常只会在两个地方使用这些random操作:初始化操作和数据加载操作,只需要在这两个操作之前对种子进行设置即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值