多输入通道和多输出通道

多输入通道

多输出通道:

设卷积核输入通道,输出通道是 ci , co,高宽为 kh , kw

为每个输出通道分别建立 ci * kh * kw 的核数组。在输出通道维上连结,卷积核的形状即为co * ci *kh*kw

from mxnet import autograd,nd
from mxnet import gluon,init
from mxnet.gluon import nn,loss as gloss
from mxnet.gluon import data as gdata

# 二维卷积层
def corr2d(X,K):
    h, w = K.shape
    Y = nd.zeros((X.shape[0] - h + 1,X.shape[1] - w + 1))
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            Y[i,j] = (X[i: i+h,j:j+w]*K).sum()
    return Y

# 多通道输入
def corr2d_multi_in(X,K):
    return nd.add_n(*[corr2d(x,k) for x,k in zip(X,K)])

X = nd.array([[[0,1,2],[3,4,5],[6,7,8]],
             [[1,2,3],[4,5,6],[7,8,9]]])
print(X)
K = nd.array([[[0,1],[2,3]],[[1,2],[3,4]]])

print(corr2d_multi_in(X,K))

# 多通道输出
# 为每个输出通道分别创建 ci * kh * kw 的核数组
# 将他们在输出通道维上连结,卷积核的形状即为 co * ci * kh * kw 的核数组

def corr2d_multi_in_out(X,K):
    return nd.stack(*[corr2d_multi_in(X,k) for k in K])

# 3 通道核 3 * 2 * 2 * 2
K = nd.stack(K,K+1,K+2)
print(K)
print(corr2d_multi_in_out(X,K))

 

转载于:https://www.cnblogs.com/TreeDream/p/10038674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值