2019-02-25(visdom可視化,downgrade python和color groundtruth)

晚上睡前一定要注冊好QE,注冊完寫在這一句的后面法绵。

一箕速、color the grountruth

雖然anaconda安裝不好,但是我直接把代碼放在linux上面跑朋譬,沒有報錯需要安裝包之類的盐茎。

cc2的給groundtruth上色的代碼在119和131行報錯了。報錯原因均是和二維轉(zhuǎn)化成三維相關(guān)的徙赢。我直接把第三維刪掉了字柠,這樣三維數(shù)組就變成了二維的了。

跑代碼的時候注意事項記錄如下:

(1)crop這個文件夾存儲png格式的原圖狡赐,注意命名:z0001,z0002之類的窑业;

(2)添加顏色的txt文件放在主文件夾下;

(3)然后結(jié)果是tif格式的文件枕屉,存儲在color_coded_out文件夾內(nèi)常柄;

(4)運行函數(shù)CC2(x,y,z)這里的x,y,z分別填圖像的維度。比如我是1024*1024*1.

(5)我其實是一張一張跑的搀擂,比如放z00001西潘,然后出一張結(jié)果;再覆蓋掉哥倔,換成新的z0001秸架,再出一張結(jié)果揍庄。

順利完成(yeah~)

其實睡飽了還是很重要的咆蒿,感覺比周六調(diào)試了一整天的效率都高。

二蚂子、把python downgrade 到3.6版本

參考網(wǎng)站:

http://chris35wills.github.io/conda_python_version/??

步驟記錄如下:

1沃测、在terminal的命令行里輸入:?conda search python

查看目前服務(wù)器里已經(jīng)安裝了的python版本;

2食茎、比如我要安裝python 3.6.7蒂破,我需要在服務(wù)器里輸入:

conda install python=3.6.7

中間要回來點一下yes or no的yes.

然后python就變成了3.6.7的版本了。

三别渔、跑xxcyclegan的代碼

帶nohup的命令行如下:

CUDA_VISIBLE_DEVICES=0 nohup python train.py --dataroot ./datasets/cell3 --name cell3_spcyclegan --model cycle_lo_seg --no_dropout --which_model_netG resnet_9blocks --display_id 2 --display_port 8889 --input_nc 1 --output_nc 1 --phase train --identity 0 >log_file/biospy.out &

我先跑不帶nohup的命令行:

CUDA_VISIBLE_DEVICES=0 python train.py --dataroot ./datasets/cell3 --name?cell3_spcyclegan --model cycle_lo_seg --no_dropout --which_model_netG resnet_9blocks --display_id 2 --display_port 8889 --input_nc 1 --output_nc 1 --phase train --identity 0 >log_file/biospy.out

我感覺要安裝一些包附迷。你看缺啥包,就安裝啥包吧哎媚。

然后注意數(shù)據(jù)的多樣性喇伯,之前放的數(shù)據(jù)其實可能不大行的。

遇到問題1:缺dominate包

pip install dominate

遇到問題2:CUDA driver version is insufficient for CUDA runtime version

所以還是需要把包放到學(xué)長跑代碼的服務(wù)器下面去跑拨与。

我先在學(xué)長的服務(wù)器上安裝anaconda稻据,然后再找著上面的方法downgrade。

這個服務(wù)器是藍色的服務(wù)器买喧。

參考自己之前的文章:(1-3)Windows系統(tǒng)連接Linux遠程服務(wù)器并把Python程序傳到遠程服務(wù)器上運行

繼續(xù)在新的服務(wù)器上跑命令行:

CUDA_VISIBLE_DEVICES=0 python train.py --dataroot ./datasets/cell3 --name?cell3_spcyclegan --model cycle_lo_seg --no_dropout --which_model_netG resnet_9blocks --display_id 2 --display_port 8889 --input_nc 1 --output_nc 1 --phase train --identity 0 >log_file/biospy.out

發(fā)現(xiàn)pytorch也沒有在新的機器上安裝捻悯。

依舊是參考1月3號的方法:conda install pytorch torchvision -c pytorch

遇到問題3:

