二维卷积层 讨论区

请问现在这个问题解决了吗,是因为啥呀

我刚才在我电脑上试的是没有问题

同问,请问什么原因,解决了吗?

image
修改环节:
(1)第五行:range(10) 改为:range(100)
(2)倒数第四行:i%2 改为:i%10
(3)倒数第一行:3e-2 改为:7e-3

解释说明:主要是learning_rate的调整;值过大,梯度下降变快;无法到达最低点,同时可能会增大weight的值;值过小,梯度下降变慢,需要更多时间才能收敛。

2赞

请问为什么用nd.Convolution的效果不如用nn.Conv2D好?在参数一样的情况下,图一中loss明显比图二中要小,收敛速度快。重复训练多次后依然是这样。

图一:使用nn.Conv2D

图二:使用nd.Convolution

小白请教,请问卷积层分隔可以通过核函数[-1,1]看出,那还有其它经典的核函数的作用吗

第3题,还没有人问过,如何把互相关运算表示成一个矩阵乘法?

相关资料不好找呀,根据Pete Warden的介绍,是先把感受野做一维向量化转置,再把所有感受野对应的转置结果堆成矩阵,最后与卷积核的一维向量矩阵做矩阵乘法,是这样吗?或者有其它资料吗?

参看这篇英文文献


上面是3D卷积的传统计算方式与矩阵乘法计算方式的对比,我们知道卷积和矩阵乘法都是乘一下求和的计算方式,所以推测可以将每个窗口内的元素拉成向量,通过向量内积进行运算,多个窗口的向量放在一起就成了矩阵,每个卷积核也拉成向量,多个卷积核的向量排在一起也成了矩阵,于是,卷积运算就转化成了矩阵运算。
但是并不是所有的卷积运算都能转为矩阵乘法,需要输入矩阵形状与核的形状满足某种条件才行
参考这里
他的例子是3D的我有些看不明白,学习更加深入后我相信会有更深的理解

会不会是Conv2D和 nn.Convolution 初始化不一样?

Input features理解为1张照片的RGB三个通道,即输入通道数为3;卷积核个数,即为输出通道数为2;卷积核的输入通道必须与输入的通道数一致。每个卷积核的输入通道与对应的通道的输入特征做互相关运算,然后合并。
如果输入输出通道为1,只看圈线部分。


我在看到你的截图前像这样考虑过,问题是获得的结果还是要reshape才能得到一致的结果。将input展开,用矩阵乘法,我理解这是用空间换时间。

From zhihu:
卷积神经网络简介

有看到全连接层做物体边缘检测的例子么?

yep, 就是deliate参数

我开始也是围绕output features形状来思考,结果是如上图的相反,将vet(kernel) * matrix(input)= output

1赞