3

我已经在 Python 上训练了一个机器学习模型3.5,现在我切换到使用 Python 的 Google Colab,3.6当我尝试加载我在 Python 上训练的模型时3.5,它给出了这个错误:

SystemError: unknown opcode.

google了一下,发现这个错误是因为环境变化造成的,然后我交叉检查了我的python版本,两个python版本都不一样。如何在 Python 上加载我的模型3.6

4

2 回答 2

1

你不应该。

即使您让它在没有错误/警告的情况下运行,引擎盖下也可能会发生细微的变化,从而改变模型的行为/性能。

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

于 2019-08-14T12:20:46.113 回答
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])

由于您的模型可能会更加复杂,因此这可能有效也可能无效,但值得一试,尤其是。如果重新培训太贵。像往常一样,用相同的数据评估模型并确保没有什么奇怪的。

于 2019-12-16T18:55:59.627 回答