问题描述
我试图实现一个具有周期性激活功能的自动编码器 - siren
Link。但是我找到了仅使用线性层的示例。在论文中,他们提到了一个使用 CNN 的自定义超网络,但我不明白如何用于我的自动编码器。
我在此附上论文 - Link
class Autoencoder(nn.Module):
def __init__(self):
super(Autoencoder,self).__init__()
# encoder layers
self.enc1 = nn.Conv2d(1,64,kernel_size=3,padding=1)
self.enc2 = nn.Conv2d(64,32,padding=1)
self.enc3 = nn.Conv2d(32,16,padding=1)
self.enc4 = nn.Conv2d(16,8,padding=1)
self.pool = nn.MaxPool2d(2,2)
# decoder layers
self.dec1 = nn.ConvTranspose2d(8,stride=2)
self.dec2 = nn.ConvTranspose2d(8,stride=2)
self.dec3 = nn.ConvTranspose2d(16,kernel_size=2,stride=2)
self.dec4 = nn.ConvTranspose2d(32,stride=2)
self.out = nn.Conv2d(64,1,padding=1)
def forward(self,x):
# encode
x = F.relu(self.enc1(x))
x = self.pool(x)
x = F.relu(self.enc2(x))
x = self.pool(x)
x = F.relu(self.enc3(x))
x = self.pool(x)
x = F.relu(self.enc4(x))
x = self.pool(x) # the latent space representation
# decode
x = F.relu(self.dec1(x))
x = F.relu(self.dec2(x))
x = F.relu(self.dec3(x))
x = F.relu(self.dec4(x))
x = F.sigmoid(self.out(x))
return x
net = Autoencoder()
print(net)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)