報錯如下: <urllib3.connection.HTTPConnection object at 0x7fa44ca31c50>: Failed to establish a new connection: [Errno 111] Connection refused

有人遇到過類似的問題的匆赃。

詢問學(xué)長之后,記錄如下:

(1)因為我的命令行的原因今缚,所以日志文件是存在bioscpy.out里的算柳,即使沒有nohup,在terminal顯示的也不是原始文件姓言。

(2)學(xué)長能在服務(wù)器上直接編輯python文件埠居,我都是在外面編輯好,然后通過winscp扔進來事期。學(xué)習(xí)學(xué)長的這種方法

(3)學(xué)長看到了這一行:ERROR:visdom:[Errno 111] Connection refused

所以他讓我查visdom的相關(guān)內(nèi)容滥壕,問題就會變得很好解決了。

(4)這個命令行里有display的內(nèi)容兽泣,需要在文件夾里建立public_html绎橘,這樣才可能在外部display.

參考網(wǎng)站:

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/issues/24

當(dāng)我輸入:

python -m visdom.server

屏幕上跳出來:

Checking for scripts.

It's Alive!

INFO:root:Application Started

You can navigate to http://localhost:8097

跳出來這一段的時候我可激動了

所以這里我也要把端口號改掉咯~~

CUDA_VISIBLE_DEVICES=0 python train.py --dataroot ./datasets/cell3 --name?cell3_spcyclegan --model cycle_lo_seg --no_dropout --which_model_netG resnet_9blocks --display_id 2 --display_port 8097 --input_nc 1 --output_nc 1 --phase train --identity 0 >log_file/biospy.out

然后我需要查visdom的內(nèi)容,visdom是pytorch的可視化神器唠倦,類似tensorflow的tensorboard那樣称鳞。

具體介紹參考這里:

https://zhuanlan.zhihu.com/p/32025746

遇到問題4:我輸入visdom的啟動命令行之后,就卡在那里了稠鼻。

此外冈止,端口號是在linux上面,肯定不能在window上打開去看候齿。那么如何打開那個可視化頁面呢熙暴?

剛剛問了hans,需要查的內(nèi)容是:ssh visdom

其次需要查screen代碼慌盯。他說需要再開一個窗口周霉,才能輸入新的命令行。

解決辦法4-1:

遠程連接visdom的問題

參考連接:https://blog.csdn.net/RhineYu/article/details/79947745

描述:“在服務(wù)器上開啟jupyter notebook亚皂,或者TensorBoard俱箱,或者visdom服務(wù)時,會給出一個IP地址和端口號灭必,可以在瀏覽器中運行狞谱。但是我在本地瀏覽器中輸入這個地址并不能連接服務(wù)〗欤”

“通過Google及Stack Overflow跟衅,找到解決方案,原因在于本地訪問服務(wù)器應(yīng)用需要建立SSH通道璃饱,SSH端口轉(zhuǎn)發(fā)需要SSH連接与斤,而SSH連接是有方向的,從SSH Client到SSH Server。而我們所要訪問的應(yīng)用也是有方向的撩穿,應(yīng)用連接的方向也是從應(yīng)用的Client端連接到應(yīng)用的Server端磷支。比如我們要訪問服務(wù)器上的Web站點時,HTTP應(yīng)用的方向就是我們這臺主機(Client)到服務(wù)器(Server)食寡。

我們這個問題中雾狈,開啟jupyter notebook,TensorBoard抵皱,或是visdom善榛,都屬于本地轉(zhuǎn)發(fā)(Local Forward),即SSH連接和應(yīng)用的連接這兩個連接的方向一致呻畸。具體解決方法是在本地終端建立SSH通道”

vis = visdom.Visdom(env='model_1')

截圖里的代碼不對的移盆,少了一個d。

輸入前三行代碼之后報錯:“address already in use”

原因是hans幫我放到后臺跑的吧伤为。我查一下后臺的程序咒循。

查看后臺運行進程的代碼是:jobs -l,但是后臺沒有正在跑的進程呀绞愚。

我現(xiàn)在在自己的電腦上輸入127.0.0.1:8097叙甸,出現(xiàn)了visdom的界面了。(開心)

解決辦法4-2

screen這個命令具體理解:

