【发布时间】:2017-07-28 14:36:41
【问题描述】:
我已经训练了一个 Tensorflow 模型,然后构建了它的等效 Keras 模型并将学习到的权重加载到其中。 但是,我在 Keras 中得到了不同的测试准确度(例如,Tensorflow 中的 98.5% 与 98% 相比)。 我以这种方式定义了 tensorflow 的准确性:
accuracy = tf.cast(tf.equal(tf.argmax(input_labels, 1), tf.argmax(output, 1)), tf.float32)
在 Keras 中,我使用了它的标准度量:
model.compile(optimizer=tf.train.AdamOptimizer(), loss='categorical_crossentropy', metrics=['accuracy'])
accuracy = model.evaluate(x=test_images, y=test_labels, batch_size=BATCH_SIZE)
我很困惑这种差异来自哪里。
编辑: 由于我不相信答案,所以我在代码上花了几天的时间,直到我发现了一个导致这种差异的错误,并且在修复它之后,两个框架现在产生了与预期相同的权重相同的结果。 我正在编写此编辑以防止其他读者混淆,因为 Stackoverflow 不允许我删除问题。
【问题讨论】:
-
如果您对当前答案不满意,您可以/应该做的是发布您自己的答案。这比将答案编辑到问题中要好。不过,请确保您的回答说明了如何您修复了错误/差异。 (回答自己的问题总是可以的——事实上,我们鼓励这样做!)
标签: tensorflow keras