卷积双线性插值

2024-09-28 22:04:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用换位法做上采样卷积。自从我无法计算出内核的重量,我尝试了以下方法。你知道吗

按因子向上采样图像(使用最近邻法) 滑动带有0.25个值的2x2过滤器。 这将产生除最后一列和行以外的所有值。 以下代码仅在输入和输出过滤器为单位大小时才能正常工作。你知道吗

from tensorflow.keras import layers
import numpy as np

nof = 9
# The input data (could be an image).
temp = tf.constant([i for i in range(2*2*nof)], tf.float64)
temp2 = tf.reshape(temp, [1, 2, 2,nof])

# A filter (affects the convolution).
filter = tf.constant([0.25 for i in range(2*2*nof*nof)], tf.float64)
filter2 = tf.reshape(filter, [2, 2, nof, nof])


img = layers.UpSampling2D(2)(temp2)
print(img.shape)


# Use convolution layer on 4D matrices.
#convolution = tf.nn.conv2d(img, filter2, [1, 1, 1, 1], padding="SAME")
convolution1 = tf.nn.conv2d(img, filter2, [1, 1, 1, 1], padding="VALID")
# Initialize session.
session = tf.Session()
tf.global_variables_initializer()


print("FILTER")
print([i for i in np.ravel(session.run(filter2))])
print('\n')


print(session.run(temp2),'\n')
image = session.run(img)
print(image)

print("CONVOLUTION")
c1 = session.run(convolution1)
print(c1)




Tags: runinimageimport过滤器imgforsession