ValueError:No gradients provided for any variable
- 错误解释:要进行训练的变量与 Loss function 之间没有路径联系起来
- 原因:很大可能是因为在
sess.run(train_step)
使用了sess.run()
或者是x.eval()
- 修改方法:在训练之前,不要使用任何的
run
,修改代码,使得所有的 op 在最后的会话 'session' 中进行实现
训练之后输出的结果为 nan
具体的原因不太清楚,我改正我这个问题的做法是将前面代码的 tf.nn.softmax(x)
改为了 tf.nn.log_softmax(x)
就解决了
ValueError: setting an array element with a sequence
通常是因为这儿需要的是 array,你用的是 list,或者需要的是 list, 你用的 array, 从这方面入手进行改错
优化器 optimizer,GradientDescentOptimizer 不报错,RMSPropOptimizer,AdamOptimizer 会报错
因为 AdamOptimizer, RMSPropOptimizer 他们在内部会生成新的变量,所以 tf.initialize_all_variables() 应该在 optimizer 定义的后面再运行,不能在前面运行。
未完待续...
网友评论