python - 如何将值附加到 Keras 深度网络中的张量
问题描述
我更熟悉 Pytorch,但是,当前的项目需要 Keras。我的基本型号是Densenet121
. 我Global Average Pooling
为输出附加了一个层和一个 softmax 层。
我想做的是GlobalAveragePooling2D()
在训练时将来自另一个网络的输出附加到当前批次的输出,作为一个小实验。在Pytorch
中,我只会在 Forward 函数中附加值,但是对于 Keras 来说是新手,我有点卡住了。以下是我基本设置模型的方式。任何帮助,将不胜感激。
x = base_model.output
x_pool = GlobalAveragePooling2D()(x)
predictions = Dense(1, activation="sigmoid")(x_pool)
model = Model(inputs=base_model.input, outputs=predictions)
model.compile(optimizer='adam',
loss='categorical_crossentropy')
history = model.fit_generator(train_generator,
validation_data=valid_generator,
steps_per_epoch=100,
validation_steps=25,
epochs = 3)
在 Pytorch 中,我会做这样的事情(这很粗糙,但希望你能明白)。
def forward(self, x, value):
.
.
.
x = self.conv_layer(x)
x = self.global_pool(x)
x = torch.cat((x, value), dim = 3) #tensor is of shape (batch_size, 1, x.shape[2]+1)
x = x.view(-1, 1)
x = self.sigmoid(x)
return x
解决方案
推荐阅读
- sql - SQL 不是由 JDBC 运行,但在数据库客户端中可以完美运行
- python - 如何使用 Python 3.7 提取 Google 快讯?
- youtube-api - YouTube 数据 API 错误。(403) 未配置访问。配额限制问题
- c# - 是否可以简化此代码 | Unity x Firebase
- java - 对字符文字中的许多字符(代理字符)
- javascript - 在 Less 或 jQuery 中使用 If 条件的 Ul li 列计数
- javascript - 在带有扩展名的列表中查找文件名
- vuetify.js - Vuetify 中的 `v-overflow-btn` 组件的用途是什么?它与选择组件(`v-select`)有什么不同?
- node.js - 如何将日期数组与 Node.js 中的当前日期进行比较
- java - Spring Boot 应用程序启动时出错(Vaadin)