以后再也不要这么晚睡觉了。
新的一周了,我希望这周我可以完成GAN和cycleGAN生成新的图。
下一周尝试对比其他方法。
一、继续研究GAN和CycleGAN
1、回去看GAN的论文,理解清楚loss function的含义。
理解清楚了 (*/ω\*)
2、做一个DCGAN基于轮子的小练习。
参考2019-02-02的日记
https://zhuanlan.zhihu.com/p/24767059 想跑一下这篇文章的结果
我之前跟这篇文章用的是同一个轮子,但是为什么结果不好?
对比发现,一个是训练数据集少,另一个是epoch不够多。
运行前记得激活tensorflow环境:source activate tensorflow
这次我的size设置是256*256,epoch设置为300,这次命令行里显示load sucess,应该能成功。
效果不大好哎。
在sample里,所有的test_arrange图片都等于第7张original图片的结果。
3、看CycleGAN学长的论文,弄清楚两个input之间的关系。
首先CycleGAN的结构是类似这样的:
思路解释:两个domain分别放 original image 和groundtruth。其实我觉得需要一一对应的哎。不过先不管这个了吧。
然后real original image生成fake groundtruth; 同时 real groundtruth 生成 fake original image。
我把这个图加到PPT上了,然后覆盖了原来的链接,这样老师下载的时候显示的就是新的PPT了。
所以以后发邮件给老师都用链接的方式而不是附件的方式(这样可以随时更新 (*/ω\*))
实测这样不行,因为老师电脑里不会更新!!!!因为这个被老师骂了。
二、跑CycelGAN
0、https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
介绍性的网站:https://zhuanlan.zhihu.com/p/27145954
用这个代码是不需要安装其他东西的。
1、图片会不会太大了
如果图片太大了该怎么处理?我可以把图片切成小的slices放进去,这个叫batch size.
然后用laplacian blending来融合这些slides.。
2、我先试试不切片,就正常跑吧。因为学长的代码也是正常跑的,我看他的图也蛮大的。
然后记得多放一点图,比如放200张图吧。
我总觉得我应该用pixel to pixel的代码哎,因为我的数据是paired的。
3、思路:我先尝试用pixel to pixel训练一遍看看结果
再尝试用 cyclegan跑一遍看看结果。
再尝试跑切片的代码,两种方法各跑一次。
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是一种创建并保存在bash里的语言。
下载完之后,datasets的文件夹里多了一个叫做:map的.zip文件。
会自动解压的。
解压好的文件格式如下:
我想下载下来看一下内容,比如val和valA valB的关系。
关系如下:
就是把他们拼在一起啦。
注意这里还有testA和testB。
他们的意思应该是:输入testA,能转化成testB。以及输入testB能转化成testA的意思吧。。。
但是这样怎么新生成呢?(这个问题待理解)
我觉得可能一个是test的输入,另一个是groundtruth吧
注意看学长的论文,在inference里面的句子:
基于based on labeled image 生成合成的image,那么这个合成的image和之前的labeled image是一对。
其实学长的论文那一块我没太看懂。
现在好像看懂了。结合block disgram去看,就容易理解了。
下面我想研究一下那个“ Synthetic Binary Volume Generation”到底是啥 by reading 参考文献20.。
(2)第二句话
python train.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
打开train.py文件去看这句话的参数含义。
参考网站:https://blog.csdn.net/weixin_35653315/article/details/72886718 命令行运行python时传入参数的三种方式。
parser.add_argument('--batch-size', type=int, default=32)
对应的传入参数代码为:python script.py --batch-size=10
注意:To see more intermediate results, check out ./checkpoints/maps_cyclegan/web/index.html
去checkpoint里去看中间结果。
(3)第三句话
python test.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
结果保存的地方:
./results/maps_cyclegan/latest_test/index.html
5、跑CycleGAN遇到的问题以及解决办法
地图是600*600像素的,所以我觉得我1024*1024说不定也可以跑出来。
那我跑跑看?我想看最后的结果。好的那就跑吧。
跑的时候遇到了两个没有的module,那就直接安装就行了。比如:visdom模块和dominate模块
遇到的问题是:visdom模块报错:could not connect to Visdom server。但是后来又好了。那么就让它继续跑好啦。
6、研究 Synthetic Binary Volume Generation
细胞核看成是椭圆形的。
然后去看参考文献【20】
好像马上就要开会了,时间过得真快。
我的思路是先用已有的图片放进CycelGAN进行训练,然后训练好generator和discriminator。
然后我用GAN产生grountruth,然后放进CycelGAN进行test产生images.
这个思路真的还不错哎!
但是我还是先研究清楚他是怎么做的吧!研究Synthetic Binary Volume Generation。
也可以用他的方法:
我的思路是先用已有的图片放进CycelGAN进行训练,然后训练好generator和discriminator。
然后我用 Synthetic Binary Volume Generation 产生grountruth,然后放进CycelGAN进行test产生images.
这个思路也还不错哎!
三、复习580
最喜欢看书了。(*/ω\*)
看完lecture2和3
找了好久的蓝笔啊
然后把note放到手机或者平板上看,放到电脑上面看太费脑子了
四、我希望今天能用GAN生成更多的images
首先我用基础的GAN生成,看一下结果。
然后我用https://medium.com/@jonathan_hui/gan-super-resolution-gan-srgan-b471da7270ec里提到的superresolutionGAN去尝试结果。
generate with the video data
。