大名鼎鼎的UNet和我们经常看到的编解码器模型,他们的模型都是先将数据下采样,也称为特征提取,然后再将下采样后的特征恢复回原来的维度。这个特征提取的过程我们称为“下采样”,这个恢复的过程我们称为“上采样”,本文就专注于神经网络中的下采样和上采样来进行一次总结。写的不好勿怪哈。
神经网络中的降维方法 池化层池化层(平均池化层、最大池化层),卷积
平均池化层
pytorch
tensorflow
tf.layers.AveragePooling1D
tf.layers.AveragePooling2D
最大池化层
pytorch
tensorflow
tf.layers.MaxPooling1D
tf.layers.MaxPooling2D
还有另外一些pool层:、、、
普通卷积
pytorch
tensorflow
tf.layers.Conv1D
tf.layers.Conv2D
还有一些独特的卷积,感兴趣的可以自己去了解
扩张卷积 (又称空洞卷积): tf.nn.atrous_conv2d
depthwise卷积: tf.nn.depthwise_conv2d
分离卷积: tf.nn.separable_conv2d
量化卷积: tf.nn.quantized_conv2d
...
升维方法 插值方法插值方法有很多种有:阶梯插值、线性插值、三次样条插值等等
numpy的实现方法我在另外一篇文章中已经介绍过了,为了避免重复,想要了解的同学请移步【插值方法及python实现】
pytorch实现方法
(size=None, scale_factor=None, mode='nearest', align_corners=None)