Keras-ConvNet将使用输入数据大小(N,M,F)和分类地面真实大小(N,M,K)进行训练

时间:2019-05-07 14:20:08

标签: python keras neural-network

我想训练一个CNN进行分类,它使用张量(N,M,F)作为输入,其形状像(N,M,K)。地面真相已转换为类别,所以K是类的数量。

我的想法是使用Convolution2D层。

明显的问题是最终的softmax层,应该像这样:

 out = ( Dense(K,activation='softmax'))(net)

返回以下错误消息

  

ValueError:检查目标时出错:预期density_3具有2维,但数组的形状为(N,M,K)

将输入重塑为(N,M,F,1)后,神经网络应该看起来像这样:

in = Input(shape=(M,F,1) )
net = ( Convolution2D(64 ))(in)
net = ( Convolution2D(128) )(net)
net = ( MaxPooling2D())(net)
net = ( Flatten())(net)
net = ( Dense(128))(net)
out = ( Dense(K), activation='softmax')(net)

另一种选择是将输入和输出分别重塑为(N * M,F)和(N * M,K),这对我有用,但如果可能,我想避免这种情况。有什么建议吗?

0 个答案:

没有答案