我在训练语义分割模型时得到的预测数据

时间:2016-11-16 19:42:01

标签: computer-vision tensorflow deep-learning caffe

我试图针对超声神经数据集试验一些现有的语义分割代码。

实施基于u-net architecture

在训练过程中,我可以捕捉每个时期的验证图。在下图中,左边的是原始图像,中间的是真实的图像,右边的是预测的图像(或概率图)。

如下图所示,我们可以看到epoch0的预测只是全黑,那么在我看来,它开始捕捉原始图像的一些分布,然后它再次全黑。

我只想知道如何根据这些情节来解释训练过程,为什么它会在几个训练时期之后回到第一个时期的结果。

此外,为什么预测结果会在训练过程中重现原始图像的分布。

是否可以从这些训练观察中得出任何见解?

我通常跟随tutorial来生成训练集。 (我在教程中使用了create_train_data的相同功能。 唯一的区别是我添加了一个背景通道,以使形状为(1,image_row, image_col,2)

的蒙版图像
img_mask = io.imread(os.path.join(raw_data_path, image_mask_name))
img_mask = img_mask//255
img_mask_background = 1-img_mask

加载从上面生成的npy文件后,我将训练集的原始图像标准化

imgs_train = np.load(os.path.join(train_data_path,"imgs_train.npy"))
imgs_mask_train =   np.load(os.path.join(train_data_path,"imgs_mask_train.npy"))

imgs_train = imgs_train.astype('float32')
mean = np.mean(imgs_train)  # mean for data centering
std = np.std(imgs_train)  # std for data normalization
imgs_train -= mean
imgs_train /= std

我按照implementation来训练模型。除了这个之外,我没有改变任何东西

self.learning_rate_node = tf.train.exponential_decay(learning_rate=learning_rate, 
                                                        global_step=global_step, 
                                                        decay_steps=training_iters,  
                                                    decay_rate=decay_rate, 
                                                    staircase=True)

我将其更改为

global_step = global_step*self.batch_size

纪元0 enter image description here 时代4 enter image description here 时代12 enter image description here 时代16 enter image description here

0 个答案:

没有答案