參考網(wǎng)址:http://www.runoob.com/linux/linux-comm-screen.html

另一個參考網(wǎng)址:https://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html

我覺得第二個網(wǎng)址更加詳細位衩。

總體操作方法:

1裆蒸、輸入 ssh -L 端口名稱? 登錄的用戶名

2、其實我發(fā)現(xiàn)直接可以在瀏覽器中打開這個端口了糖驴,可能這個原因僚祷,當(dāng)我輸入:

python3 -m visdom.server的時候,才會報錯:“address already in use”

地址被占用的解決辦法:

參考網(wǎng)址:https://gauravsohoni.wordpress.com/2015/09/17/address-already-in-use-errors-find-and-kill-process/

先在命令行中輸入:lsof -i tcp:8097,其中8097是端口號堪夭。

This should list pids for applications using port 3000. Once you have the pid you can kill the process with kill command

用以下命令結(jié)束這個pid:

kill -9 <PID> #where <PID> is the process id returned by lsof

這時候再輸入:lsof -i tcp:8097,就沒有內(nèi)容返回了。同時網(wǎng)頁也打不開了殿衰。

這時候再輸入:python3 -m visdom.server,就沒有報錯:端口被占用了阅仔。

3薪伏、對sreen的嘗試:

先輸入screen,再activate可視化窗口爹殊,再sreen回去(ctrl+a+d)

這個方法可以蜕乡!

在screen回去的界面運行命令行,沒有報錯visdom相關(guān)的錯誤了梗夸。

遇到問題5:

報錯IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number

解決辦法:https://github.com/NVIDIA/flownet2-pytorch/issues/113

至少不是代碼內(nèi)部的錯誤层玲,是版本的錯誤,所以我需要自己改代碼的版本。

我先把舊版本back up一下辛块,取名為畔派。。润绵。线椰。——backup尘盼,然后再改新的代碼憨愉。

解決辦法:

That's because in PyTorch>=0.5, the index of 0-dim tensor is invalid. The master branch is designed for PyTorch 0.4.1, `loss_val.data[0]` works well.

Try to change

total_loss += loss_val.data[0]

loss_values = [v.data[0] for v in losses]

to

total_loss += loss_val.data

loss_values = [v.data for v in losses]

might fix the problem.

需要改的代碼位于:cycle_lo_seg_model.py的self.backward_G()這個函數(shù)里。

我刪掉了代碼第150行和151行的【0】卿捎,也刪掉了194~199行的【0】

也刪掉了代碼126和131行的【0】

解決了這個報錯配紫。

遇到問題6:報錯:TypeError: Object of type 'Tensor' is not JSON serializable

還是pythorch版本的問題:

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/issues/258

這里建議是安裝版本pytorch0.3.1

參考這篇文章:所以我需要安裝pytoch0.3.0,并且把問題5改過來的地方改回去午阵。就是還是用back up的代碼跑笨蚁。

嘗試解決辦法:

卸載掉當(dāng)前的pytorch,然后安裝0.3.0版本的pytorch

參考網(wǎng)址:https://ptorch.com/news/37.html

這篇文章講的很詳細趟庄,怎么卸載括细,怎么安裝特定版本的pytorch,怎么查看當(dāng)前pytorch版本戚啥。都寫得很詳細奋单。

具體做法:

1、輸入 pip uninstall torch?

然后這時候python猫十,再輸入 import torch览濒,就顯示:找不到模塊了。

這樣說明卸載成功

2拖云、嘗試這個命令行:pip install pytorch==0.3.10

但是安裝失敗贷笛。

我谷歌如下關(guān)鍵詞:“downgrade pytorch to 0.3”

有不少人問一樣的問題呢,哈哈

我在這個網(wǎng)站上找到了合適的解決辦法:https://discuss.pytorch.org/t/how-to-switch-to-older-version-of-pytorch/19656

命令行如下:conda install -c pytorch pytorch=0.3.1

用conda而不是用pip安裝

趁它在安裝的時候宙项,我把遇到問題5改過的代碼改回去(就是把原來的程序丟進來乏苦。)

其實它安裝的時候我心驚膽戰(zhàn)的,生怕什么時候又報錯了尤筐。

