2019-02-13/02-14

由于13号睡前停电断网,所以我把两天的内容放在一起去写了

当有很多事情摆在你面前的时候,你需要按照urgent的顺序分类,先做最urgent的事情,而不是逃避去把最urgent的事情放到最后去做。

14号的杂事有注册QE和填网上的银行账户。

最重要的事情是把作业写完,发完邮件和train新的代码。

一、把ITK-SNAP的一些问题弄懂

参考文章:2019-02-03

我先下载原图,然后导入到ITK-SNAP里去看问题。下载文件的时候去整理好电脑桌面。

A、需要解释的问题

1、关于bit的问题:

什么是bit:

颜色深度概念:颜色深度是指每个像素可以显示的颜色数,一般是用“位-Bit”为单位来描述的。

举例说明:

如果一个图片支持256种颜色(如GIF格式),那么就需要256=2^8 个不同的值来表示不同的颜色。也就是从0到255,用二进制表示就是从00000000到11111111,总共需要8位二进制数,所以颜色深度是8 Bit。

软件只支持8-bit或者16-bit

之前的图恰好是8-bit的,所以在label的时候没有遇到什么问题。

2、关于load image sequence 的问题:

首先从imageJ里load file sequence,然后save as rawdata。再在ITK-SNAP里load刚刚save的raw data即可。 

3、加载的图像在Y坐标翻转:

左下角是原点.

图像并没有翻转呀

4、label image要比原图大:

是原图的两倍大。

原图是1024*1024,8bit

label之后再保存,图像的大小是:2MB,1024*1024而且是16bit。

5、是否支持image_sequence的导入?

在ImageJ里导入image_sequence,然后在ITK-SNAP里,z轴的pixel选为sequence的数目即可。

B、自己的探究

1、一开始往ITK-SNAP里导入不成功的原因:

原图是12bit,但是我导入的时候选的是支持8bit。

怎么看rawdata是12bit还是8bit呀?

2、为什么要把TIF图变成rawdata格式的图,有什么优点呢?

怎么查看图片的位深度?

对TIF图片,右键属性,详细信息,可以看到位深度为24。

3、怎么放大图?

点击刷子旁边的放大镜按钮,选择2*或者4*即可。

4、最后保存的nrrd的图怎么处理?

参考这篇:https://blog.csdn.net/Michelexie/article/details/81907613

nrrd格式用Python读取并保存为png图片

C、从学姐那里学来的一些技巧

1、先导入image sequence,然后存成 rawdata,这时候变成了3Dstack的rawdata

2、存图片的时候,直接点上面的segmentation,然后存成nrrd格式的segmentation.(不推荐直接存成workspace)

3、再次导入的时候,你先加载原图,然后把存的segmentation的nrrd丢进来。

4、然后你在label的时候可以选择3D label,然后前后调整图像去微调。这样就不用每一张图都自己重新画啦。

5、存起来是黑白的,但是可以用colorcoding的代码让图像变得好看。

二、train起来pixel2pixel的GAN网络

接着2019-02-08去写。

1、分析例子里的数据集:

例子里的数据集有3个文件夹:train, test, val,分别含有的图像数目为:400,106,100

2、开始combine_images

遇到问题1:

跑出来的结果:train 和 test 里没图,val里面有图,但是不对应。

(1)不对应的原因是:val文件夹命名的时候顺序错乱了。

(2)train 和 test 里没图,但是val里有图:

原因:命名问题:组合在一起的照片务必需要有相同的名字!

命令:

在主文件夹下运行这段命令

python3 ./datasets/combine_A_and_B1.py --fold_A ./datasets/cell2/A --fold_B ./datasets/cell2/B --fold_AB ./datasets/cell2

记得是运行1.py,原因在2019-02-08里有写。

成功,终于有图了!

3、开始train

参考网站:

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

https://blog.csdn.net/Gavinmiaoc/article/details/80585531

正确的命令应该是:

python train.py --dataroot ./datasets/cell2 --name cell2_pix2pix --model pix2pix --direction AtoB

网站上的相关文字如下:

Train a model:

#!./scripts/train_pix2pix.sh

python train.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA

To view training results and loss plots, run python -m visdom.server and click the URL http://localhost:8097. To see more intermediate results, check out ./checkpoints/facades_pix2pix/web/index.html.

Test the model (bash ./scripts/test_pix2pix.sh):

#!./scripts/test_pix2pix.sh

python test.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA

The test results will be saved to a html file here: ./results/facades_pix2pix/test_latest/index.html. You can find more scripts at scripts directory.

先跑一下,能正常跑起来了之后,然后再放到后台去跑。

遇到问题1;怎么改batch_size?

看一下主文件夹下的option文件夹下的train_option.py和base_option.py文件。

在base_option.py里,有epochs和batch_size的选项。

--batch_size 2

--epoch 100

这样的话,命令可以改为:

python train.py --dataroot ./datasets/cell2 --name cell2_pix2pix --model pix2pix --direction AtoB --epoch 100 --batch_size 2

解决问题。

然后放到后台去跑吧!

参考文章:2019-02-07

因此,命令行如下:

nohup python train.py --dataroot ./datasets/cell2 --name cell2_pix2pix --model pix2pix --direction AtoB --epoch 100 --batch_size 2 &

我估计是网络原因导致了一开始跑到一半就没有显示进程了。。。。  

原来是自己的网线接口坏掉了。

进程编号是:19902

遇到问题2:如何结束这个进程?

因为主文件夹下的nohup.out里装了上一次的运行代码,所以你需要删掉它,再开始跑这次的。所以需要结束进程。

参考网址:https://www.cnblogs.com/baby123/p/6477429.html

终止进程的代码:

kill -9  进程号

查看后台进程的代码:

jobs -l

重新跑,这次的进程编号是:20504

但是nohop.out里还是有以前的信息记录啊。。。。

先跑着吧 不管那么多了。

其实我觉得自己可以先跑一下例程,看一下例程里有没有什么 client log的。

还是停下来跑例程吧!

明明后台有程序在跑啊,为啥输入jobs -I 没有东西输出呢?

我试试看跑例程嗷,跑例程也遇到一样的情况。

nohup python train.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA &

进程号是21699

这时候输入:jobs -l,会看到一个running的进程。

也是遇到了一样的情况,那么就等着它跑就好了。

好奇怪啊,关掉Ubuntu,再进来,再输入job -I,就没有进程了。。。好奇怪啊。。。。

上一次似乎是报错了:

train.py: error: argument --direction: expected one argument

你可能感兴趣的:(2019-02-13/02-14)