try*_*arn 20 python neural-network keras recurrent-neural-network
我试图将一层的输出传递到两个不同的层,然后将它们连接在一起.但是,我被这个错误所阻止,这个错误告诉我输入不是符号张量.
Received type: <class 'keras.layers.recurrent.LSTM'>. All inputs to the layers should be tensors.
Run Code Online (Sandbox Code Playgroud)
但是,我相信我非常密切地关注文档:https: //keras.io/getting-started/functional-api-guide/#multi-input-and-multi-output-models
我不完全确定为什么这是错的?
net_input = Input(shape=(maxlen, len(chars)), name='net_input')
lstm_out = LSTM(128, input_shape=(maxlen, len(chars)))
book_out = Dense(len(books), activation='softmax', name='book_output')(lstm_out)
char_out = Dense(len(chars-4), activation='softmax', name='char_output')(lstm_out)
x = keras.layers.concatenate([book_out, char_out])
net_output = Dense(len(chars)+len(books), activation='sigmoid', name='net_output')
model = Model(inputs=[net_input], outputs=[net_output])
Run Code Online (Sandbox Code Playgroud)
谢谢
Adi*_*une 24
看起来您实际上并未向LSTM图层提供输入.您可以指定递归神经元的数量和输入的形状,但不提供输入.尝试:
lstm_out = LSTM(128, input_shape=(maxlen, len(chars)))(net_input)
Run Code Online (Sandbox Code Playgroud)
小智 9
我知道,文档可能会令人困惑,但 Concatenate 实际上只需要“axis”作为参数,而您传递图层。这些层需要作为参数传递给它的结果,如下所示:
要修改的行:
x = keras.layers.concatenate([book_out, char_out])
应该如何:
x = keras.layers.Concatenate()([book_out, char_out])