TensorFlow:简单的卷积层、池化层(采样层)示例
生活随笔
收集整理的這篇文章主要介紹了
TensorFlow:简单的卷积层、池化层(采样层)示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
卷積層:
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,前者為最大值池化,后者為均值池化。
總結
以上是生活随笔為你收集整理的TensorFlow:简单的卷积层、池化层(采样层)示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滴滴笔试编程题第一题
- 下一篇: 使用VMware进行基于Ubuntu16