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