图像分割|pytorch(2019-04-08)

计划

1.复现Unet,并且实现把前面层的网络输出加到高层的代码

2.尝试用visdom观察结果

3.完成Unet的复现,但是,估计要改的话还是得弄懂upsample的尺寸变化,最后打算加一个fuse。

3.29

●代码里加了visdom,能够展现loss和error的变化了,但是,自变量没办法是eopch,每次都从0画一条线,不知道为什么。。看到别人是训练完了,再一次性画图,就可以,我是想边训练边画图的。。。。


我的结果

可以看到还是收敛的了。。就是图有点丑。。

4.1

●pytorch一些用法

1.nn.ModuleList

ModuleList can be indexed like a regular Python list, but modules it contains are properly registered, and will be visible by all Module methods.

Parameters:modules (iterableoptional) – an iterable of modules to add

2.add_module

Adds a child module to the current module.

The module can be accessed as an attribute using the given name.

3.torch.nn.functional.pad(inputpadmode='constant'value=0)

The number of dimensions to pad is [len(pad)/2] and the dimensions that get padded begins with the last dimension and moves forward. For example, to pad the last dimension of the input tensor, then pad has form(padLeft, padRight); to pad the last 2 dimensions of the input tensor, then use (padLeft, padRight, padTop, padBottom); to pad the last 3 dimensions, use (padLeft, padRight, padTop, padBottom, padFront, padBack).

●把Unet里一些层cat,测试结果可能提升了一点点,所以考虑别的方法,

   一、添加辅助loss(未做完。此次测试没有辅助loss)

   二、处理边界图,做一个二值的分类。

    结果上测试时F1值提升了10个点左右。训练时验证的错误率却不是很低。。

    ==> 对测试结果,看了一两张图,发现有一些噪点,图片边界会有莫名的线出现。所以下次处理图不把边       界的像素标注了。然后结果让人满意的一点是,对比原图,和gt,gt标错的一小点地方网络处理正确了。

你可能感兴趣的:(图像分割|pytorch(2019-04-08))