應(yīng)該不會的汇荐,反正萬一報錯了,實驗室里也有人可以問盆繁。

安裝成功掀淘。

3、測試pytorch版本

輸入代碼如下:

成功解決油昂。

然后我繼續(xù)跑代碼吧革娄。

遇到問題7:找不到no-blocking這個參數(shù)

哦哦這時候同步異步那里要改回來了倾贰。就是2月18號改的那些地方要改回來

就改第85和86行就可以了,在notepad上改完丟進服務(wù)器拦惋。

好像可以順利跑起來了匆浙。在log_file文件夾里,從最下面可以看到架忌,日志的行數(shù)是不斷增加的吞彤,說明跑起來了。

終于開始跑了

嗚嗚嗚好激動叹放,過了這么多天饰恕,終于跑起來了。

摘自log_file:

(epoch: 2, iters: 72, time: 0.800) D_A: 0.139 G_A: 0.280 Cyc_A: 0.253 D_B: 0.294 G_B: 0.348 Cyc_B: 0.862 location: 0.137 total: 1.880

End of epoch 2 / 200 Time Taken: 77 sec

learning rate = 0.0002000

總結(jié):

1井仰、用到的命令行如下:

CUDA_VISIBLE_DEVICES=0 python train.py --dataroot ./datasets/cell3 --name?cell3_spcyclegan --model cycle_lo_seg --no_dropout --which_model_netG resnet_9blocks --display_id 2 --display_port?8097?--input_nc 1 --output_nc 1 --phase train --identity 0 >log_file/cell3.out

2埋嵌、版本:

python3.6.7

pytorch 0.3.1(通過conda安裝)

這個事例深刻地顯示了運行環(huán)境的重要性!

四俱恶、改數(shù)據(jù)集雹嗦,增加數(shù)據(jù)集的多樣性

先觀察自己的數(shù)據(jù)集差在哪里,然后找解決辦法合是。

1是照片不夠多了罪;

2是照片幾乎來自同幾張圖片。

我需要做的事情是:回到數(shù)據(jù)擴增部分聪全,拿編號1-13張原圖進行數(shù)據(jù)擴增泊藕,然后拿編號14-15張原圖進行測試。

放256張圖吧难礼。如果不夠我再增加圖娃圆。我感覺像原來那樣放128張圖應(yīng)該是不夠的。

這時候?qū)W校的網(wǎng)絡(luò)不行了蛾茉。

我直接開始畫groundtruth吧

五讼呢、畫10張individual圖的groundtruth

中午遇到的問題是:注意這里的overall? label capacity,最好調(diào)成50谦炬,如果調(diào)得更低一點悦屏,label的顏色就顯示不出來了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吧寺,一起剝皮案震驚了整個濱河市窜管,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稚机,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获搏,死亡現(xiàn)場離奇詭異赖条,居然都是意外死亡失乾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門纬乍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碱茁,“玉大人,你說我怎么就攤上這事仿贬∨ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵茧泪,是天一觀的道長蜓氨。 經(jīng)常有香客問我,道長队伟,這世上最難降的妖魔是什么穴吹? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮嗜侮,結(jié)果婚禮上港令,老公的妹妹穿的比我還像新娘。我一直安慰自己锈颗,他們只是感情好顷霹,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著击吱,像睡著了一般淋淀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姨拥,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天绅喉,我揣著相機與錄音,去河邊找鬼叫乌。 笑死柴罐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的憨奸。 我是一名探鬼主播革屠,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼排宰!你這毒婦竟也來了似芝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤板甘,失蹤者是張志新(化名)和其女友劉穎党瓮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盐类,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡寞奸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年呛谜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枪萄。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡隐岛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瓷翻,到底是詐尸還是另有隱情聚凹,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布齐帚,位于F島的核電站妒牙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏童谒。R本人自食惡果不足惜单旁,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饥伊。 院中可真熱鬧象浑,春花似錦、人聲如沸琅豆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茫因。三九已至蚪拦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冻押,已是汗流浹背驰贷。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洛巢,地道東北人括袒。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像稿茉,于是被迫代替她去往敵國和親锹锰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容