我正在开发一个ML项目,并使用keras
支持Tensorflow
。我需要在Python 3.5我的本地Windows机器上进行培训,保存模型,然后将模型复制到linux上的虚拟机(也运行3.5),该模型将使用该模型进行预测。
任务看起来非常简单明了,但是在调用predict
函数时遇到错误。
ValueError: Tensor Tensor("activation_1/Sigmoid:0", shape=(?, 1), dtype=float32) is not an element of this graph.
我认为这可能是一个平台差异问题,所以我在Linux机器上训练我的模型(使用Python 3.4),但我仍然在预测虚拟机上得到相同的错误。
我想知道错误的原因是操作系统还是Python版本差异还是别的?在每个平台上单独进行模型训练,保存然后加载和预测工作正常。
答案 0 :(得分:0)
原来问题出在保存部分。我使用ModelCheckpoint
回调来保存最佳模型
model.fit(..., callbacks = [ModelCheckpoint(filepath='model.h5', save_best_only=True)])
在网上搜索并尝试了一些不同的建议后,我删除了那部分,并保存了这样的模型
model.save('model.h5')
这解决了这个问题。