簡體   English   中英

如何在python 3.5上訓練的python 3.6中加載機器學習模型?

[英]How to load machine learning model in python 3.6 that is trained on python 3.5?

我已經在 Python 3.5上訓練了一個機器學習模型,現在我切換到使用 Python 3.6 Google Colab,當我嘗試加載我在 Python 3.5上訓練過的模型時,它給出了這個錯誤:

SystemError: unknown opcode.

google了之后發現這個錯誤是因為環境變化導致的,於是我交叉檢查了我的python版本,發現兩個python版本都不一樣。 如何在 Python 3.6上加載我的模型?

你不應該。

即使您讓它在沒有錯誤/警告的情況下運行,引擎蓋下也可能會有細微的變化,從而改變模型的行為/性能。

您應該在 Python 3.6 上重新訓練模型,或者為您的模型創建一個運行 Python 3.5 的虛擬環境,以確保它按預期執行。 還要始終確保實際庫(例如 keras...)具有相同的版本。

我遇到了和你一樣的問題。 我在 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])

由於您的模型可能更加復雜,這可能有效也可能無效,但值得一試,尤其是。 如果再培訓太貴了。 像往常一樣,使用相同的數據評估模型並確保沒有任何異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM