Tensorflow基本泰坦尼克号示例:精度卡滞
我在努力学习tensorflow。我决定在tensorflow中实施臭名昭著的kaggle titanic挑战,而不使用tf.layers、tf.train或keras。我使用的可能是一个滑稽的超大网络。我的问题是,我似乎无法得到正确的计算精度 在我的示例中,Y是最后一层(宽度1)的输出。Y_u是该培训示例的标签。所以,当我计算精度时,我计算为:Tensorflow基本泰坦尼克号示例:精度卡滞,tensorflow,Tensorflow,我在努力学习tensorflow。我决定在tensorflow中实施臭名昭著的kaggle titanic挑战,而不使用tf.layers、tf.train或keras。我使用的可能是一个滑稽的超大网络。我的问题是,我似乎无法得到正确的计算精度 在我的示例中,Y是最后一层(宽度1)的输出。Y_u是该培训示例的标签。所以,当我计算精度时,我计算为: Y_int = tf.cast(Y_, tf.int64) is_correct = tf.equal(tf.argmax(Y,1),Y_int)
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=测试运行([精度,xe],进给量=测试数据)
交叉熵“很好地”减少了——有很多改进的空间,但它确实会一次又一次地改变迭代。但是,精确性一直是个难题(这是第一个值):
国际热核实验堆:0
0.606742 72.3839
国际热核实验堆:500
0.606742 42.3199
国际热核实验堆:1000
国际热核实验堆:18500
0.606742 38.2022
国际热核实验堆:19000
0.606742 38.4258
国际热核实验堆:19500
0.606742 37.9204
编辑:完整的python文件:
好的,多亏了天津的提示,我终于明白了。我在检查Y和Y的相等性之前四舍五入:
Y_int = tf.cast(Y, tf.float32)
is_correct = tf.equal(tf.round(Y_int),Y_)
你能给出一个国际热核实验堆Y和Y的实际值吗?给你:0.651685 32.1792 Y:[-9.14530421e-04][1.29497278e+00][9.14530421e-04][1.02632809e+00][3.94688576e-01][9.22473788e-01][9.14530421e 04][9.14530421e 4][1.29656982e+00][1.06453359e+00][1][1][1][1]