numpy手动实现反卷积代码

反卷积代码

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值