首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用"tf.nn.avg_pool“最大池化tensorflow中的单个图像

使用"tf.nn.avg_pool“最大池化tensorflow中的单个图像
EN

Stack Overflow用户
提问于 2019-10-31 04:43:24
回答 1查看 503关注 0票数 2

我想在单个图像上应用"tf.nn.max_pool()“,但我得到的结果与输入的尺寸完全不同:

代码语言:javascript
运行
复制
import tensorflow as tf
import numpy as np

ifmaps_1 = tf.Variable(tf.random_uniform( shape=[ 7, 7, 3], minval=0, maxval=3, dtype=tf.int32))

ifmaps=tf.dtypes.cast(ifmaps_1, dtype=tf.float64)

ofmaps_tf = tf.nn.max_pool([ifmaps], ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding="SAME")[0] # no padding

init = tf.initialize_all_variables()
with tf.Session() as sess:
    sess.run(init)
    print("ifmaps_tf = ")
    print(ifmaps.eval())
    print("ofmaps_tf = ")
    result = sess.run(ofmaps_tf)
    print(result)

我认为这与尝试将池化应用于单个示例而不是批处理有关。我需要在单个示例上进行池化。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 05:47:11

您的输入是(7,7,3),内核大小是(3,3),stride是(2,2)。因此,如果您不需要任何填充,(在您的注释中声明),您应该使用padding="VALID",它将返回一个(3,3)张量作为输出。如果您使用padding="SAME",它将返回(4,4)张量。

通常,计算相同焊盘的输出尺寸的公式为:

代码语言:javascript
运行
复制
out_size = ceil(in_sizei/stride)

有效焊盘为:

代码语言:javascript
运行
复制
out_size = ceil(in_size-filter_size+1/stride)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58633364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档