加载pickle读取.pkl文件,报错显示ModuleNotFoundError: No module named '__builtin__' ?

新手上路,请多包涵

我的项目目录结构如下图所示:
image.png
我在test.py文件中想利用pickle把m30k_deen_shr.pkl文件打印出来看看,但是运行却报错了,我所用的python是3.6.12版本的,不知道为什么会有这样的错误,有没有大佬可以帮我看看,感激!

阅读 3.1k
2 个回答

__builtin__

是python 2.x的写法,你的pkl 是不是用python 2.x版本生成的

生成pkl的代码还在不在,用python 3.0重新训练一下,生成看看,还有最好不要用w模式写入,这样会以文本形式写入,还可能会有换行符的问题,用wb模式写入

新手上路,请多包涵

兄弟,你这个是Transformer做翻译任务的pytorch实现的代码吧,你看看人家代码里面写清楚了,data = pickle.load(open(opt.data_pkl, 'rb'))的pickle并不是通过import pickle来的,而是import dill as pickle来的,实际上用的是dill库而不是pickle库,你在发现自己报错而这个github项目的代码却不会报错的时候,你就应该去查看他是怎么写的了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题