因此,我试图在FCN8模型上对形状为(3,224,224)的图像进行训练,但是在激活层之前的Reshape层遇到问题。它似乎未达到预期的效果,或者我可能做的事情完全错误。
对于模型本身,我从这里开始广泛引用它,因为我是对此的初学者:https://github.com/divamgupta/image-segmentation-keras/blob/master/Models/FCN8.py
我也尝试过手动输入“重塑”的尺寸
o = (Reshape((3,outputHeight*outputWidth)))(o)
,但没有成功。当前正在使用Keras的2.2.2版本。
在引用的github链接中:
def FCN8(...):
...
...
...
o = (Reshape(( -1 , outputHeight*outputWidth )))(o)
o = (Permute((2, 1)))(o)
o = (Activation('softmax'))(o)
model = Model( img_input , o )
model.outputWidth = outputWidth
model.outputHeight = outputHeight
return model
因此,在张量到达激活层时,它应该与model.summary()
中显示的内容匹配。但不幸的是,我看到的是这个
ValueError:检查目标时出错:预期的activation_1具有3个维度,但数组的形状为(1、3、224、224)