我读过许多关于卷积神经网络用于超分辨率或图像分割或自动编码器等的论文。他们在不同的问题中使用了不同类型的上采样、aka反卷积和here上的讨论。Here在Tensorflow中有一个函数Here在Keras中有一些
我实现了Keras one:
x = tf.keras.layers.UpSampling1D(size=2)(x)我用的是从一个超分辨率的repo here上偷来的
class SubPixel1D(tf.keras.layers.Layer):
def __init__(self, r):
super(SubPixel1D, self).__init__()
self.r = r
def call(self, inputs):
with tf.name_scope('subpixel'):
X = tf.transpose(inputs, [2,1,0]) # (r, w, b)
X = tf.compat.v1.batch_to_space_nd(X, [self.r], [[0,0]]) # (1, r*w, b)
X = tf.transpose(X, [2,1,0])
return X但我意识到,在我的模型摘要中,这两者都没有参数。这些函数不需要有参数,这样它们就可以学习上采样吗?
发布于 2020-04-15 17:37:56
在Keras中,上采样只需将您的输入复制到提供的大小。您可以找到文档here,因此不需要为这些层提供参数。
我认为你混淆了上采样和转置卷积/反卷积。
发布于 2020-06-15 21:56:59
在UpSampling1D中,如果您查看github上的实际源代码,就会发现所涉及的上采样要么是最近邻的,要么是双线性的。而且这两种插值方案都没有学习参数,如任何权重或偏差,除非和直到它们后面是卷积层。由于在Subpixel1D中也没有使用卷积层或可学习层,因此没有训练参数
https://stackoverflow.com/questions/61215316
复制相似问题