我遇到了这个错误,我无法解开我的 jupyter 笔记本上的文件:
import os
import pickle
import joblib
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
filename = open("loan_model3.pkl", "rb")
mdl = pickle.load(filename)
mdl.close()
它总是显示以下错误消息,即使我升级了所有库
错误信息:
FileNotFoundError:不成功的 TensorSliceReader 构造函数:无法找到 ram://89506590-ec42-44a9-b67c-3ee4cc8e884e/variables/variables 的任何匹配文件您可能正在尝试从计算设备加载到不同的设备上。考虑将
中的experimental_io_device
选项设置为 io_device,例如“/job:localhost”。tf.saved_model.LoadOptions
我尝试升级我的库,但仍然不起作用。
当我尝试将 Sequential 模型存储在 .pkl 文件中时,我也遇到了同样的错误,因为 Sequential 模型是 TensorFlow Keras 模型,因此我们必须将其存储在 .h5 文件中,而 Keras 以这种格式保存模型因为它可以轻松地将权重和模型配置存储在单个文件中。
代码:
from keras.models import load_model
model.save('model.h5')
model_final = load_model('model.h5')
不知道你是否还在这里,但我找到了解决方案。基本上你不应该将张量流模型保存到pickle文件中,而是保存到h5文件中
## save model
save_path = './model.h5'
model.save(save_path)
## load tensorflow model
model = keras.models.load_model(save_path)
这对我有用。希望这也能帮助你。
这对我有用:
import tensorflow as tf
path = './model.h5'
model.save(path )
loaded_model= tf.keras.models.load_model(path )
我也遇到了同样的问题,但是通过将模型保存为 .h5 文件对我有用。现在我可以加载 .h5 模型了。
对我来说,当我尝试从子进程返回 Keras 模型时,就会发生这种情况。这是因为进程间通信使用 pickling 来传输对象。
正如其他人所说,酸洗 keras 模型不起作用。