如上所述,两者


  步幅= 2的tf.nn.conv2d





  tf.nn.max_pool具有2x2池


可以将输入的大小减少一半,我知道输出可能会有所不同,但是我不知道是否影响最终的训练结果,对此有任何线索,谢谢。

最佳答案

在您的两个示例中,均假设我们对步幅[height, width]应用了[2,2]内核。这意味着我们将内核应用于二维输入上大小为[height, width]的二维窗口以获取输出值,然后将该窗口向上或向下滑动2以获取下一个输出值。

在这两种情况下,假设padding='SAME',输出最终都比输入少4倍(每个维度少2倍)

区别在于如何为每个窗口计算输出值:

转换2d


输出是输入值乘以[height, width]内核中每个单元的权重的线性组合
这些权重成为模型中的可训练参数


max_pool


输出只是在输入值的[height, width]窗口中选择最大输入值
此操作没有重量,也没有可训练的参数

关于machine-learning - 步幅= 2的tf.nn.conv2d与2x2池化的tf.nn.max_pool有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45594820/

10-12 23:15