cuda error

 1. 問題描述
想把從圖像手工生成的特徵和經過backbone提取的特徵concatenate起來再進入網絡後面的層:
x_added_coord = torch.cat([x_backbone, x_coord], 1)
報錯:
RuntimeError: CUDA error: an illegal memory access was encountered


2. 解決辦法:
(1)只是用一個GPU
(2)或者獲知使用CPU訓練...(不大現實)
(3)或者把特徵都放到cuda:0:     x_added_coord = torch.cat([x_backbone.cuda(0), x_coord.cuda(0)], 1)
但這樣做後面的卷積層會報錯:

RuntimeError: cuDNN error: CUDNN_STATUS_MAPPING_ERROR

可以設置torch.backends.cudnn.enabled = False 排除這個錯,但訓練過程會變得巨慢。。。
所以弄來弄去還是選了第一個
目前沒有找到更好的解決辦法

 

3. 原因:
不太確定,可能是torch.cat()只能對在cuda:0或者GPU的變量操作?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章