Esempio n. 1
0
        t = adain(content_feat, style_feat4)
        t = alpha * t + (1 - alpha) * content_feat

        g_t = decoder(t)
        g_t_feats1, g_t_feats2, g_t_feats3, g_t_feats4 = vgg(g_t)

        loss_content = F.mean_squared_error(g_t_feats4, t)
        loss_style = style_loss(style_feat1, g_t_feats1)
        loss_style += style_loss(style_feat2, g_t_feats2)
        loss_style += style_loss(style_feat3, g_t_feats3)
        loss_style += style_loss(style_feat4, g_t_feats4)

        loss = content_weight * loss_content + style_weight * loss_style

        decoder.cleargrads()
        vgg.cleargrads()

        loss.backward()
        loss.unchain_backward()

        dec_opt.update()
        vgg_opt.update()

        sum_loss += loss.data.get()

        if epoch % interval == 0 and batch == 0:
            serializers.save_npz("decoder.model", decoder)
            with chainer.using_config("train", False):
                style_feat1, style_feat2, style_feat3, style_feat4 = vgg(
                    style_test)