SDT
SDT copied to clipboard
請問在訓練時,遇到了序列化的問題,出現了這樣的錯誤代碼 TypeError: cannot pickle 'Environment' object 請問有甚麼解決方式呢?
你的环境里面安装了pickle包嘛?试试pip install pickle
感謝您的回答,在安裝pickle4後,出現了新的錯誤,但感覺起來之前的錯誤,貌似依然沒有被解決。 以下是出現的錯誤代碼: TypeError: cannot pickle 'Environment' object self = reduction.pickle.load(from_parent) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ EOFError: Ran out of input 不曉得您有沒有遇到這樣的問題呢?再次感謝您的回答
你是否把我们的pickle文件正确下载了呀?然后检查下路径对不对?还有就是你的命名,self
一般是关键字,不可以用这个命名的哦
你們有提供pickle文件嗎?由於在網路上搜尋目前似乎只有pickle4 & pickle 5不過本身的環境無法安裝5所以選擇安裝4,不知道是否可以提供你們使用的pickle,謝謝
pickle库的版本应该不会影响太多。我的意思是,你是否加载了我们以pickle形式存储的数据集?
有的 放置在data的資料夾中
@dailenson 你好,我也有同样的问题,所以借楼请问一下: 网盘下载的数据文件,放置到源码目录的路径位置,也是根据网盘里的目录路径来存放吗?
windows系统的话,test.py代码里DataLoader的num_workers=0就行了
windows系統的話,test.py 代碼裡DataLoader的num_workers=0就行了
謝謝你的分享! 我想在訓練中出現的話,應該是改train.py中的num_workers=0.
不過,num_workers=0的速度很慢,有辦法解決嗎?
windows系統的話,test.py 代碼裡DataLoader的num_workers=0就行了
謝謝你的分享! 我想在訓練中出現的話,應該是改train.py中的num_workers=0.
不過,num_workers=0的速度很慢,有辦法解決嗎?
我也遇到了相同的问题,请问一下您的运行速度解决了吗
hi,要改multi threads重class,架改颖容^大,所以我放了。也用4090^,一拥}。不知道用ubantu的版本是不是就能解Q。
Regards CY +886983678014 From iOShttps://aka.ms/o0ukef
寄件者: yang1161519465 @.> 寄件日期: Monday, December 18, 2023 11:38:05 PM 收件者: dailenson/SDT @.> 副本: CY @.>; Comment @.> 主旨: Re: [dailenson/SDT] 在r,遇到了序列化的},出F了@拥腻e`代a TypeError: cannot pickle 'Environment' object 有甚N解Q方式呢? (Issue #23)
windows系y的,test.py 代aeDataLoader的num_workers=0就行了
xx你的分享! 我想在中出F的,是改train.py中的num_workers=0.
不^,num_workers=0的速度很慢,有k法解Q幔
我也遇到了相同的问题,请问一下您的运行速度解决了吗
― Reply to this email directly, view it on GitHubhttps://github.com/dailenson/SDT/issues/23#issuecomment-1860838821, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYXOFIPT7T2XGRYMX3SHJETYKBPN3AVCNFSM6AAAAAA4N2AVFOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRQHAZTQOBSGE. You are receiving this because you commented.Message ID: @.***>
我也同样是TypeError: cannot pickle 'Environment' object报错 修改test.py中的num_workers=0可以运行,但显卡负载为0,貌似是CPU在运算,负载图型类型锯齿波 作者说的“加载以pickle形式存储的[数据集]”不知道是如何操作 我就是把网盘data文件放在源文件目录中,并把CASIA_CHINESE文件夹进行解压 最后设置了路径--pretrained_model D:/CVPR2023_SDT/SDT-master/data/CASIA_CHINESE/checkpoint-iter199999.pth 不知道操作是否正确
所以改成零之后你可以跑出结果了吗
已解决TypeError: cannot pickle 'Environment' object问题 因为windows操作系统的原因,在Windows中,多进程multiprocessing使用的是序列化pickle来在多进程之间转移数据,而socket对象是不能被序列化的,但是在linux操作系统上却没问题,因为在linux上多进程multiprocessing使用的是fork,所以在windows上可以改用多线程。(这是网上查的)
简单来说Linux就不需要任何改动代码,就可以运行
!!!注意!!!虚拟机Linux是不能安装显卡驱动并使用CUDA的!!!!
图中是用学校服务器里的A100显卡来运行的,至于怎么调用两块A100需要再研究一下
要在Windows上进行运行需要将test.py中的num_workers=0
就行
但我的两台电脑打开资源管理器的时候都出现了只调用CPU而GPU不动的情况
可能是torch版本号和Windows系统的兼容问题
在cmd中输入
nvidia-smi
可以查看显卡运行情况(非实时刷新)
参考3060laptop性能使用pretrained推演大概需要46分钟,实验室单张A100大概需要15分钟,性能大概相差3倍也能证明确实在用显卡运算