在训练unet语义分割代码的过程中,当loss/train 一直在0.5之间徘徊。想让loss值再小点就做了如下改动。
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左右。
刚开始:
大约30min后:
说明改动的很有效果。
等结果出来再更新!