Python Tensorflow用于图像分割:更改小批量大小会停止学习

Python Tensorflow用于图像分割:更改小批量大小会停止学习,python,tensorflow,image-segmentation,Python,Tensorflow,Image Segmentation,我创建了一个图像分割网络,特别是脑肿瘤。带有代码的jupyter笔记本是 当我用1的小批量训练CNN时,我得到了一个相当好的结果: 但当我将尺寸更改为更大(2或更多)时,结果非常糟糕: 张力板显示了损耗的差异。很明显,batchsize为2的网络并没有使损失最小化(蓝色) 你知道为什么会这样吗?我发现了问题所在。我用tensorboard检查了我的图形,我注意到在CONV1/S1中,我没有将ReLu的输出连接到下一层(CONV1/S2),而是直接连接conv2d的输出 我更改了代码中的那

我创建了一个图像分割网络,特别是脑肿瘤。带有代码的jupyter笔记本是

当我用1的小批量训练CNN时,我得到了一个相当好的结果:

但当我将尺寸更改为更大(2或更多)时,结果非常糟糕:

张力板显示了损耗的差异。很明显,batchsize为2的网络并没有使损失最小化(蓝色)


你知道为什么会这样吗?

我发现了问题所在。我用tensorboard检查了我的图形,我注意到在CONV1/S1中,我没有将ReLu的输出连接到下一层(CONV1/S2),而是直接连接conv2d的输出


我更改了代码中的那一行,一切正常。

您的损失是一笔总数还是平均值?如果损失是一个总和,那么损失将随着批量的增加而线性增加。@ness\u boy我的损失是:损失=tf.nn.sigmoid\u交叉\u熵\u与\u logits(logits=output,labels=target)成本=tf.reduce\u平均值(损失)嗯,好的,如果你在绘制
成本
,那么它应该是一个平均值。但是,如果不查看您的代码,很难判断问题可能是什么:(如果您感兴趣,代码在这里,您是否尝试重新调整学习率?您是否使用了批次规格化或其他对批次大小敏感的东西?您的代码中也可能存在错误,将批次维度与其他维度混合在一起。