keras - 如何将 PyTorch 循环块转换为 Keras equvalet
问题描述
我正在测试几种语义分割架构,并遇到了我想尝试的 PyTorch 实现。我的问题是我没有使用 PyTorch 的经验,因此很难将以下代码片段转换为 Keras。
class Recurrent_block(nn.Module):
def __init__(self,ch_out,t=2):
super(Recurrent_block,self).__init__()
self.t = t
self.ch_out = ch_out
self.conv = nn.Sequential(
nn.Conv2d(ch_out,ch_out,kernel_size=3,stride=1,padding=1,bias=True),
nn.BatchNorm2d(ch_out),
nn.ReLU(inplace=True)
)
def forward(self,x):
for i in range(self.t):
if i==0:
x1 = self.conv(x)
x1 = self.conv(x+x1)
return x1
解决方案
以下代码片段是否等效?
from keras.layers import *
def single_conv(filters):
def layer(input):
x = Conv2D(filters=filters, kernel_size=3, strides=1, padding='same')(input)
x = BatchNormalization()(x)
x = ReLU()(x)
return x
return layer
def recurrent_block(filters, t=2):
def layer(input):
for i in range(t):
if i == 0:
x1 = single_conv(filters)(input)
add = Add()([input, x1])
x1 = single_conv()(add)
return x1
return layer
推荐阅读
- javascript - 为什么茉莉间谍返回一个函数?
- javascript - 带有数据的对象到带有键和值列表的对象中 - javascript
- amazon-web-services - AWS Amplify:使用套接字 IO 作为后端
- javascript - 在 webView Android Studio 中执行按钮单击
- excel - 从剪贴板粘贴适用于某些人而不适用于其他人
- node.js - 如何在 fastify 中使用 node-sspi
- python - Python 调用创建目录的函数无法按预期工作
- reactiveui - 从 IActivatableViewModel 中的 WhenActivated 调用异步方法
- python - 多处理:使用进程列表而不是池映射函数
- excel - 获取触发宏的单元格的单元格值(例如 A6)