(self, inputs)
| 198 | self.residual = nn.Sequential(Conv2dSame(in_channels=32, out_channels=in_channel, kernel_size=1)) |
| 199 | |
| 200 | def forward(self, inputs): |
| 201 | secret, image = inputs |
| 202 | secret = secret - .5 |
| 203 | image = image - .5 |
| 204 | |
| 205 | secret = self.secret_dense(secret) |
| 206 | secret = secret.reshape((-1, self.in_channel, self.height, self.width)) |
| 207 | inputs = torch.cat([secret, image], axis=1) |
| 208 | |
| 209 | conv1 = self.conv1(inputs) |
| 210 | conv2 = self.conv2(conv1) |
| 211 | conv3 = self.conv3(conv2) |
| 212 | conv4 = self.conv4(conv3) |
| 213 | conv5 = self.conv5(conv4) |
| 214 | |
| 215 | up6 = self.up6(nn.Upsample(scale_factor=(2, 2), mode='nearest')(conv5)) |
| 216 | merge6 = torch.cat([conv4,up6], axis=1) |
| 217 | conv6 = self.conv6(merge6) |
| 218 | |
| 219 | up7 = self.up7(nn.Upsample(scale_factor=(2, 2), mode='nearest')(conv6)) |
| 220 | merge7 = torch.cat([conv3,up7], axis=1) |
| 221 | conv7 = self.conv7(merge7) |
| 222 | |
| 223 | up8 = self.up8(nn.Upsample(scale_factor=(2, 2), mode='nearest')(conv7)) |
| 224 | merge8 = torch.cat([conv2,up8], axis=1) |
| 225 | conv8 = self.conv8(merge8) |
| 226 | |
| 227 | up9 = self.up9(nn.Upsample(scale_factor=(2, 2), mode='nearest')(conv8)) |
| 228 | merge9 = torch.cat([conv1,up9,inputs], axis=1) |
| 229 | |
| 230 | conv9 = self.conv9(merge9) |
| 231 | residual = self.residual(conv9) |
| 232 | |
| 233 | return residual |
| 234 | |
| 235 | |
| 236 | class StegaStampDecoder(nn.Module): |
nothing calls this directly
no outgoing calls
no test coverage detected