1. 程式人生 > >執行PSMNet網路時遇到的問題及解決方案

執行PSMNet網路時遇到的問題及解決方案

執行環境:ubuntu16.04 + cuda 8.0 + cudnn v6.0 + python 3.6.1 + pytorch 0.3.0 + torchvision 0.2.0
1.執行過程中遇到 not found modules named “*
   把“dataloader”和“models”資料夾中的對應檔案“*.py”複製到主資料夾中,再嘗試是否解決了問題
2.遇到“with torch.no_grad”相關的問題
   把main.py和finetune.py中“with torch.no_grad:”這句話刪掉,並把下面的“output3 = model(imgL,imgR)”與其他行對齊。“with torch.no_grad:”這個指令在pytorch 0.4.0以上可用
    再將

imgL   = Variable(torch.FloatTensor(imgL))(main的108行,finetune的117行)
imgR   = Variable(torch.FloatTensor(imgR))(main的109行,finetune的118行)

   改為

imgL   = Variable(torch.FloatTensor(imgL),volatile = True)
imgR   = Variable(torch.FloatTensor(imgR),volatile = True)

3.遇到“out of momery”的問題
   把main.py和finetune.py中

TrainImgLoader = torch.utils.data.DataLoader(
     DA.myImageFloder(all_left_img,all_right_img,all_left_disp, True), 
     batch_size= 12, shuffle= True, num_workers= 8, drop_last=False)
TestImgLoader = torch.utils.data.DataLoader(
     DA.myImageFloder(test_left_img,test_right_img,test_left_disp
, False)
,
batch_size= 8, shuffle= False, num_workers= 4, drop_last=False)

    把batch_size 由12和8 改為3和3
4.遇到“out of index”之類的問題
   嘗試將listfolwfile.py的第46行和47行修改為

 flying_path = filepath + [x for x in image if  'flyingthings3d' in x][0]
 flying_disp = filepath + [x for x in disp if  'flyingthings3d' in x][0]

5.如果使用python3.0以上版本
    需要將stackhourglass.py的第111行和第113行中 maxdisp/4 改為 maxdisp//4
   將readpym.py的第15行由header = file.readline().rstrip()
   改為header = file.readline().rstrip().decode()
    第26行dim_match = re.match(r'^(\d+)\s(\d+)\s,file.readline())
    改為dim_match = re.match(r'^(\d+)\s(\d+)\s$', file.readline().decode())
6. KITTILoader.py 中 第56行 dataL = np.(dataL,dtype=…)改為dataL = np.array(dataL,dtype=…)
ps:行數可能有變化,可用ctrl+F直接搜尋關鍵詞