使用函数式API训练wide and deep模型出错

来源:2-12 函数API实现wide&deep模型

qq_白玉_1

2019-06-15

http://img.mukewang.com/szimg/5d04ba39000165d110000750.jpg
训练时直接就出现nan,由于想不通,我直接使用老师源代码训练,依旧如此,望大佬解答,谢谢

写回答

8回答

qq_白玉_1

提问者

2019-06-19

经过实验,与2-4节问题一样,受剃度下降学习率的影响,将学习率改成0.001以后可以正常训练。
我使用的是 GPU版的tf2.0beta,如果后面有出现一样问题的同学可以一起交流,探讨出现这些问题的原因

3
0

OliverSong

2019-06-24

这是学习率过大导致的,导致梯度发散,无法得到结果,学习率调低就可以。应该老师的weights初始化运气较好,才没有发生这个问题。

1
0

闪闪一年

2020-04-17

tensorflow 2.0.0
tensorflow_core.keras 2.2.4-tf

也出现一样的问题,照着老师新的代码调低学习率就好了

0
0

Antai_Zhu

2020-02-27

我的也是,训练都是nan

0
0

正十七

2020-02-05

我们代码库里的代码有所更新,这里新代码里使用的learning rate是0.001,应该就能收敛啦。

https://git.imooc.com/coding-344/tensorflow2.0_course/src/master/chapter_2/tf_keras_regression-wide_deep.ipynb

0
2
Antai_Zhu
老师,已经找到方法了,多谢,就是学习率过大导致无法收敛
2020-02-27
共2条回复

慕侠9077389

2019-07-01

原因可能是 model.fit()调用时,你调用的是x_train 而不是x_train_scaled.

0
0

Linanyaoooo

2019-06-23

我尝试换了一下优化器,能保证训练过程loss收敛,换了一个Adam。 是不是sgd对于梯度的控制不够稳定,我的tensor 版本 1.13, 2.0 实在这一点上进行优化了么

0
1
Antai_Zhu
请问为什么换成adam就可以了呢
2020-02-27
共1条回复

正十七

2019-06-16

同学你好,这个的原因是因为你的环境是1.*的,如果使用2.0的环境应该就没问题。应该是keras的实现在这两个版本有变动。初步怀疑是因为float和int之间相互转换导致的,但是我还没有确凿的证据。

建议先使用tensorflow2.0的环境,应该就没问题了。

0
2
战战的坚果
老师,我赞成这个同学的观点
2020-02-04
共2条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程