style_transfer.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:deep-style-transfer 作者: albertlai 项目源码 文件源码
def build_loss(self, session, texture_weight=15, tv=500):
        if self.is_training:
            with tf.name_scope('loss'):     
                self.loss = self.descriptor_loss.build(session, self.generator.image_in, texture_weight)
                if tv > 0:
                    print("tv loss %d" % tv)
                    with tf.name_scope('tv_loss'):
                        batches, h, w, c = self.generator.out.get_shape().as_list()
                        x = self.generator.out[:,1:,:,:]
                        x_1 = self.generator.out[:,:(h-1),:,:]
                        y = self.generator.out[:,:,1:,:]
                        y_1 = self.generator.out[:,:,:w-1,:]
                        x_var = tf.nn.l2_loss(x - x_1)
                        y_var = tf.nn.l2_loss(y - y_1)
                        x_n = batches * (h-1) * w * c
                        y_n = batches * h * (w-1) * c
                        tv_loss = tv * (x_var/x_n + y_var/y_n)
                    self.loss = self.loss + tv_loss

            loss_summary_name = "loss"
            self.summary = tf.scalar_summary(loss_summary_name, self.loss)
            image_summary_name = "out"
            self.image_summary = tf.image_summary(image_summary_name, self.generator.out + utils.MEAN_VALUES, max_images=3)
            input_summary_name = "in"
            self.input_summary = tf.image_summary(input_summary_name, self.image + utils.MEAN_VALUES, max_images=3)

            self.merged = tf.merge_all_summaries()

            self.global_step = tf.Variable(0, name='global_step', trainable=False)

            return self.loss
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号