C語言中文網 目錄
TensorFlow
1 TensorFlow是什么
2 TensorFlow安裝和下載
3 第一個TensorFlow程序
4 TensorFlow程序結構
5 TensorFlow常量、變量和占位符
6 TensorFlow矩陣基本操作
7 TensorFlow TensorBoard數據流圖可視化
8 TensorFlow代碼自動升級為1.0版本
9 TensorFlow XLA
10 TensorFlow指定CPU和GPU設備
11 TensorFlow與深度學習
12 TensorFlow常用Python擴展包
13 回歸算法有哪些
14 TensorFlow損失函數
15 TensorFlow優化器
16 TensorFlow csv文件讀取數據
17 TensorFlow實現簡單線性回歸
18 TensorFlow實現多元線性回歸
19 TensorFlow邏輯回歸處理MNIST數據集
20 感知機與神經網絡
21 TensorFlow常用激活函數(6種)
22 TensorFlow實現單層感知機
23 TensorFlow實現反向傳播算法
24 TensorFlow多層感知機實現MINIST分類
25 TensorFlow多層感知機函數逼近
26 TensorFlow超參數
27 TensorFlow Keras
28 CNN卷積神經網絡
29 三維卷積神經網絡預測MNIST數字
30 卷積神經網絡分類圖片
31 遷移學習
32 DeepDream網絡
33 TensorFlow實現文本情感分析
34 VGG網絡濾波器
35 VGGNet、ResNet、Inception和Xception
36 預建深度學習提取特征及實現
37 TensorFlow實現InceptionV3
38 TensorFlow WaveNet聲音合成
39 TensorFlow視頻分類(6種方法)
40 RNN循環神經網絡
41 神經機器翻譯(seq2seq RNN)
42 注意力機制(基于seq2seq RNN)
43 RNN訓練模型并生成文本
44 RNN循環神經網絡實現預測比特幣價格
45 主成分分析法(PCA)
46 k均值聚類算法
47 SOM自組織映射法
48 受限玻爾茲曼機訓練
49 推薦系統的實現(基于RBM)
50 基于DBN實現情緒檢測
51 自編碼器
52 標準自編碼器
53 稀疏自編碼器
54 去燥自編碼器
55 卷積自編碼器
56 堆疊自編碼器
57 強化學習
58 OpenAI Gym安裝和使用
59 全連接神經網絡實現玩Pac-Man游戲
60 Q learning實現Cart-Pole平衡游戲
61 DQN算法(深度Q網絡)
62 David Silver策略梯度算法
63 深度學習在移動端的應用
64 Android移動端部署TensorFlow mobile
65 iPhone移動端部署TensorFlow mobile
66 移動端優化TensorFlow代碼
67 GAN生成式對抗網絡
68 GAN生成式對抗網絡虛構MNIST圖像
69 DCGAN虛構MNIST圖像
70 DCGAN虛構名人面孔和其他數據集
71 VAE變分自編碼器
72 CapsNet膠囊網絡
73 TensorFlow分布式
74 TensorFlow GPU的安裝和使用
75 TensorFlow分布式
76 TensorFlow分布式訓練MNIST分類器
77 TensorFlow Serving運行Docker容器
78 TensorFlow分布式在谷歌云平臺運行
79 TensorFlow分布式在谷歌CloudML運行
80 TensorFlow分布式在Microsoft Azure上運行
81 TensorFlow分布式在Amazon AWS上運行
首頁 > TensorFlow 閱讀:194

卷積自編碼器(TensorFlow實現)

< 上一頁去燥自編碼器 堆疊自編碼器下一頁 >

研究人員發現,卷積神經網絡(CNN)之所以在處理圖像上有優勢,是因為可以提取隱藏在圖像中的空間信息,因此很自然地想到如果可以使用 CNN 構造編碼器和解碼器網絡,會比其他自動編碼機工作得更好,因此產生了卷積自編碼器(CAE)。

前面章節中已經解釋了卷積和最大池化的概念,本節將以此為基礎來理解卷積自編碼器是如何工作的。

CAE 的編碼器和解碼器都是 CNN 網絡,編碼器的卷積網絡學習將輸入編碼為一組信號,然后解碼器 CNN 嘗試重構來自自動編碼機的輸入。其中 CNN 作為通用特征提取器進行工作,學習如何最好地捕捉輸入特征。

通過前面的學習我們知道,隨著卷積層的添加,傳遞到下一層的空間尺寸信息在減小,但是在自編碼器中,重構圖像的大小和深度應與輸入圖片相同,這意味著解碼器應該以某種方式調整圖像大小和卷積來重構原始圖像。

轉置卷積層能夠增加空間尺寸和卷積,在 TensorFlow 中通過 tf.nn.conv2d_transpose 即可實現,但是轉置卷積層會導致最終圖像中出現偽影。Augustus Odena 等人表明使用最近鄰或雙線性插值(上采樣)緊跟著一個卷積層的方式可以避免這些偽影,他們采用最近鄰差值(tf.image.resize_images)實現,最終取得了非常好的結果,在這里將使用相同的方法。

具體做法

  1. 導入必要的模塊:


     
  2. 加載輸入數據:


     
  3. 定義網絡參數,同時也計算每個最大池化層的輸出空間維度,這些信息在解碼器網絡中對圖像進行上采樣:


     
  4. 為輸入(噪聲圖像)和目標(對應的清晰圖像)創建占位符:


     
  5. 建立編碼器和解碼器網絡:


     
  6. 建立會話:


     
  7. 根據給定輸入調整模型:


     
  8. 網絡學習誤差如下:


     
    效果圖如下:

  9. 圖像重構:


     
    下圖是前面代碼的輸出:

  10. 關閉會話:

解讀分析

這是一個去噪 CAE,可以看到,與僅由一個隱藏層組成的簡單去噪自編碼器相比,去噪 CAE 對圖像去噪效果更好。

拓展閱讀

CAE 也被研究人員用于語義分割,可以參考一篇有趣的文章“Segnet:a Deep Convolutional Encoder-Decoder Architecture for Image Segmentation”(Badrinayanan等人,2015),該網絡使用 VGG16 的卷積層作為編碼器網絡,并且包含相應的解碼器結構,每個編碼器對應一個解碼器網絡。解碼器對從對應編碼器接收到的最大池化輸入特征映射進行了非線性上采樣。
< 上一頁去燥自編碼器 堆疊自編碼器下一頁 >

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo