以后再也不要這么晚睡覺了。
新的一周了,我希望這周我可以完成GAN和cycleGAN生成新的圖。
下一周嘗試對比其他方法。
一、繼續(xù)研究GAN和CycleGAN
1、回去看GAN的論文,理解清楚loss function的含義。
理解清楚了 (*/ω\*)
2、做一個DCGAN基于輪子的小練習(xí)。
參考2019-02-02的日記
https://zhuanlan.zhihu.com/p/24767059 想跑一下這篇文章的結(jié)果
我之前跟這篇文章用的是同一個輪子,但是為什么結(jié)果不好?
對比發(fā)現(xiàn),一個是訓(xùn)練數(shù)據(jù)集少,另一個是epoch不夠多。
運行前記得激活tensorflow環(huán)境:source activate tensorflow
這次我的size設(shè)置是256*256,epoch設(shè)置為300,這次命令行里顯示load sucess,應(yīng)該能成功。
效果不大好哎。
在sample里,所有的test_arrange圖片都等于第7張original圖片的結(jié)果。
3、看CycleGAN學(xué)長的論文,弄清楚兩個input之間的關(guān)系。
首先CycleGAN的結(jié)構(gòu)是類似這樣的:

思路解釋:兩個domain分別放 original image 和groundtruth。其實我覺得需要一一對應(yīng)的哎。不過先不管這個了吧。
然后real original image生成fake groundtruth; 同時 real groundtruth 生成 fake?original image。
我把這個圖加到PPT上了,然后覆蓋了原來的鏈接,這樣老師下載的時候顯示的就是新的PPT了。
所以以后發(fā)郵件給老師都用鏈接的方式而不是附件的方式(這樣可以隨時更新 (*/ω\*))
實測這樣不行,因為老師電腦里不會更新!!??!因為這個被老師罵了。
二、跑CycelGAN
0、https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
介紹性的網(wǎng)站:https://zhuanlan.zhihu.com/p/27145954
用這個代碼是不需要安裝其他東西的。
1、圖片會不會太大了
如果圖片太大了該怎么處理?我可以把圖片切成小的slices放進去,這個叫batch size.
然后用laplacian blending來融合這些slides.。
2、我先試試不切片,就正常跑吧。因為學(xué)長的代碼也是正常跑的,我看他的圖也蠻大的。
然后記得多放一點圖,比如放200張圖吧。
我總覺得我應(yīng)該用pixel to pixel的代碼哎,因為我的數(shù)據(jù)是paired的。
3、思路:我先嘗試用pixel to pixel訓(xùn)練一遍看看結(jié)果
再嘗試用 cyclegan跑一遍看看結(jié)果。
再嘗試跑切片的代碼,兩種方法各跑一次。
4、開始研究代碼:
trainning tips:
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/blob/master/docs/tips.md
frequently asked questions
先跑一遍程序自帶的代碼。
(1)這句命令是什么含義呀?
Download a CycleGAN dataset (e.g. maps):
bash ./datasets/download_cyclegan_dataset.sh maps
bash是一個命令行,.sh是一種創(chuàng)建并保存在bash里的語言。
下載完之后,datasets的文件夾里多了一個叫做:map的.zip文件。
會自動解壓的。
解壓好的文件格式如下:

我想下載下來看一下內(nèi)容,比如val和valA valB的關(guān)系。
關(guān)系如下:



就是把他們拼在一起啦。
注意這里還有testA和testB。
他們的意思應(yīng)該是:輸入testA,能轉(zhuǎn)化成testB。以及輸入testB能轉(zhuǎn)化成testA的意思吧。。。
但是這樣怎么新生成呢?(這個問題待理解)
我覺得可能一個是test的輸入,另一個是groundtruth吧
注意看學(xué)長的論文,在inference里面的句子:
基于based on labeled image 生成合成的image,那么這個合成的image和之前的labeled image是一對。
其實學(xué)長的論文那一塊我沒太看懂。
現(xiàn)在好像看懂了。結(jié)合block disgram去看,就容易理解了。
下面我想研究一下那個“ Synthetic Binary?Volume Generation”到底是啥 by reading 參考文獻20.。
(2)第二句話
python train.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
打開train.py文件去看這句話的參數(shù)含義。
參考網(wǎng)站:https://blog.csdn.net/weixin_35653315/article/details/72886718? 命令行運行python時傳入?yún)?shù)的三種方式。
parser.add_argument('--batch-size', type=int, default=32)
對應(yīng)的傳入?yún)?shù)代碼為:python script.py --batch-size=10
注意:To see more intermediate results, check out?./checkpoints/maps_cyclegan/web/index.html
去checkpoint里去看中間結(jié)果。
(3)第三句話
python test.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
結(jié)果保存的地方:
./results/maps_cyclegan/latest_test/index.html
5、跑CycleGAN遇到的問題以及解決辦法
地圖是600*600像素的,所以我覺得我1024*1024說不定也可以跑出來。
那我跑跑看?我想看最后的結(jié)果。好的那就跑吧。
跑的時候遇到了兩個沒有的module,那就直接安裝就行了。比如:visdom模塊和dominate模塊
遇到的問題是:visdom模塊報錯:could not connect? to Visdom server。但是后來又好了。那么就讓它繼續(xù)跑好啦。
6、研究?Synthetic Binary Volume Generation
細胞核看成是橢圓形的。
然后去看參考文獻【20】
好像馬上就要開會了,時間過得真快。
我的思路是先用已有的圖片放進CycelGAN進行訓(xùn)練,然后訓(xùn)練好generator和discriminator。
然后我用GAN產(chǎn)生grountruth,然后放進CycelGAN進行test產(chǎn)生images.
這個思路真的還不錯哎!
但是我還是先研究清楚他是怎么做的吧!研究Synthetic Binary?Volume Generation。
也可以用他的方法:
我的思路是先用已有的圖片放進CycelGAN進行訓(xùn)練,然后訓(xùn)練好generator和discriminator。
然后我用 Synthetic Binary?Volume Generation 產(chǎn)生grountruth,然后放進CycelGAN進行test產(chǎn)生images.
這個思路也還不錯哎!
三、復(fù)習(xí)580
最喜歡看書了。(*/ω\*)
看完lecture2和3
找了好久的藍筆啊
然后把note放到手機或者平板上看,放到電腦上面看太費腦子了
四、我希望今天能用GAN生成更多的images
首先我用基礎(chǔ)的GAN生成,看一下結(jié)果。
然后我用https://medium.com/@jonathan_hui/gan-super-resolution-gan-srgan-b471da7270ec里提到的superresolutionGAN去嘗試結(jié)果。
generate with the video data
。