gpt4 book ai didi

python - 使用 "tf.nn.avg_pool"在 tensorflow 中最大池化单个图像

转载 作者:行者123 更新时间:2023-12-01 07:00:55 24 4
gpt4 key购买 nike

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

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)

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

感谢任何帮助。

最佳答案

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

通常,SAME pad的输出尺寸计算公式为:

out_size = ceil(in_sizei/stride)

有效的pad是:

out_size = ceil(in_size-filter_size+1/stride)

关于python - 使用 "tf.nn.avg_pool"在 tensorflow 中最大池化单个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com