def forward(self, x):
"""
Conditional Image Generation with PixelCNN Decoders
http://arxiv.org/abs/1606.05328
1D gated activation unit that models the forget gates and
real gates of an activation unit using convolutions.
:param x: (batch size, # channels, height)
:return: tanh(conv(Wr, x)) * sigmoid(conv(Wf, x))
"""
real_gate_weights, forget_gate_weights = self.weights.split(self.kernel_size, dim=2)
real_gate_weights = real_gate_weights.contiguous()
forget_gate_weights = forget_gate_weights.contiguous()
real_gate = F.tanh(F.conv1d(input=x, weight=real_gate_weights, stride=1))
forget_gate = F.sigmoid(F.conv1d(input=x, weight=forget_gate_weights, stride=1))
return real_gate * forget_gate
评论列表
文章目录