日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

TensorFlow学习笔记之五(卷积神经网络)

發布時間:2024/9/30 卷积神经网络 147 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow学习笔记之五(卷积神经网络) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 1. 圖片識別問題簡介以及經典數據集
        • 1.1 圖片識別問題簡介
        • 1.2 經典數據集
      • 1. 單通道圖片求卷積
        • 1.1 基本的圖片求卷積
        • 1.2 填充的圖片求卷積
        • 1.3 TensorFlow計算卷積
      • 2. 三通道圖片求卷積
      • 3. 池化層
      • 4. 小結
        • 4.1 輸入圖片為正方形,卷積核為正方形,單卷積核,單通道
        • 4.2 輸入圖片為正方形,卷積核為正方形,單卷積核,三通道
        • 4.3 輸入圖片為正方形,卷積核為正方形,多卷積核,多通道
      • 5.

1. 圖片識別問題簡介以及經典數據集

1.1 圖片識別問題簡介

視覺是人類認識世界非常重要的一種知覺。對于人來說,通過視覺來識別手寫體數字、識別圖片中的物體或者找出圖片中人臉的輪廓都是非常簡單的任務。但是這對于計算機來說不是一件簡單的事情。

圖片識別問題希望借助計算機中的程序來處理、分析和理解圖片中的內容,使得計算機可以從圖片中識別各種不同模式的目標和對象。比如前面的MNIST聯系就是通過計算機來識別圖片中的手寫體數字。

1.2 經典數據集

MNIST數據集:TensorFlow入門數據集

CIFAR :CIFAR數據集是一個影響力很大的圖像分類數據集。分為CIFAR-10和CIFAR-100兩個問題,它們都是圖像字典項目(Visual Dictionary)中800萬張圖片中的一個子集。CIFAR數據集中的圖片是32*32的彩色圖片。

ImageNet:
無論是MNIST還是CIFAR數據集,相比真實環境有兩個最大的問題:

  • 現實生活中的圖片分辨率要遠高于32*32,而且圖像的分辨率也不會是固定的。
  • 現實生活中的物體類別很多,無論是10中還是100種都遠遠不夠,而且一張圖片中不會只出現一個種類的物體。
  • 為了更加貼近真實環境下的圖像識別問題,由斯坦福大學的李飛飛教授帶頭整理的ImageNet很大程度地解決了這兩個問題。

    ImageNet是一個基于WordNet的大型圖像數據庫。

    目標:抽取一個32323的圖片的特征,再將提取的特征喂入到全連接網絡。

    • 卷積可以認為是一種有效提取圖像特征的方法。
    • 一般會用一個正方形的卷積核,遍歷圖片上的每個像素點。圖片內的每個像素點,乘以卷積核上相對應的點的權重,求和,在加上偏置。

    1. 單通道圖片求卷積

    1.1 基本的圖片求卷積

    現在對于一個551的圖片,用一個331的卷積核求卷積。

    如圖所示,計算機會將一張551圖片轉換為一個55的矩陣,矩陣中的每個值代表其像素點的灰度。現在用一個33的矩陣對其求卷積。
    每次求卷積的過程為拿著卷積核在原始圖片舉證上求卷積。如圖中所示,就是
    1?(?1)+0?0+2?1+5?1+4?0+2?1+3?(?1)+4?0+5?1+1=11*(-1)+0*0+2*1+5*1+4*0+2*1+3*(-1)+4*0+5*1+1=1 1?(?1)+0?0+2?1+5?1+4?0+2?1+3?(?1)+4?0+5?1+1=1
    其總體大概過程如圖
    圖片來源于

    可以看我們是拿卷積核在原始圖片上“滑動”求卷積。
    在這里,影響輸出矩陣的規格的因素有,原始圖片大小,卷積核大小,滑動的步長。

    一張圖片經過一次卷積操作輸出的邊長 = ( 輸入圖片的邊長 - 卷積核 + 1 ) /步長(向上取整)

    比如上圖中,輸出邊長 = ( 5 - 3 +1 ) / 1 = 3

    1.2 填充的圖片求卷積

    有時候,需要在圖片的周圍進行填充(有全零填充和其他填充),如下圖所示:

    那么輸出的邊長就等于 = 輸入長度 / 步長 = 5 / 1 = 5(向上取整)
    在TensorFlow中,用參數padding = ‘SAME’(填充) 或者 padding = ‘VALID’(未填充) 表示

    總的來說,卷積是講一個矩陣進行信息提取(特征抽取)的作用。參數為卷積核參數3 * 3 = 9個

    1.3 TensorFlow計算卷積

    tf.nn.conv2d(
    輸入描述: 一次喂入圖片數, 圖片分辨率(兩位),通道數
    輸出描述: 卷積核分辨率(兩位), 通道數,核的個數
    核滑動步長,第一個和第四個固定為1。第二三個分別為行步長和列步長。
    pading = ‘VALID’
    )

    # eg tf.nn.conv2d([batch, 5, 5, 1],[3, 3, 1, 16],[1, 1, 1, 1],padding = 'VALID' )

    2. 三通道圖片求卷積

    在一般情況下,我們遇到的圖片都是彩色圖片。在計算機中,他們都是三通道圖片(三基色原理,RGB紅綠藍)。
    所以我們的圖片矩陣變成了5 * 5 * 3。此時我們的卷積核變成了3 * 3 * 3 。

    # eg tf.nn.conv2d([batch, 5, 5, 3],[3, 3, 3, 16],[1, 1, 1, 1],padding = 'SAME' )

    3. 池化層

    池化的作用:

    • 減少特征的數量
    • 最大值池化可以提取圖片紋理,均值池化可保留背景特征

    4. 小結

    從計算的角度來看:卷積操作就是矩陣操作。

    4.1 輸入圖片為正方形,卷積核為正方形,單卷積核,單通道

    不填充
    輸出的矩陣邊長=輸入邊長?卷積核邊長+1步長輸出的矩陣邊長 =\frac{輸入邊長 - 卷積核邊長 + 1}{步長} =?+1?

    填充
    輸出的矩陣邊長=輸入邊長步長輸出的矩陣邊長 =\frac{輸入邊長 }{步長} =?
    在這里有個疑惑,比如卷積核邊長為三,填充一層,也就是輸入邊長+2。輸出邊長滿足上述兩個公式。
    假如卷積核邊長為5。那么是填充一層還是兩層?

    4.2 輸入圖片為正方形,卷積核為正方形,單卷積核,三通道

    邊長與單通道類似

    輸出通道數可以為1,每個對應的通道數相乘后相加。
    可以為3,每個對應的通道數相乘后,相互獨立。
    也可以為9,輸入的每個通道數與卷積核的通道數相乘,再相加。

    4.3 輸入圖片為正方形,卷積核為正方形,多卷積核,多通道

    邊長與單通道類似

    輸出通道數
    = 卷積核個數,每個對應的通道數相乘后相加。
    = 卷積核個數3, 每個對應的通道數相乘后,相互獨立。
    = 卷積核個數9,輸入的每個通道數與卷積核的通道數相乘,再相加。

    5.

    總結

    以上是生活随笔為你收集整理的TensorFlow学习笔记之五(卷积神经网络)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。