machine-learning - 构建神经网络 - 传递网络作为参数在 keras 中不起作用
问题描述
我正在玩 Keras 代码。当我写这样的代码时,
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(784,) ))
model.add(Dense(128, activation='relu'))
model.add(Dense(784, activation='relu'))
model.compile(optimizer='adam', loss='mean_squared_error')
它可以正常工作。但是如果通过将上一层作为参数传递到下一层来实现这一点,那么我会得到错误。
layer1 = Dense(64, activation='relu', input_shape=(784,) )
layer2 = Dense(128, activation='relu') (layer1)
layer3 = Dense(784, activation='relu') (layer2)
model = Model(layer1, layer3)
model.compile(optimizer='adam', loss='mean_squared_error')
下面是错误
ValueError: Layer dense_2 was called with an input that isn't a symbolic tensor. Received type: <class 'keras.layers.core.Dense'>. Full input: [<keras.layers.core.Dense object at 0x7f1317396310>]. All inputs to the layer should be tensors.
我怎样才能解决这个问题?
解决方案
你错过了Input
层。
x = Input((784,))
layer1 = Dense(64, activation='relu')(x)
layer2 = Dense(128, activation='relu') (layer1)
layer3 = Dense(784, activation='relu') (layer2)
model = Model(inputs=x, outputs=layer3)
model.compile(optimizer='adam', loss='mean_squared_error')
推荐阅读
- node.js - 来自 module.js 的 app.js 中的触发函数
- spring-boot - 发送到 Kafka 主题时反序列化对象时出错
- arrays - 我的代码没有从用户那里读取数组
- react-native - 在具有绝对位置的视图上反应 Native TouchableWithoutFeedback
- javascript - “R plotly”小提琴图的悬停模板格式
- amibroker - ho 打印或导出箭头指示的值的日期
- c++ - 关于 tr() 在运行时在 Qt 中翻译文本的问题
- javascript - 如何在网站中添加全球事件?
- python-3.x - FFT 频谱图中的频率不正确
- variables - 如何从 ansible Vault 获取密码以用作变量?