Tensorflow 成本等于无

标签 tensorflow machine-learning neural-network

我有一个神经网络,有两个隐藏层,每个隐藏层有 6 个节点,输入有 11 个节点,一个输出(二元分类):

L1 = tf.nn.sigmoid(tf.matmul(X, W1) + b1)
L2 = tf.nn.sigmoid(tf.matmul(L1, W2) + b2)
hy = tf.nn.sigmoid(tf.matmul(L2, W3) + b3)

我的成本函数定义如下,其中 y 是占位符:

cost = tf.reduce_mean(-Y * tf.log(hy) - (1 - Y) * tf.log(1 - hy))

我的优化器:

optimizer = tf.train.RMSPropOptimizer(learning_rate).minimize(cost)

似乎一切都定义得很好,但当我在 session 中运行它时,我仍然没有得到成本函数的值。

我的 session :

sess.run(optimizer, feed_dict={X: X_train, Y: y_train})

最佳答案

在优化器上调用sess.run(你正在做的事情),预计会给出None,因为此操作不会产生任何值,而是为了最小化成本函数的值,换句话说,优化它。

为了打印成本,您的代码应该是:

sess.run([optimizer, cost], feed_dict={X: X_train, Y: y_train})[1]

关于Tensorflow 成本等于无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56248415/

相关文章:

tensorflow - 为什么tensorflow不能确定这个表达式的形状?

machine-learning - Keras:使用批量归一化对同一数据集进行不同的训练和验证结果

opencv - 使用 C++ 的隐马尔可夫模型

visual-c++ - 如果使用minMaxLoc函数如何替换像素值

python - 评估期间 Experimenter 中的 tensorflow 混淆矩阵

python - 相同结构的不同图可以使用tensorflow Saver吗

neural-network - NEAT 算法 : How to crossover disjoint and excess genes?

artificial-intelligence - 确定神经网络感知器的偏差?

python - 将 tensorflow 梯度应用于特定输入

python - 使用单热编码将列表转换为二进制值