日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

查看torch依赖的cuda版本_torch多GPU情况下模型建立遇到的问题

發(fā)布時間:2024/9/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查看torch依赖的cuda版本_torch多GPU情况下模型建立遇到的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題:最近在實(shí)現(xiàn)bert pytorch版本的過程中遇到一個不能使用多GPU的問題,然而github原始版本是可以使用的,修改過程中的一些改動導(dǎo)致使用多GPU時會報如下的錯誤: arguments are located on different GPUs

定位完問題的位置后一開始以為是cuda設(shè)置的問題,后來發(fā)現(xiàn)問題出在tranformer模塊這里。舊代碼在transformer的12個layer建立時采用了簡單的list來存儲然后用add_module的方法建立模型。但是這樣的寫法在多GPU的情況下好像是有問題的。以下是修改前后的代碼對比:

修改前通過list和add_module方法建立

修改為nn.ModuleList方法建立

出錯原因詳解:
ModuleList和普通list不一樣,它和torch的其他機(jī)制結(jié)合緊密,繼承了nn.Module的網(wǎng)絡(luò)模型class可以使用nn.ModuleList并識別其中的parameters。而在我們出錯的代碼中可以看見我們的子module是用普通的list存儲的,這種寫法的子module不能被主module所識別,所以其參數(shù)未加入到主module的參數(shù)中去,自然會報第一張圖中的arguments are located on different GPUs。

總結(jié)

以上是生活随笔為你收集整理的查看torch依赖的cuda版本_torch多GPU情况下模型建立遇到的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。