如何在受Python 3.5训练的python 3.6中加载机器学习模型?

时间:2019-08-14 12:18:12

标签: python python-3.x machine-learning keras deep-learning

我已经在Python 3.5上训练了机器学习模型,现在我切换到使用Python 3.6的Google Colab,并且当我尝试加载在Python {上训练过的模型时{1}},它会显示此错误:

3.5

在谷歌搜索之后,我发现此错误是由于环境变化而发生的,然后我交叉检查了我的python版本,并且两个Python版本都不相同。如何在Python SystemError: unknown opcode. 上加载模型?

2 个答案:

答案 0 :(得分:1)

不应该。

即使您可以在没有错误/警告的情况下运行它,也可能在引擎盖下进行一些细微更改,从而改变了模型的行为/性能。

您应该在Python 3.6上重新训练模型,或者创建一个为模型运行Python 3.5的虚拟环境,以确保其按预期运行。还要始终确保实际的库(例如keras ...)具有相同的版本。

答案 1 :(得分:1)

我遇到了和您一样的问题。我在python 3.5的GCP上训练了我的模型,并将其移至colab以继续进行评估,即python 3.6。

我所做的是从代码重新实例化确切的模型,然后调用load_weights:

model = create_my_model()

model.load_weights('my_model_trained_with_py_35.h5')

model.save('my_model_py36.h5')

就我而言,除了Lambda之外,我没有很多自定义代码:

def abs_diff(x):
  return tf.abs(x[0] - x[1])

由于您的模型可能会变得更加复杂,因此这也许行得通,也可能行不通,但是值得一试。如果再培训太昂贵。像往常一样,使用相同的数据评估模型,并确保没有什么奇怪的。

相关问题