Example #1
0
def corr2d_multi_in(X, K):
    # 首先沿着X和K的第0维(通道维)遍历。然后使用*将结果列表变成add_n函数的位置参数
    # (positional argument)来进行相加

    #
    # [d2l.corr2d(x, k) for x, k in zip(X, K)]
    # [0]
    # [[19. 25.]
    # [37. 43.]]

    # [1]
    # [[37. 47.]
    # [67. 77.]]

    # [0] + [1] =
    # 56    72
    # 104   120
    return nd.add_n(*[d2l.corr2d(x, k) for x, k in zip(X, K)])
def corr2d_multi_in(X, K):  # 多输入通道
    return mx.nd.add_n(*[d2l.corr2d(x, k) for x, k in zip(X, K)])
Example #3
0
def corr2d_multi_in(X, K):
    # ⾸先沿着X和K的第0维(通道维)遍历。然后使⽤*将结果列表变成add_n函数的位置参数
    # ( positional argument)来进⾏相加
    return nd.add_n(*[d2l.corr2d(x, k) for x, k in zip(X, K)])
Example #4
0
def corr2d_multi_in(X, K):
    #首先沿着X,K的通道维遍历
    return nd.add_n(*[d2l.corr2d(x,k) for x,k in zip(X,K)])
Example #5
0
def corr2d_multi_in(X, K):
    return nd.add_n(*[d2l.corr2d(x, k) for x, k in zip(X, K)])
def corr2d_multi_in(X, K):
    # 首先沿着X和K的第0维(通道维)遍历。然后使用*将结果列表变成add_n函数的位置参数来进行相加
    return nd.add_n(*[d2l.corr2d(x, k) for x, k in zip(X, K)])
Example #7
0
from mxnet import autograd, nd
from mxnet.gluon import nn
import d2lzh as d2l


# 计算二维互相关运算
X = nd.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
K = nd.array([[0, 1], [2, 3]])
print(d2l.corr2d(X,K))
# corr2d(X, K)



# 物体边缘检测
# 下面我们来看一个卷积层的简单应用:检测图像中物体的边缘,即找到像素变化的位置。首先我们构造一张 6×8
# 的图像(即高和宽分别为6像素和8像素的图像)。它中间4列为黑(0),其余为白(1)。
X = nd.ones((6, 8))
X[:, 2:6] = 0
print(X)


# 然后我们构造一个高和宽分别为1和2的卷积核K。当它与输入做互相关运算时,如果横向相邻元素相同,输出为0;否则输出为非0。
K = nd.array([[1, -1]])
Y = d2l.corr2d(X, K)
print(Y)

# 构造一个输出通道数为1(将在“多输入通道和多输出通道”一节介绍通道),核数组形状是(1, 2)的二
# 维卷积层
conv2d = nn.Conv2D(1, kernel_size=(1, 2))
conv2d.initialize()
Example #8
0
def corr2d_multi_in(X, K):
    # *对应位置相加配合add_n zip获取地址每一次取数据和对应的kernel
    return nd.add_n(*[d2l.corr2d(x, k) for x, k in zip(X, K)])