CV之NS之LF:圖像風格遷移中常用的幾種損失函數(內容損失、風格損失)簡介、使用方法之詳細攻略

      網友投稿 1678 2025-03-31

      CV之NS之LF:圖像風格遷移中常用的幾種損失函數(內容損失、風格損失)簡介、使用方法之詳細攻略

      目錄

      圖像風格遷移中常用的幾種損失函數

      1、內容損失

      2、風格損失

      3、定義總損失

      圖像風格遷移中常用的幾種損失函數

      1、內容損失

      # endpoints_dict是上一節提到的損失網絡各層的計算結果;content_layers是定義使用哪些層的差距計算損失,默認配置是conv3_3

      def content_loss(endpoints_dict, content_layers):

      content_loss = 0

      for layer in content_layers:

      #上一節中把生成的圖像、原始圖像同時傳入損失網絡中計算。所以這里先把他們區分開

      #我們可以參照函數tf.concat與tf.split的文檔理解此處的內容

      generated_images, content_images = tf.split(endpoints_dict[layer], 2, 0)

      size = tf.size(generated_images)

      # 所謂的內容損失,是生成圖片generated_images與原始圖片激活content_images的L*L距離

      content_loss += tf.nn.l2_loss(generated_images - content_images) * 2 / tf.to_float(size) # remain the same as in the paper

      return content_loss

      2、風格損失

      # 定義風格損失,style_layers為定義使用哪些層計算風格損失。默認為conv1_2、conv2_2、conv3_3、conv4_3

      # style_features_t是利用原始的風格圖片計算的層的激活。如在wave模型中是img/wave.jpg計算的激活

      def style_loss(endpoints_dict, style_features_t, style_layers):

      style_loss = 0

      # summary是為TensorBoard服務的

      style_loss_summary = {}

      for style_gram, layer in zip(style_features_t, style_layers):

      # 計算風格損失,只需要計算生成圖片generated_imgs與目標風格style_features_t的差距。因此不需要取出content_images

      generated_images, _ = tf.split(endpoints_dict[layer], 2, 0)

      size = tf.size(generated_images)

      # 調用gram函數計算Gram矩陣。風格損失定義為生成圖片與目標風格Gram矩陣的L*L的Loss

      layer_style_loss = tf.nn.l2_loss(gram(generated_images) - style_gram) * 2 / tf.to_float(size)

      style_loss_summary[layer] = layer_style_loss

      style_loss += layer_style_loss

      return style_loss, style_loss_summary

      3、定義總損失

      """Build Losses"""

      CV之NS之LF:圖像風格遷移中常用的幾種損失函數(內容損失、風格損失)簡介、使用方法之詳細攻略

      # 定義內容損失

      content_loss = losses.content_loss(endpoints_dict, FLAGS.content_layers)

      # 定義風格損失

      style_loss, style_loss_summary = losses.style_loss(endpoints_dict, style_features_t, FLAGS.style_layers)

      # 定義tv損失,該損失在實際訓練中并沒有被用到,因為在訓練時都采用tv_weight=0

      tv_loss = losses.total_variation_loss(generated) # use the unprocessed image

      # 總損失是這些損失的加權和,最后利用總損失優化圖像生成網絡即可

      loss = FLAGS.style_weight * style_loss + FLAGS.content_weight * content_loss + FLAGS.tv_weight * tv_loss

      機器學習

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel中打身份證號教程
      下一篇:wps數據收集器如何使用
      相關文章
      亚洲七久久之综合七久久| 相泽南亚洲一区二区在线播放| 爱爱帝国亚洲一区二区三区| 亚洲成年网站在线观看| 亚洲视频在线观看视频| 久久久久亚洲AV无码麻豆| 亚洲国产第一站精品蜜芽| 国产成人麻豆亚洲综合无码精品| 亚洲伊人成无码综合网| 久久久久亚洲?V成人无码| 亚洲中文字幕久久精品无码APP | 亚洲国产精品一区二区九九 | 亚洲乱亚洲乱妇24p| 亚洲欧洲无码AV不卡在线| 亚洲s码欧洲m码吹潮| 亚洲AV成人无码久久WWW| 亚洲另类无码专区首页| 亚洲国产成人精品无码区二本 | 亚洲综合婷婷久久| 亚洲综合激情视频| 亚洲免费电影网站| 亚洲人成未满十八禁网站| 亚洲欧美日韩一区二区三区在线| 亚洲风情亚Aⅴ在线发布| 亚洲av无码偷拍在线观看| 精品久久亚洲一级α| 亚洲精品tv久久久久| 国产亚洲色婷婷久久99精品91| 国产AV无码专区亚洲AV手机麻豆 | 亚洲熟女www一区二区三区| 亚洲AV无码男人的天堂| 亚洲人成网站观看在线播放| 亚洲午夜福利717| 亚洲国产精品lv| 亚洲午夜一区二区电影院| 亚洲国产一区二区三区在线观看| 在线观看亚洲电影| 亚洲人成网站在线播放vr| 久久亚洲私人国产精品| 亚洲人成网站看在线播放| 亚洲国产精品久久久久秋霞小|