当前位置: 首页 > 面试题库 >

张量流的tf.nn.max_pool中的'SAME'和'VALID'填充有什么区别?

卢深
2023-03-14
问题内容

什么是“相同”和“有效”填充之间的区别tf.nn.max_pooltensorflow

在我看来,“有效”表示在进行最大池化时,边缘外部不会出现零填充。

根据深度学习卷积算法指南,它说池运算符中将不会有填充,即仅使用的“
VALID” tensorflow。但是最大池的“相同”填充是tensorflow什么?


问题答案:

我将举一个例子使其更清楚:

  • x:输入形状为[2,3],1通道的图像
  • valid_pad:具有2x2内核,步幅2和有效填充的最大池。
  • same_pad:具有2x2内核,跨度2和相同填充的最大池(这是 经典的处理 方式)

输出形状为:

  • valid_pad:此处没有填充,因此输出形状为[1,1]
  • same_pad:在这里,我们将图像填充为[2,4]形状(使用-inf,然后应用最大池),因此输出形状为[1、2]
x = tf.constant([[1., 2., 3.],
                 [4., 5., 6.]])

x = tf.reshape(x, [1, 2, 3, 1])  # give a shape accepted by tf.nn.max_pool

valid_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='VALID')
same_pad = tf.nn.max_pool(x, [1, 2, 2, 1], [1, 2, 2, 1], padding='SAME')

valid_pad.get_shape() == [1, 1, 1, 1]  # valid_pad is [5.]
same_pad.get_shape() == [1, 1, 2, 1]   # same_pad is  [5., 6.]


 类似资料:
  • 问题内容: 在文档的某些部分(例如, 此处)中有对的引用。它们究竟是什么?它们在图中起什么作用? 要澄清的是,在数据集文档中,有一个示例可以使用,因为它是无状态的: 是什么使迭代器无状态? 问题答案: 正如其他人提到的那样,有状态对象是持有状态的对象。 现在,以TensorFlow术语来说,状态是一些值或数据,该值或数据保存在对的不同调用之间。最常见和最基本的状态对象是变量。您可以调用一次以更新模

  • 我试图填充LSTM迷你批处理的张量序列,序列中的每个时间步都包含一个子张量列表(在单个时间步中表示多个特征)。 例如,序列1有3个时间步,每个时间步有2个特征。下面的一个例子是: 序列1=[[1,2],[2,2],[3,3],[3,2],[3,2]] 序列2=[[4,2],[5,1],[4,4]] 序列3=[[6,9]] 我运行pytorch的pad_sequence函数(这也适用于pack_se

  • 问题内容: 在iOS上,证书,密钥和信任服务API包含以下填充类型: 苹果CDSA邮件列表上的用户说“ kSecPaddingPKCS1与PKCS#1 1.5相同”。证书,密钥和信任服务参考使用“将完成标准ASN.1填充以及基础RSA操作的PKCS1填充”来注释后三种填充类型。 有什么区别kSecPaddingPKCS1? 是kSecPaddingPKCS1仅仅根据RFC 3447的基本RSA运算

  • 本文向大家介绍洪水填充和边界填充算法之间的区别,包括了洪水填充和边界填充算法之间的区别的使用技巧和注意事项,需要的朋友参考一下 在这篇文章中,我们将了解洪水填充算法和边界填充算法之间的区别。它们是区域填充算法,可以根据随机像素是否具有该区域的原始颜色来区分它们。 洪水填充算法 它也被称为种子填充算法。 它针对多维数组计算连接到给定节点的面积。 它通过填充或重新着色内部包含特定颜色的特定区域并因此给

  • 问题内容: 我一直认为Java 中的运算符用于验证其两个布尔操作数是否均为,并且该&运算符用于对两种整数类型进行按位运算。 最近我知道,也可以使用运算符来验证其两个布尔操作数是否均为,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 Java中的运算符是否在内部重载?还是在这背后有其他概念? 问题答案: <-验证两个操作数 <-停止评估第一个操作数是否为false,因为结果为fa

  • 问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,

  • 问题内容: 我正在从Spring 2.5迁移到Spring 3。 他们介绍了一些黑魔法。预期仅在servlet配置文件中声明。 在Spring 2.5中,我刚刚使用,并且在分发服务器servlet配置XML中声明了标记,并使用了要扫描的基本包。 所以,我不知道是什么样的区别,并在servlet配置标签和我有什么可以消除在Spring3配置文件? 问题答案: 声明一般注释,比如支持,等等。 声明了注

  • 问题内容: 我是Go编程语言的新手。 我注意到Go中有一些奇怪的地方:我认为它在Python中使用并替代了,但是当我在Go中使用时,它也是可行的。 和之间有什么区别? 问题答案: 是分配。有关Go中分配的更多信息:分配 和在变量声明中使用时的细微差别。 Go中变量声明的一般形式是: 上面的声明创建一个特定类型的变量,为其添加名称,并设置其初始值。 无论是或可以省略,但不能同时使用。 例如: 被称为