【如何有效降低unet网络在训练过程中的loss/train】

在训练unet语义分割代码的过程中,当loss/train 一直在0.5之间徘徊。想让loss值再小点就做了如下改动。
【如何有效降低unet网络在训练过程中的loss/train】_第1张图片
1.尝试改动代码中的batch_size:由2改为5.
batch_size=2 —> batch_size=5
在这里插入图片描述
这时出现报错,报错内容:RuntimeError: CUDA out of memory. Tried to allocate 320.00 MiB (GPU 0; 11…)
显示cpu显存不足,显然这个改动方向不对。

2.尝试改动了代码里的学习率learning rate:由1e-8改为1e-6
lr=1e-8 —> lr=1e-6
在这里插入图片描述
在lr=1e-8时,代码的loss/train是在0.68左右开始下降的,但是训练五个小时后loss/train却一直停留在0.5左右。

改动之后使得lr=1e-6,learning rate变大了,代码的loss/train是在0.90左右开始下降的,但是训练半个小时后loss/train已经达到了0.4左右。

刚开始:
【如何有效降低unet网络在训练过程中的loss/train】_第2张图片
大约30min后:
【如何有效降低unet网络在训练过程中的loss/train】_第3张图片
说明改动的很有效果。
等结果出来再更新!

你可能感兴趣的:(unet,语义分割,深度学习,pytorch,机器学习)