TensorFlow:簡單的卷積層、池化層(採樣層)樣本

來源:互聯網
上載者:User

卷積層:

ws=tf.get_variable('w',[5,5,3,16],initializer=tf.truncated_normal_initializer(stddev=0.1))bs=tf.get_variable('b',[16],initializer=tf.constant_initializer(0.1))conv=tf.nn.conv2d(input,ws,strides=[1,1,1,1],padding='SAME')b=tf.nn.bias_add(conv,bs)now_conv=tfnn.relu(b)
tf.get_variable函數有四個參數,第一維為名字,第二維為變數維度(前兩維為卷積核尺寸,第三維為層的深度,第四維為卷積核深度),第三維是變數的初始化方法,主要有以下幾種:

tf.constant_initializer:常量初始化函數
tf.random_normal_initializer:常態分佈
tf.truncated_normal_initializer:截取的常態分佈
tf.random_uniform_initializer:均勻分布
tf.zeros_initializer:全部是0
tf.ones_initializer:全是1
tf.uniform_unit_scaling_initializer:滿足均勻分布,但不影響輸出數量級的隨機值

tf.nn.conv2d函數有四個參數,第一維為輸入映像,第二維為卷積層權值,第三維為不同維度步長(在CNN中,第一維、第四維固定為1),第四維填充方式(SAME表示全0填充,VALID為不填充)。

層的深度:例如一個輸入映像是28*28*3,其中3代表深度,即為(R,G,B)

卷積核的深度:我的理解就是卷積核的個數(不知道對不對)


當然,我們有更簡單的方法實現一個卷積層,代碼如下:

now_conv=slim.conv2d(input,16,[3,3])
slim.conv2d函數有三個必填參數,第一維為輸入映像,第二維為卷積核的深度,第三維為卷積核的尺寸。


池化層(採樣層):

p=tf.nn.max_pool(now_conv,ksize=[1,3,3,1],strides=[1,2,2,1],padding='SAME']
TensorFlow提供兩種池化函數,分別是max_pool和avg_pool,前者為最大值池化,後者為均值池化。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.