我希望创建一个基本的RNN,可以将两个字节相加。以下是输入和输出样例,对于简单的加法,期望得到这些结果:
X = [[0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0]]
也就是说,
X1 = 00101111
而 X2 = 01110010
。Y = [1, 0, 1, 0, 0, 0, 0, 1]
我创建了以下顺序模型
model = Sequential()
model.add(GRU(output_dim = 16, input_length = 2, input_dim = 8))
model.add(Activation('relu'`))
model.add(Dense(2, activation='softmax'))
model.compile(loss = 'binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
model.summary()
我收到的错误信息大致如下:
预期
lstm_input_1
应该有3个维度,但得到的数组形状为(8L, 2L)
所以如果我通过将X更改为以下内容来增加维度
[[[0 0]] [[1 1]] [[1 1]] [[1 0]] [[0 0]] [[1 0]] [[0 1]] [[1 0]]]
然后错误变成了
预期
lstm_input_1
的形状为(None, 8, 2)
,但实际得到的数组形状为(8L, 1L, 2L)