张力流量损失没有减少,而且电流保持在0.00%?

时间:2016-03-29 21:41:40

标签: python numpy machine-learning tensorflow

代码

我试图用UCF101单帧数据训练CNN。 据我所知,问题是重量初始化或 使用\n或成本和优化程序函数的损失。

还有什么办法可以使用xavier初始化吗?

\t

输出

tf.nn.softmax and tf.nn.softmax_cross_entropy_with_logits

3 个答案:

答案 0 :(得分:1)

您可以通过为变量的初始值创建numpy数组来使用不同的初始化方案。

您的损失根本没有变化,因此调试的一种方法是确认变量实际上在更新时发生变化。

答案 1 :(得分:1)

来自Tensorflow documentation

警告:此操作需要未缩放的日志,因为它会在内部执行logmax以提高效率。不要使用softmax的输出调用此op,因为它会产生不正确的结果。

考虑到这一点,你应该拿出

out = tf.nn.softmax(tf.matmul(dense2, _weights['out']) + _biases['out'])

从您的网络定义中替换为

out = tf.matmul(dense2, _weights['out']) + _biases['out']

由于您没有进行微调,即没有移植受类似问题训练的重量,因此训练往往会很慢。请记住,这可能是培训中的许多问题之一。希望能帮助到你。

答案 2 :(得分:1)

我遇到了同样的问题。从最后一个密集层中删除relu激活。为我工作。

 dense2 = tf.nn.relu(tf.matmul(dense1, _weights['wd2']) + _biases['bd2'], name='fc7') # Relu activation

之后再次

out = tf.nn.softmax(tf.matmul(dense2, _weights['out']) + _biases['out'])

因此,第一个" relu"对我来说似乎是多余的。我做了类似的事情。在删除该行后,它解决了问题。