上采样卷积没有参数
upsampling convolution has no parameters
我读过很多论文,其中卷积神经元网络用于超分辨率或图像分割或自动编码器等。他们使用不同类型的上采样,也就是反卷积,并在不同的问题中讨论了 here。
Here Tensorflow 中有一个函数
Here 在 Keras 中有一些
我实现了 Keras:
x = tf.keras.layers.UpSampling1D(size=2)(x)
我使用了从超分辨率存储库中偷来的这个 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
但我意识到我的模型摘要中都没有参数。这些函数不需要参数就可以学习上采样吗??
在 Keras 上采样中,只需将您的输入复制到提供的大小。你可以找到文档here,所以这些层不需要参数。
我认为您混淆了上采样与转置卷积/反卷积。
在 UpSampling1D 中,如果您查看 github 上的实际源代码,所涉及的上采样要么是最近邻,要么是双线性。并且这两种插值方案都没有学习参数,例如任何权重或偏差,除非并且直到它们后面跟着一个卷积层。
由于在 Subpixel1D 中也没有使用卷积层或可学习层,因此没有训练参数
我读过很多论文,其中卷积神经元网络用于超分辨率或图像分割或自动编码器等。他们使用不同类型的上采样,也就是反卷积,并在不同的问题中讨论了 here。 Here Tensorflow 中有一个函数 Here 在 Keras 中有一些
我实现了 Keras:
x = tf.keras.layers.UpSampling1D(size=2)(x)
我使用了从超分辨率存储库中偷来的这个 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
但我意识到我的模型摘要中都没有参数。这些函数不需要参数就可以学习上采样吗??
在 Keras 上采样中,只需将您的输入复制到提供的大小。你可以找到文档here,所以这些层不需要参数。
我认为您混淆了上采样与转置卷积/反卷积。
在 UpSampling1D 中,如果您查看 github 上的实际源代码,所涉及的上采样要么是最近邻,要么是双线性。并且这两种插值方案都没有学习参数,例如任何权重或偏差,除非并且直到它们后面跟着一个卷积层。 由于在 Subpixel1D 中也没有使用卷积层或可学习层,因此没有训练参数