Tensorflow:如何跨越深度?

don*_*lan 7 python tensorflow

我有以下参数定义为在图像深度(rgb)上执行最大池以便在密集层和读出之前进行压缩...并且我失败了,我无法在深度和其他所有内容池中进行汇总:

sunset_poolmax_1x1x3_div_2x2x3_params = \
    {'pool_function':tf.nn.max_pool,
     'ksize':[1,1,1,3],
     'strides':[1,1,1,3],
     'padding': 'SAME'}
Run Code Online (Sandbox Code Playgroud)

我改变了步幅,[1,1,1,3]以便深度是游泳池减少的唯一尺寸......但它仍然不起作用.为了保持颜色,我必须将所有东西压缩到一个微小的图像,我无法获得良好的效果......

实际错误:

ValueError:当前实现不支持批处理和深度维度中的池.

Ben*_*ner 8

tf.nn.max_pool不支持汇总深度维度,这就是您收到错误的原因.

您可以使用最大缩减来实现您的目标:

tf.reduce_max(input_tensor, reduction_indices=[3], keep_dims=True)

上述keep_dims参数确保保留张量的等级.这确保了最大减少的行为将与tf.nn.max_pool操作在其支持深度维度上的池化时将执行的操作一致.