我正在努力教育自己的张量流。我决定使用tf.layers,tf.train或keras在tensorflow中实现臭名昭着的kaggle titanic挑战,没有。我正在使用可能是一个可笑的超大网络。我的问题是我似乎无法使准确度计算正确。
在我的例子中,Y是我最后一层(宽度1)的输出。 Y_是该训练示例的标签。因此,当我计算准确度时,我将其计算为:
Y_int = tf.cast(Y_, tf.int64)
is_correct = tf.equal(tf.argmax(Y,1),Y_int)
accuracy = tf.reduce_mean(tf.cast(is_correct,tf.float32))
我每500次迭代运行一次: a,c = sess.run([accuracy,xe],feed_dict = test_data)
交叉熵减少“很好” - 有很大的改进空间,但它确实将迭代更改为迭代。但是,准确性仍然存在(这是第一个值):
iter:0
0.606742 72.3839
iter:500
0.606742 42.3199
iter:1000
.....
iter:18500
0.606742 38.2022
iter:19000
0.606742 38.4258
iter:19500
0.606742 37.9204
编辑:完整的python文件: https://github.com/mrx80/so/blob/master/titanic_nn.py
答案 0 :(得分:0)
Y_int = tf.cast(Y, tf.float32)
is_correct = tf.equal(tf.round(Y_int),Y_)