我正在尝试从 RLLib 恢复腌制的配置文件(json 没有如本文所示那样工作),并收到以下错误:
config = pickle.load(open(f"{path}/params.pkl", "rb"))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-28-c964561b863c> in <module>
----> 1 config = pickle.load(open(f"{path}/params.pkl", "rb"))
ValueError: unsupported pickle protocol: 5
Run Code Online (Sandbox Code Playgroud)
Python 版本 = 3.7.0
如何在 3.7 中打开此文件?
sha*_*adi 36
对于在python 3.8中使用协议5将数据帧保存到pickle文件并需要将其加载到仅支持协议4的python 3.6的pandas用户(我在看你的google colab):
!pip3 install pickle5
import pickle5 as pickle
with open(path_to_protocol5, "rb") as fh:
data = pickle.load(fh)
Run Code Online (Sandbox Code Playgroud)
也可以从python 3.6保存到protocol-4 pickle
data.to_pickle(path_to_protocol4)
Run Code Online (Sandbox Code Playgroud)
更新:如果在从 stable-baselines3 加载模型时遇到这个:
!pip install --upgrade --quiet cloudpickle pickle5
from stable_baselines3 import PPO
# restart kernel if in jupyter notebook
# Might not need this dict in all cases
custom_objects = {
"lr_schedule": lambda x: .003,
"clip_range": lambda x: .02
}
model = PPO.load("path/to/model.zip", custom_objects=custom_objects)
Run Code Online (Sandbox Code Playgroud)
2021-05-31 使用 env 测试:
cloudpickle: 1.6.0
pickle5: 0.0.11
stable-baselines3: 1.0
Run Code Online (Sandbox Code Playgroud)
参考:https : //brainsteam.co.uk/2021/01/14/pickle-5-madness-with-mlflow/
| 归档时间: |
|
| 查看次数: |
59398 次 |
| 最近记录: |