在Linux服務(wù)器上跑Python Unet程序

寫于1.4日中午 在學(xué)校

我以后再也再也不拖延了。

一、遇到Out of memory的問(wèn)題

解決辦法:

1、把圖片Resize一下。

2、把batch size改小一點(diǎn)。

先嘗試解決辦法2:

我先嘗試第二種辦法:batch size 原來(lái)是25,我把batch size改成2試試看。

果然可以順利跑起來(lái)了!好開心啊~

我還是不希望resize圖片,那么久吧

關(guān)于batch size和訓(xùn)練結(jié)果的關(guān)系,查看這一個(gè)網(wǎng)頁(yè):

https://www.zhihu.com/question/32673260

判斷學(xué)習(xí)率設(shè)置是否良好:

其次,準(zhǔn)確率

二、Pytorch如何保存訓(xùn)練好的模型

參考網(wǎng)址:https://blog.csdn.net/VictoriaW/article/details/72840878

我發(fā)現(xiàn)在代碼的訓(xùn)練部分,有這樣一段保存訓(xùn)練結(jié)果的代碼:

這個(gè)函數(shù)的具體定義在代碼下的save_checkpoint.py代碼內(nèi)。

意思是把state of? a net保存在checkpoint文件夾下的weights0.pth文件中。


我現(xiàn)在需要用的是第一種方法。

目前我已經(jīng)在checkpoints文件夾下的checkpoints文件夾下保存了weights0.pth

我現(xiàn)在需要導(dǎo)入.pth文件夾。

(其實(shí)這個(gè)不需要服務(wù)器,這個(gè)在自己家里的電腦上都能跑出來(lái)。)

在test的代碼里,有這樣一段代碼:

torch.load后面這兩個(gè)參數(shù)分別表示什么意思呢?


所以我想到的解決辦法是:把“weights0.pth”文件放到和result一樣的文件夾下面,然后把load_weights的默認(rèn)值改成“weights0.pth”,再跑。


我現(xiàn)在已經(jīng)對(duì)原來(lái)的程序作出的改動(dòng)有:

1、main里面的batchsize被我改成了從25到2

2、所有的png都被我改成了tif

3、result_visualization.py里的load_weights的默認(rèn)值被我改成了“weights0.pth

4、result_visualization.py里的測(cè)試集的位置被我改變了。

三、跑test的代碼

我把weights移動(dòng)到對(duì)應(yīng)的文件夾了。

遇到的問(wèn)題1:

代碼里“import matplotlib.pyplot as plt”這一句話報(bào)錯(cuò)。

解決辦法1:

參考網(wǎng)站:https://stackoverflow.com/questions/49013901/importerror-cannot-import-name-path-matplotlib

就是卸載再重裝

卸載重裝后重啟試試看。

成功解決,所以不需要看辦法二了。

解決辦法2:

https://blog.csdn.net/Nebula_W/article/details/79541287

這個(gè)辦法可能更靠譜一點(diǎn):

原因:Package中path.py的版本過(guò)高造成的。

解決方法:更改path.py的版本在7.6.1左右即可。

遇到的問(wèn)題2:

代碼里“import pandas as pd”這一句話報(bào)錯(cuò)。

參考網(wǎng)站:

https://stackoverflow.com/questions/30761152/how-to-solve-import-error-for-pandas

解決辦法:

卸載,重裝,再重啟Spyder

解決!

遇到問(wèn)題3:

我暫時(shí)注釋掉了這兩句:

遇到問(wèn)題4:

類似統(tǒng)一原圖和groundtruth圖的名字的問(wèn)題

用rename改一下名字就好了。

祈禱再不要報(bào)錯(cuò)了。

好像在跑了。

真的沒(méi)有報(bào)錯(cuò)了。

報(bào)錯(cuò)是沒(méi)有足夠內(nèi)存!

所以程序應(yīng)該是對(duì)的了。

遇到問(wèn)題5:

train的程序跑到第29個(gè)epoch的61%的時(shí)候忽然跑不動(dòng)了。

那我就先不跑啦,先去用服務(wù)器跑test的程序。

遇到問(wèn)題6:無(wú)法導(dǎo)入Pytorch

快速退出python模式的方法:Ctrl+z

我試過(guò)了,如果直接輸入python,再輸入import torch,還是不行。

解決辦法1:重裝Pytorch

上面顯示你已經(jīng)裝過(guò)了pytorch

解決辦法2:卸載再重裝Pytorch

卸載的時(shí)候上面寫:


然后我直接輸入了pip install torch,居然開始安裝了,之后就導(dǎo)入成功了。

遇到問(wèn)題7:

還是CUDA OUT of memery的問(wèn)題

問(wèn)了學(xué)姐,學(xué)姐說(shuō)解決辦法是:一個(gè)圖一個(gè)圖地放進(jìn)去跑,不要很多圖一起放進(jìn)去跑。

我放了一個(gè)圖進(jìn)去,立刻就跑好了。

遇到問(wèn)題8:

跑是跑好了,但是圖去哪里了呢?

我把default那里的./改成了prediction,希望能創(chuàng)建這么一個(gè)文件夾。

但是還是跑完了沒(méi)有圖。真的很奇怪。我去查源代碼吧。

圖就在visualization文件夾下面呀!稍微等一下就出來(lái)了。等大概1分鐘。

我是在WinSCP里面看的。

四、回顧Train的代碼

遇到的問(wèn)題是:loss的值是負(fù)的。

我用的計(jì)算loss的方法是Dice Loss function.。

我需要先去查這個(gè)function。

Dice coefficient是常見的評(píng)價(jià)分割效果的方法之一,同樣的也可以作為損失函數(shù)衡量分割的結(jié)果和標(biāo)簽之間的差距。

在這個(gè)class中,dice_coef函數(shù)的return是loss的結(jié)果

rna

這里有一個(gè)相關(guān)的函數(shù)定義的式子:

https://blog.csdn.net/a362682954/article/details/81226427

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容