在使用Keras(带有TensorFlow后端)调整深层卷积网络时,我想尝试一下MaxPooling2D和之间的混合AveragePooling2D,因为这两种策略似乎都可以改善我的目标的两个不同方面。
我正在考虑这样的事情:
-------
|8 | 1|
x = ---+---
|1 | 6|
-------
average_pooling(x) -> 4
max_pooling(x) -> 8
hybrid_pooling(x, alpha_max=0.0) -> 4
hybrid_pooling(x, alpha_max=0.25) -> 5
hybrid_pooling(x, alpha_max=0.5) -> 6
hybrid_pooling(x, alpha_max=0.75) -> 7
hybrid_pooling(x, alpha_max=1.0) -> 8
Run Code Online (Sandbox Code Playgroud)
或等式:
hybrid_pooling(x, alpha_max) =
alpha_max * max_pooling(x) + (1 - alpha_max) * average_pooling(x)
Run Code Online (Sandbox Code Playgroud)
既然看起来好像没有现成的东西,那么如何以有效的方式实现它呢?
我不知道如何将 PyTorch 方法转换adaptive_avg_pool2d为 Keras 或 TensorFlow。有人可以帮忙吗?PyTorch方法是
adaptive_avg_pool2d(14,[14])
Run Code Online (Sandbox Code Playgroud)
我尝试使用平均池化,在 Keras 中重塑张量,但收到错误:
ValueError:新数组的总大小必须保持不变
如何在 PyTorch 中执行求和池。具体来说,如果我们有输入(N, C, W_in, H_in)并想要(N, C, W_out, H_out)使用特定的输出kernel_size,stride就像nn.Maxpool2d?