错误,TensorSliceReader 构造函数不成功:无法找到 ram 解封文件的任何匹配文件

abd*_*oub 7 python pickle scikit-learn joblib tensorflow

我遇到了这个错误,我无法解开我的 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()
Run Code Online (Sandbox Code Playgroud)

它总是显示以下错误消息,即使我升级了所有库

错误信息:

FileNotFoundError:不成功的 TensorSliceReader 构造函数:无法找到 ram://89506590-ec42-44a9-b67c-3ee4cc8e884e/variables/variables 的任何匹配文件您可能正在尝试从计算设备加载到不同的设备上。考虑在 io_deviceexperimental_io_device中设置选项tf.saved_model.LoadOptions,例如“/job:localhost”。

我尝试升级我的库,但仍然没有成功。

小智 5

当我尝试将Sequential模型存储在 .pkl 文件中时,我也遇到了同样的错误,因为Sequential模型是 TensorFlow Keras 模型,因此我们必须将其存储在 .h5 文件中,而 Keras 以这种格式保存模型,因为它可以轻松存储权重和模型配置位于单个文件中。

代码:

   from keras.models import load_model
   model.save('model.h5')
   model_final = load_model('model.h5')
Run Code Online (Sandbox Code Playgroud)


小智 0

我不知道你是否还在这里,但我找到了解决方案。基本上你不应该将张量流模型保存到pickle文件中,而是保存到h5文件中

## save model
save_path = './model.h5'
model.save(save_path)
## load tensorflow model
model = keras.models.load_model(save_path)
Run Code Online (Sandbox Code Playgroud)

这对我有用。希望这也对您有帮助。