反卷积代码
import numpy as np
import torch
def zy_deconv(img, in_channels, out_channels, kernels,bias, stride=1, padding=0,output_padding=0):
#得到参数
N, C, H, W = img.shape
kc,kc_in,kh, kw = kernels.shape
p = padding
#间隔填充
if stride>1:
gap_img=np.zeros([N,in_channels,stride*H-1,stride*W-1])
for n in range(N):
for in_c in range(in_channels):
for x in range(H):
for y in range(W):
gap_img[n][in_c][stride*x][stride*y]=img[n][in_c][x][y]
N, C, H, W = gap_img.shape
img=gap_img
#四周填充
p=kh-p-1
if p:
img = np.pad(img, ((0, 0), (0, 0), (p, p), (p, p)), 'constant') # padding along with all axis
out_h = (H + 2 * p - kh) + 1
out_w = (W + 2 * p - kw) + 1
#右边和下方填充
if output_padding:
temp = np.zeros([N,in_channels, H+2*p+output_padding, W+2*p+output_padding])
#先将原有的数据填入
for n in range(N):
for in_c in range


518

被折叠的 条评论
为什么被折叠?



