Torch——[TypeError: can‘t pickle Environment objects]解决方案
生活随笔
收集整理的這篇文章主要介紹了
Torch——[TypeError: can‘t pickle Environment objects]解决方案
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
問題描述
問題分析
因為windows操作系統(tǒng)的原因,在Windows中,多進程multiprocessing使用的是序列化pickle來在多進程之間轉(zhuǎn)移數(shù)據(jù),而socket對象是不能被序列化的,但是在linux操作系統(tǒng)上卻沒問題,因為在linux上多進程multiprocessing使用的是fork,所以在windows上可以改用多線程。因為網(wǎng)絡(luò)通信屬于io密集型的操作,對cpu計算要求不高,不用多進程,用多線程就行。?
令num_workers=0,記得無論是參數(shù)設(shè)置還是數(shù)據(jù)集讀取處理的代碼。都要重新設(shè)置
解決方案
loader = torch.utils.data.DataLoader(dataset=dataset,batch_size=self.batch,shuffle=self.shuf,num_workers=0,#關(guān)鍵點drop_last=True)參考文章
成功解決can‘t pickle Environment objects和Ran out of input
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Torch——[TypeError: can‘t pickle Environment objects]解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统——磁盘寻道练习题及答案
- 下一篇: Cython——[FutureWarni