tensorflow训练神经网络时loss出现nan的问题

tensorflow训练神经网络时loss出现nan的问题

一般情况下原因是由于优化器上的学习比率learning_rate定义值太大,如:

train_step = tf.compat.v1.train.GradientDescentOptimizer(0.1).minimize(loss) 

运行打印loss:

for i in range(100):
    sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
    #这里我们用全部数据来进行train,其实有个forcast GDO只用一部分数据进行训练,能使训练效率更高
    if i % 50:
        print('实际偏差率:',sess.run(loss,feed_dict={xs:x_data,ys:y_data})[0])

其结果为:

实际偏差率: 9477596000000000.0
实际偏差率: inf
实际偏差率: nan
实际偏差率: nan
实际偏差率: nan
实际偏差率: nan
实际偏差率: nan
实际偏差率: nan
......
实际偏差率: nan

将其中learning_rate的值改为0.01或者更小:

train_step = tf.compat.v1.train.GradientDescentOptimizer(0.01).minimize(loss) 

结果为:

实际偏差率: 5.9452715
实际偏差率: 5.5919566
实际偏差率: 5.1778126
实际偏差率: 0.023199111
实际偏差率: 0.26209167
实际偏差率: 0.41470975
实际偏差率: 0.47333607
实际偏差率: 0.48828265
实际偏差率: 0.48628327
实际偏差率: 0.47839066
实际偏差率: 0.46885166
实际偏差率: 0.4591693
.......
实际偏差率: 0.014343787
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值