我已经训练了一个Tensorflow模型,然后构建了它的等效Keras模型并将学习权重加载到其中。但是,我在Keras中获得了不同的测试准确度(例如,在Tensorflow中为98.5%,而在98%中为98%)。 我已经定义在tensorflow精度是这样的:Keras和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不允许我删除该问题。
如果您对目前的答案不满意,您可以/应该做什么是**发布您自己的答案**。这比编辑问题的答案要好。不过,请确保您的答案解释了*您是如何解决错误/差异的。 (回答你自己的问题总是可以的 - 事实上,这是鼓励的!) –