def test_GramOperator_call(): torch.manual_seed(0) target_image = torch.rand(1, 3, 128, 128) input_image = torch.rand(1, 3, 128, 128) encoder = enc.SequentialEncoder((nn.Conv2d(3, 3, 1), )) op = ops.GramOperator(encoder) op.set_target_image(target_image) actual = op(input_image) desired = mse_loss( pystiche.gram_matrix(encoder(input_image), normalize=True), pystiche.gram_matrix(encoder(target_image), normalize=True), ) ptu.assert_allclose(actual, desired)
def test_GramOperator_call(self): torch.manual_seed(0) target_image = torch.rand(1, 3, 128, 128) input_image = torch.rand(1, 3, 128, 128) encoder = SequentialEncoder((nn.Conv2d(3, 3, 1), )) op = ops.GramOperator(encoder) op.set_target_image(target_image) actual = op(input_image) desired = mse_loss( pystiche.batch_gram_matrix(encoder(input_image), normalize=True), pystiche.batch_gram_matrix(encoder(target_image), normalize=True), ) self.assertTensorAlmostEqual(actual, desired)
def get_style_op(encoder, layer_weight): return ops.GramOperator(encoder, score_weight=layer_weight)