Tensotflow1.0入门(五)-tensorflow的池化函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011311291/article/details/89003525

Tensotflow1.0入门(一)-tensorflow的设计理念和基本概念
Tensotflow1.0入门(二)-tensorflow的各种操作
Tensotflow1.0入门(三)-tensorflow的小例子
Tensotflow1.0入门(四)-tensorflow的卷积函数
Tensotflow1.0入门(五)-tensorflow的池化函数
Tensotflow1.0入门(六)-tensorflow的激活函数

池化函数的定义在tensorflow/python/ops/nn.py和gen_nn_ops.py(编译tensorflow后生成)中,但其实这个nn.py是由很多别的文件中的类和方法组成的

#池化函数
tf.nn.avg_pool(value, ksize, strides, padding, data_format, name)
tf.nn.max_pool(value, ksize, strides, padding, data_format, name)
tf.nn.max_pool_with_argmax(input, ksize, strides, padding, Targmax, name)
tf.nn.avg_pool3d(input, ksize, strides, padding, name)
tf.nn.max_pool3d(input, ksize, strides, padding, name)
tf.nn.fractional_avg_pool(value, pooling_ratio, pseudo_random, overlapping, deterministic, seed, seed2, name)
tf.nn.fractional_max_pool(value, pooling_ratio, pseudo_random, overlapping, deterministic, seed, seed2, name)
tf.nn.pool(input, window_shape, pooling_type, padding, dilation_rate, strides, name, data_format)

#参数
value: 4维张量,数据维度[batch,height,width,channels]
ksize: 长度大于等于4的整形数组,每一位对应value中每一维
strides: 长度大于等于4的整形数组,步长
padding: 字符串,字符串,“SAME”|“VALID”,SAME输入数据维度和输出维度相同
data_format: ‘NHWC’,N个数,H为高度,W为宽度,C为通道数
name: 操作名

例子:

import tensorflow as tf
import numpy as np

# (batch_size,w,h,channels_last)=(32,9,9,3)
input_data = tf.Variable(np.random.rand(32,9,9,3),dtype=np.float32)
# (w,h,channels_last,filter_nums)=(32,9,9,3)
filter_data = tf.Variable(np.random.rand(2,2,3,5),dtype=np.float32)
y = tf.nn.conv2d(input_data, filter_data, strides=[1,1,1,1], padding="SAME")
out_put = tf.nn.avg_pool(y, ksize=[1,2,2,1], strides=[1,1,1,1], padding="SAME")
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
print(sess.run(y).shape)
print(sess.run(out_put).shape)
# (32, 9, 9, 5)
# (32, 9, 9, 5)

参考:《TensorFlow 技术解析与实战》

猜你喜欢

转载自blog.csdn.net/u011311291/article/details/89003525
今日推荐