为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的层输出与模型摘要中显示的维度不同?

为什么我的层输出与模型摘要中显示的维度不同?

尚方宝剑之说 2021-10-12 17:39:48
我设法创建了一个成功的 RNN,它可以预测字母序列中的下一个字母。但是,我无法弄清楚为什么我遇到的问题的解决方案有效。我的训练数据是维度的 (39000,7,7)我的模型如下:    model = Sequential()    model.add(SimpleRNN(7, input_shape = [7,7], return_sequences = True))    model.add(Flatten())    model.add(Dense(7))     model.add(Activation('softmax'))    adam = optimizers.Adam(lr = 0.001)    model.compile(loss='categorical_crossentropy',optimizer=adam, metrics=['accuracy'])    model.summary()    return modelLayer (type)                 Output Shape              Param #   =================================================================simple_rnn_49 (SimpleRNN)    (None, 7, 7)              105       _________________________________________________________________flatten_14 (Flatten)         (None, 49)                0         _________________________________________________________________dense_49 (Dense)             (None, 7)                 350       _________________________________________________________________activation_40 (Activation)   (None, 7)                 0         =================================================================Total params: 455Trainable params: 455Non-trainable params: 0_________________________________________________________________这完美地工作。我的问题是,为什么我需要展平层?当我不包括它时,我会得到这个模型摘要:跟着这个错误ValueError: Error when checking target: expected activation_41 to have 3 dimensions, but got array with shape (39000, 7)我的问题是:当模型摘要说第二个例子中密集层的输出应该是 (None, 7 , 7) 并且错误消息说激活级别正在期待这样一个 3D 输入时,为什么密集层实际上是(39000,7)根据错误消息输出形状张量?我意识到 flatten() 层通过将所有内容都放在 2D 中解决了这个问题,但我很困惑为什么没有它它就无法工作。
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

在您的错误声明中,您可以看到错误是在检查目标尺寸时引起的。没有展平层的模型输出的形状(None, 7, 7)在模型摘要中正确显示。这里的问题是您的标签的形状是(None, 7),因此 Keras 抛出 a ValueError(可能在反向传播期间),因为您的标签的维度比网络的输出少一个。Keras 期望(None, 7, 7)from 标签与您的激活层的尺寸相匹配,但收到了一个(None, 7)

这就是为什么model.add(Flatten())在添加密集层之前使用可以正常工作的原因,因为目标维度和输出维度都是(None, 7).


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信