问题描述
我用Chainer编写了这段代码,我想迁移到Keras。
class UNet(Chain):
def __init__(self):
super(UNet,self).__init__()
with self.init_scope():
self.conv1 = L.Convolution2D(1,16,4,2,1)
self.norm1 = L.Batchnormalization(16)
self.conv2 = L.Convolution2D(16,32,1)
self.norm2 = L.Batchnormalization(32)
self.conv3 = L.Convolution2D(32,64,1)
self.norm3 = L.Batchnormalization(64)
self.conv4 = L.Convolution2D(64,128,1)
self.norm4 = L.Batchnormalization(128)
self.conv5 = L.Convolution2D(128,256,1)
self.norm5 = L.Batchnormalization(256)
self.conv6 = L.Convolution2D(256,512,1)
self.norm6 = L.Batchnormalization(512)
self.deconv1 = L.Deconvolution2D(512,1)
self.denorm1 = L.Batchnormalization(256)
self.deconv2 = L.Deconvolution2D(512,1)
self.denorm2 = L.Batchnormalization(128)
self.deconv3 = L.Deconvolution2D(256,1)
self.denorm3 = L.Batchnormalization(64)
self.deconv4 = L.Deconvolution2D(128,1)
self.denorm4 = L.Batchnormalization(32)
self.deconv5 = L.Deconvolution2D(64,1)
self.denorm5 = L.Batchnormalization(16)
self.deconv6 = L.Deconvolution2D(32,1,1)
def __call__(self,X):
h1 = F.leaky_relu(self.norm1(self.conv1(X)))
h2 = F.leaky_relu(self.norm2(self.conv2(h1)))
h3 = F.leaky_relu(self.norm3(self.conv3(h2)))
h4 = F.leaky_relu(self.norm4(self.conv4(h3)))
h5 = F.leaky_relu(self.norm5(self.conv5(h4)))
h6 = F.leaky_relu(self.norm6(self.conv6(h5)))
dh = F.relu(F.dropout(self.denorm1(self.deconv1(h6))))
dh = F.relu(F.dropout(self.denorm2(self.deconv2(F.concat((dh,h5))))))
dh = F.relu(F.dropout(self.denorm3(self.deconv3(F.concat((dh,h4))))))
dh = F.relu(self.denorm4(self.deconv4(F.concat((dh,h3)))))
dh = F.relu(self.denorm5(self.deconv5(F.concat((dh,h2)))))
dh = F.sigmoid(self.deconv6(F.concat((dh,h1))))
return dh
我正在实现用于图像转换的Unet体系结构,但是,我正在用于音乐源分离。 我不知道将输入通道和输出放在keras conv2d方法中。
预先感谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)