使用FCN自定义6层网络,出现了如下的错误:
epoch=1,i=809 of 552131, loss=0.313313
epoch=1,i=810 of 552131, loss=1.110036
epoch=1,i=811 of 552131, loss=0.313313
epoch=1,i=812 of 552131, loss=0.313313
epoch=1,i=813 of 552131, loss=0.313313
epoch=1,i=814 of 552131, loss=0.313313
epoch=1,i=815 of 552131, loss=1.188147
epoch=1,i=816 of 552131, loss=0.641375
epoch=1,i=817 of 552131, loss=0.313313
epoch=1,i=818 of 552131, loss=0.313313
epoch=1,i=819 of 552131, loss=0.313313
loss值很多一样,并且出现了loss值大于1的情况,经过搜索,很多说是因为FCN的上采样并没有使用双线性插值进行初始化。所以增加了双线性插值相关的函数之后,结果还是一样
epoch=0,i=70708 of 552131, loss=1.000120
epoch=0,i=70709 of 552131, loss=0.313675
epoch=0,i=70710 of 552131, loss=1.124928
epoch=0,i=70711 of 552131, loss=0.313675
epoch=0,i=70712 of 552131, loss=0.376079
epoch=0,i=70713 of 552131, loss=0.313675
epoch=0,i=70714 of 552131, loss=0.313675
epoch=0,i=70715 of 552131, loss=0.313675
epoch=0,i=70716 of 552131, loss=0.313675
并没有改善。继续查询相关的资料,后来继续检查代码,发现我在最后一层的deconv层中最后加入了bias,去掉bias之后,结果如下:
epoch=0,i=102158 of 552131, loss=0.841264
epoch=0,i=102159 of 552131, loss=0.474077
epoch=0,i=102160 of 552131, loss=0.474077
epoch=0,i=102161 of 552131, loss=0.474077
果然没有出现大于1的情况,但是很多loss值还是一样,可能与数据集相关,需要进一步验证。