keras - 在 Keras 中实现架构的建议
问题描述
什么是使用 Keras 实现以下架构的简单方法。
有两个输入编码器合并,部分输出提供给解码器。最后一层的损失传播到合并层,两个编码器之间的差异反向传播到一个编码器;两个网络之间的差异被添加到反向传播的输出损失中并传递给另一个网络。
解决方案
我已经开始实施它,如下所示:
Y=Input(shape=(100,),name='Fe_input')
y=Dense(100, activation=LeakyReLU(alpha=0.0001))(Y)
y=BatchNormalization()(y)
y=Dense(60, activation=LeakyReLU(alpha=0.0001))(y)
y=BatchNormalization()(y)
y=Dense(20, activation=LeakyReLU(alpha=0.0001))(y)
y=BatchNormalization()(y)
X=Input(shape=(512,),name='Fx_input')
x=Dense(100, activation=LeakyReLU(alpha=0.0001))(X)
x=BatchNormalization()(x)
x=Dense(60, activation=LeakyReLU(alpha=0.0001))(x)
x=BatchNormalization()(x)
x=Dense(20, activation=LeakyReLU(alpha=0.0001))(x)
x=BatchNormalization()(x)
merge_layer=concatenate([x,y], name='merge_layer')
# I need to push partial output to merge layer to the next layer. Not sure how to
#do that.
x=Dense(60, activation=LeakyReLU(alpha=0.0001))(x)
x=BatchNormalization()(x)
Fd=Dense(100, activation='sigmoid')(x)
model=Model([X,Y],[merge_layer, Fd])
model.compile(...)
如何获取部分输出并将其发送到解码器部分?此外,如何将反向传播期间的梯度求和并推送到其中一个分支?
推荐阅读
- nginx - Nginx 保留 $request_uri
- mysql - 优化两个表之间重复 n-uplets 的搜索
- vb.net - DataGridView 中的过滤器问题
- python - 如何将数据库路由器添加到 Django 项目
- ios - 将 iOS 框架变成 Cocoapod - 我需要一个新的仓库吗?它必须建立一个静态库吗?
- react-native - 将 react-native-fontawesome 升级到 6.0.1,图标显示为问号
- java - 让 ModelMapper 忽略 JPA Lazy 且尚未初始化的映射字段
- msbuild - msbuild:如何在构建中构建和运行控制台应用程序并将输出文件写入另一个项目的输出目录?
- javascript - CacheStorage 制作的 JavaScript 浏览器缓存对象是线程安全的吗?
- ios - 如何使用 NSURL 等待异步请求完成?