反卷积网络未产生结果

时间:2019-05-30 08:47:38

标签: tensorflow conv-neural-network image-segmentation deconvolution semantic-segmentation

我有一堆3D腹部图像,我想通过这些图像来学习分割肾脏和肝脏的网络。在继续实施可以从3d图像中学习的模型之前,我希望我先学习事物在2d中的工作方式,然后再继续进行,因此我创建了具有以下架构的网络

tanh(转化32)-tan(转化64)-tan(转化128)-softmax(转化256) (Deconv,softmax(Conv 128))-(Deconv,softmax(Conv 64))-(Deconv,softmax(Conv32))-(Deconv,softmax(Conv 3))

,并对单个文件的每个深度进行了培训。我特意将第四层和连续层的激活设置为softmax,因为在对卷积进行反卷积时,我想弄清楚该程序要插值的内容,而不仅仅是一些神经激活。给定softmax产生的结果压缩在0到1之间,我认为将其作为浮点图像是有意义的。

每个图像的数据尺寸为[512,512,371],其中我认为第三个尺寸为深度,输出的形状为[512,512,371,3],其中最后一个维度可以解释为代表每个类别(背景,肾脏和肝脏)的像素使用交叉熵计算损失的可能性。

反卷积层不过是转置卷积,其权重已初始化为双线性插值。 (由于我独立检查了模块,因此可以认为双线性插值有效)。

观察到网络存在问题,例如训练误差在20个周期后达到零,并且在使用均方误差损失函数进行训练时开始在某些ε值内振荡。在使用交叉熵进行训练时,情况并非如此,但就最终分割而言,它甚至与以前的模型所产生的结果还不相近。

我在github-repo中整理了代码,也许您可​​以发现我无法做到的事情。如果您在我的存储库中遇到sf_epochs_30.png并想知道它是什么,那么这里是描述: 图(a):培训图像 图(b):地面真相 图(c):在经过30个纪元训练后被2d网络分割,损失为MSE。

有人可以建议如何改善该网络的学习。希望您尝试运行我的程序。

0 个答案:

没有答案