【发布时间】:2019-07-23 16:31:49
【问题描述】:
我正在玩一个模型,该模型应该以 8x8 棋盘作为输入,编码为 224x224 灰度图像,然后输出 64x13 单热编码逻辑回归 = 方块上棋子的概率。
现在,在我不太了解的卷积层之后,如何继续获得 2D-Dense 层作为结果/目标。
我尝试将 Dense(64,13) 作为层添加到我的 Sequential 模型中,但出现错误“Dense` can accept only 1 positional arguments ('units',)”
甚至可以训练二维目标吗?
编辑1: 这是我的代码的相关部分,经过简化:
# X.shape = (10000, 224, 224, 1)
# Y.shape = (10000, 64, 13)
model = Sequential([
Conv2D(8, (3,3), activation='relu', input_shape=(224, 224, 1)),
Conv2D(8, (3,3), activation='relu'),
# some more repetitive Conv + Pooling Layers here
Flatten(),
Dense(64,13)
])
TypeError:
Dense只能接受 1 个位置参数('units',),但您传递了以下位置参数:[64, 13]
EDIT2:正如 Anand V. Singh 所建议的,我将 Dense(64, 13) 更改为 Dense(832),效果很好。损失 = mse。
使用“sparse_categorical_crossentropy”作为损失和 64x1 编码(而不是 64x13)不是更好吗?
【问题讨论】:
-
首先,请提供一个示例,包括您当前的代码:stackoverflow.com/help/mcve。其次,使用深度模型来预测棋盘格上的方块似乎有点过头了。如果这只是玩 Keras 和卷积网络的一种方式,那很好。否则,还有更传统的方法已经行之有效。
-
为我尝试编译的顺序模型提供了代码示例。
标签: conv-neural-network keras-layer sequential