【TensorFlow】tf.nn.max_pool实现池化操作
2017-04-19 18:34
615 查看
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。
原生接口文章
【Tensorflow】tf.placeholder函数
【TensorFlow】tf.nn.conv2d是怎样实现卷积的
【TensorFlow】tf.nn.max_pool实现池化操作
【Tensorflow】tf.nn.relu函数
【Tensorflow】tf.reshape
函数
【Tensorflow】tf.nn.dropout函数
【Tensorflow】tf.argmax函数
【Tensorflow】tf.cast
类型转换 函数
【Tensorflow】tf.train.AdamOptimizer函数
【Tensorflow】tf.Graph()函数
【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
【Tensorflow】tf.dynamic_partition
函数 分拆数组
原生接口实例
【Tensorflow】实现简单的卷积神经网络CNN实际代码
【Tensorflow
实战】实现欧式距离
slim接口文章
【Tensorflow】tensorflow.contrib.slim
包
【Tensorflow
slim】 slim.arg_scope的用法
【Tensorflow
slim】slim.data包
【Tensorflow
slim】slim evaluation 函数
【Tensorflow
slim】slim layers包
【Tensorflow
slim】slim learning包
【Tensorflow
slim】slim losses包
【Tensorflow
slim】slim nets包
【Tensorflow
slim】slim variables包
【Tensorflow
slim】slim metrics包
slim
实例
【Tensorflow
slim 实战】写MobileNet
【Tensorflow
slim 实战】写Inception-V4 Inception-ResNet-v2结构
kera
接口文章
【Tensorflow
keras】Keras:基于Theano和TensorFlow的深度学习库
【Tensorflow
keras】轻量级深度学习框架 Keras简介
tensorflow使用过程中的辅助接口或通过tensorflow实现的批量操作接口
将非RGB图片转换为RGB图片
【opencv】python3
将图片生成视频文件
【opencv】selective_search函数
=========================================================================
原文地址:http://blog.csdn.net/mao_xiao_feng/article/details/53453926
max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似
有些地方可以从卷积去参考【TensorFlow】tf.nn.conv2d是怎样实现卷积的?
参数是四个,和卷积很类似:
第一个参数value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是
第二个参数ksize:池化窗口的大小,取一个四维向量,一般是
第三个参数strides:和卷积类似,窗口在每一个维度上滑动的步长,一般也是
第四个参数padding:和卷积类似,可以取'VALID' 或者'SAME'
返回一个Tensor,类型不变,shape仍然是
示例源码:
假设有这样一张图,双通道
第一个通道:
第二个通道:
用程序去做最大值池化:
[python] view
plain copy
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)
这里步长为1,窗口大小2×2,输出结果:
[python] view
plain copy
image:
[[[[ 1. 2.]
[ 3. 4.]
[ 5. 6.]
[ 7. 8.]]
[[ 8. 7.]
[ 6. 5.]
[ 4. 3.]
[ 2. 1.]]
[[ 4. 3.]
[ 2. 1.]
[ 8. 7.]
[ 6. 5.]]
[[ 1. 2.]
[ 3. 4.]
[ 5. 6.]
[ 7. 8.]]]]
reslut:
[[[[ 8. 7.]
[ 6. 6.]
[ 7. 8.]]
[[ 8. 7.]
[ 8. 7.]
[ 8. 7.]]
[[ 4. 4.]
[ 8. 7.]
[ 8. 8.]]]]
池化后的图就是:
证明了程序的结果是正确的。
我们还可以改变步长
[python] view
plain copy
pooling=tf.nn.max_pool(a,[1,2,2,1],[1,2,2,1],padding='VALID')
最后的result就变成:
[python] view
plain copy
reslut:
[[[[ 8. 7.]
[ 7. 8.]]
[[ 4. 4.]
[ 8. 8.]]]]
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。
原生接口文章
【Tensorflow】tf.placeholder函数
【TensorFlow】tf.nn.conv2d是怎样实现卷积的
【TensorFlow】tf.nn.max_pool实现池化操作
【Tensorflow】tf.nn.relu函数
【Tensorflow】tf.reshape
函数
【Tensorflow】tf.nn.dropout函数
【Tensorflow】tf.argmax函数
【Tensorflow】tf.cast
类型转换 函数
【Tensorflow】tf.train.AdamOptimizer函数
【Tensorflow】tf.Graph()函数
【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
【Tensorflow】tf.dynamic_partition
函数 分拆数组
原生接口实例
【Tensorflow】实现简单的卷积神经网络CNN实际代码
【Tensorflow
实战】实现欧式距离
slim接口文章
【Tensorflow】tensorflow.contrib.slim
包
【Tensorflow
slim】 slim.arg_scope的用法
【Tensorflow
slim】slim.data包
【Tensorflow
slim】slim evaluation 函数
【Tensorflow
slim】slim layers包
【Tensorflow
slim】slim learning包
【Tensorflow
slim】slim losses包
【Tensorflow
slim】slim nets包
【Tensorflow
slim】slim variables包
【Tensorflow
slim】slim metrics包
slim
实例
【Tensorflow
slim 实战】写MobileNet
【Tensorflow
slim 实战】写Inception-V4 Inception-ResNet-v2结构
kera
接口文章
【Tensorflow
keras】Keras:基于Theano和TensorFlow的深度学习库
【Tensorflow
keras】轻量级深度学习框架 Keras简介
tensorflow使用过程中的辅助接口或通过tensorflow实现的批量操作接口
将非RGB图片转换为RGB图片
【opencv】python3
将图片生成视频文件
【opencv】selective_search函数
=========================================================================
原文地址:http://blog.csdn.net/mao_xiao_feng/article/details/53453926
max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似
有些地方可以从卷积去参考【TensorFlow】tf.nn.conv2d是怎样实现卷积的?
tf.nn.max_pool(value, ksize, strides, padding, name=None)
参数是四个,和卷积很类似:第一个参数value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是
[batch, height, width, channels]这样的shape
第二个参数ksize:池化窗口的大小,取一个四维向量,一般是
[1, height, width, 1],因为我们不想在batch和上做池化,所以这两个维度设为了1channels
第三个参数strides:和卷积类似,窗口在每一个维度上滑动的步长,一般也是
[1, stride,stride, 1]
第四个参数padding:和卷积类似,可以取'VALID' 或者'SAME'
返回一个Tensor,类型不变,shape仍然是
[batch, height, width, channels]这种形式
示例源码:
假设有这样一张图,双通道
第一个通道:
第二个通道:
用程序去做最大值池化:
[python] view
plain copy
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)
这里步长为1,窗口大小2×2,输出结果:
[python] view
plain copy
image:
[[[[ 1. 2.]
[ 3. 4.]
[ 5. 6.]
[ 7. 8.]]
[[ 8. 7.]
[ 6. 5.]
[ 4. 3.]
[ 2. 1.]]
[[ 4. 3.]
[ 2. 1.]
[ 8. 7.]
[ 6. 5.]]
[[ 1. 2.]
[ 3. 4.]
[ 5. 6.]
[ 7. 8.]]]]
reslut:
[[[[ 8. 7.]
[ 6. 6.]
[ 7. 8.]]
[[ 8. 7.]
[ 8. 7.]
[ 8. 7.]]
[[ 4. 4.]
[ 8. 7.]
[ 8. 8.]]]]
池化后的图就是:
证明了程序的结果是正确的。
我们还可以改变步长
[python] view
plain copy
pooling=tf.nn.max_pool(a,[1,2,2,1],[1,2,2,1],padding='VALID')
最后的result就变成:
[python] view
plain copy
reslut:
[[[[ 8. 7.]
[ 7. 8.]]
[[ 4. 4.]
[ 8. 8.]]]]
相关文章推荐
- TensorFlow--tf.nn.max_pool实现池化操作
- TensorFlow:tf.nn.max_pool实现池化操作(转载)
- 【TensorFlow】tf.nn.max_pool实现池化操作
- TensorFlow 用 tf.nn.max_pool 实现最大池化操作
- 【TensorFlow】tf.nn.max_pool实现池化操作
- tf.nn.max_pool实现池化操作
- TensorFlow学习笔记(四):tf.nn.max_pool如何实现池化操作?
- tensorflow 池化操作实例 tf.nn.max_pooling
- TensorFlow实例(5.3)--MNIST手写数字进阶算法(卷积神经网络CNN) 之 最大池化tf.nn.max_pool
- 池化操作 tensorflow tf.nn.max_pool
- TensorFlow - tf.nn.max_pool实现池化操作
- Tensorflow(r1.4)API--tf.nn.max_pool
- 第一阶段-入门详细图文讲解tensorflow1.4 API-tf.nn.max_pool
- TensorFlow学习---tf.nn.conv2d实现卷积操作
- TF-池化函数 tf.nn.max_pool 的介绍
- tf.nn.pool()使用例子:TensorFlow对一维数据进行池化
- 【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?
- tf.nn.max_pool 实例
- tf.nn.max_pool
- 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?