新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
TensorFlowtf.nn.max_pool實現(xiàn)池化操作方式-創(chuàng)新互聯(lián)
max pooling是CNN當中的大值池化操作,其實用法和卷積很類似
有些地方可以從卷積去參考【TensorFlow】 tf.nn.conv2d實現(xiàn)卷積的方式
tf.nn.max_pool(value, ksize, strides, padding, name=None)
參數(shù)是四個,和卷積很類似:
第一個參數(shù)value:需要池化的輸入,一般池化層接在卷積層后面,所以輸入通常是feature map,依然是[batch, height, width, channels]這樣的shape
第二個參數(shù)ksize:池化窗口的大小,取一個四維向量,一般是[1, height, width, 1],因為我們不想在batch和channels上做池化,所以這兩個維度設為了1
第三個參數(shù)strides:和卷積類似,窗口在每一個維度上滑動的步長,一般也是[1, stride,stride, 1]
第四個參數(shù)padding:和卷積類似,可以取'VALID' 或者'SAME'
返回一個Tensor,類型不變,shape仍然是[batch, height, width, channels]這種形式
示例源碼:
假設有這樣一張圖,雙通道
第一個通道:
第二個通道:
用程序去做大值池化:
import tensorflow as tf a=tf.constant([ [[1.0,2.0,3.0,4.0], [5.0,6.0,7.0,8.0], [8.0,7.0,6.0,5.0], [4.0,3.0,2.0,1.0]], [[4.0,3.0,2.0,1.0], [8.0,7.0,6.0,5.0], [1.0,2.0,3.0,4.0], [5.0,6.0,7.0,8.0]] ]) a=tf.reshape(a,[1,4,4,2]) pooling=tf.nn.max_pool(a,[1,2,2,1],[1,1,1,1],padding='VALID') with tf.Session() as sess: print("image:") image=sess.run(a) print (image) print("reslut:") result=sess.run(pooling) print (result)
文章名稱:TensorFlowtf.nn.max_pool實現(xiàn)池化操作方式-創(chuàng)新互聯(lián)
本文路徑:http://www.dlmjj.cn/article/coheed.html