执行 N-D 池化操作。
用法
tf.nn.pool(
input, window_shape, pooling_type, strides=None, padding='VALID',
data_format=None, dilations=None, name=None
)
参数
-
input
如果 data_format 不以 "NC"(默认)开头,则为 N+2 阶张量,形状为[batch_size] + input_spatial_shape + [num_channels]
,如果 data_format 以 "NC" 开头,则为[batch_size, num_channels] + input_spatial_shape
。池化仅发生在空间维度上。 -
window_shape
N 个整数的序列 >= 1。 -
pooling_type
指定池操作,必须是"AVG" 或"MAX"。 -
strides
可选的。 N 个整数的序列 >= 1。默认为 [1]N. 如果任何 strides 值 > 1,则 dilation_rate 的所有值必须为 1。 -
padding
填充算法,必须是"SAME" 或"VALID"。默认为"SAME"。看这里了解更多信息。 -
data_format
一个字符串或无。指定input
和输出的通道维度是最后一个维度(默认,或者如果data_format
不以"NC" 开头),还是第二个维度(如果data_format
以"NC" 开头)。对于 N=1,有效值为 "NWC"(默认)和 "NCW"。对于 N=2,有效值为 "NHWC"(默认)和 "NCHW"。对于 N=3,有效值为 "NDHWC"(默认)和 "NCDHW"。 -
dilations
可选的。膨胀率。 N 个整数列表 >= 1。默认为 [1]N。如果 dilation_rate 的任何值 > 1,则所有步幅值都必须为 1。 -
name
可选的。操作的名称。
返回
-
N+2 阶张量,形状为 [batch_size] + output_spatial_shape + [num_channels]
如果 data_format 为 None 或不以 "NC" 开头,或
[batch_size, num_channels] + output_spatial_shape
如果data_format以"NC"开头,其中
output_spatial_shape
取决于填充的值:如果填充 = "SAME":output_spatial_shape[i] = ceil(input_spatial_shape[i] /strides[i])
如果填充 = "VALID":output_spatial_shape[i] = ceil((input_spatial_shape[i] - (window_shape[i] - 1) * dilation_rate[i]) /strides[i])。
抛出
-
ValueError
如果参数无效。
在 data_format
不以 "NC" 开头的情况下,计算 0
output[b, x[0], ..., x[N-1], c] =
REDUCE_{z[0], ..., z[N-1]}
input[b,
x[0] * strides[0] - pad_before[0] + dilation_rate[0]*z[0],
...
x[N-1]*strides[N-1] - pad_before[N-1] + dilation_rate[N-1]*z[N-1],
c],
其中归约函数 REDUCE 取决于 pooling_type
的值,而 pad_before 是根据 padding
的值定义的,如tf.nn.convolution
的"returns" 部分所述,详情参见tf.nn.convolution
。减少从不包括越界位置。
在 data_format
以 "NC"
开头的情况下,input
和输出简单地转置如下:
pool(input, data_format, **kwargs) =
tf.transpose(pool(tf.transpose(input, [0] + range(2,N+2) + [1]),
**kwargs),
[0, N+1] + range(1, N+1))
相关用法
- Python tf.nn.embedding_lookup_sparse用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代码示例
- Python tf.nn.dropout用法及代码示例
- Python tf.nn.gelu用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代码示例
- Python tf.nn.embedding_lookup用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代码示例
- Python tf.nn.local_response_normalization用法及代码示例
- Python tf.nn.scale_regularization_loss用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代码示例
- Python tf.nn.max_pool用法及代码示例
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代码示例
- Python tf.nn.l2_loss用法及代码示例
- Python tf.nn.log_softmax用法及代码示例
- Python tf.nn.weighted_cross_entropy_with_logits用法及代码示例
- Python tf.nn.ctc_greedy_decoder用法及代码示例
- Python tf.nn.dilation2d用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.get_weights用法及代码示例
- Python tf.nn.compute_average_loss用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.pool。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。