2019-02-04

以后再也不要这么晚睡觉了。

新的一周了,我希望这周我可以完成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的结构是类似这样的:

13133110-d1f58f272d697827.png

思路解释:两个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文件。

会自动解压的。

解压好的文件格式如下:

13133110-582d9c57653fb330.png

我想下载下来看一下内容,比如val和valA valB的关系。

关系如下:

13133110-e91416b2e8db76eb.jpg
val
13133110-835542ad44c98749.jpg
valA
13133110-ecd4380139a9ad71.jpg
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










猜你喜欢

转载自blog.csdn.net/weixin_34080903/article/details/87012328