Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 卷积的结果应该是什么?_Neural Network_Conv Neural Network - Fatal编程技术网

Neural network 卷积的结果应该是什么?

Neural network 卷积的结果应该是什么?,neural-network,conv-neural-network,Neural Network,Conv Neural Network,我正在使用convnetjs构建一个交互式教程(正如我自己学习的那样)。我有一个简单的9x9图像,是一个“X”和一个卷积层,其中一个过滤器是3x3'\' 我希望结果会有所不同。我希望右边的圆圈结果是(-1+1+1+1+1+1+1+1+1)/9=0.77,而不是7.1 在7.1中还发生了什么?这是因为偏见吗?我还希望整个结果沿“\”对角线显示最大的数字,因为过滤器是与“X”的“\”部分匹配的形状 更新:我希望结果如下。偏差似乎是一个数组[0.1,0.1,0.1]。是什么计算使上述结果(至少是左上角

我正在使用convnetjs构建一个交互式教程(正如我自己学习的那样)。我有一个简单的9x9图像,是一个“X”和一个卷积层,其中一个过滤器是3x3'\'

我希望结果会有所不同。我希望右边的圆圈结果是(-1+1+1+1+1+1+1+1+1)/9=0.77,而不是7.1

在7.1中还发生了什么?这是因为偏见吗?我还希望整个结果沿“\”对角线显示最大的数字,因为过滤器是与“X”的“\”部分匹配的形状

更新:我希望结果如下。偏差似乎是一个数组[0.1,0.1,0.1]。是什么计算使上述结果(至少是左上角的像素)而不是下面的结果


//初始化一个9x9的输入,并用零初始化。
让inputVol=new convnetjs.Vol(9,9,1,0.0);
//手动将输入权重从零设置为“X”。。。
输入量w=[-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-;
//定义图层
让层=[];
推({
键入:“输入”,
out_sx:9,
外协:9,
出射深度:1
});
推({
键入:“conv”,
sx:3,
pad:0,
过滤器:3,
步幅:1,
激活:“relu”
});
让net=new convnetjs.net();
net.makeLayers(层);
设convLayer=net.layers[1];
让convLayerFilters=convLayer.filters;
//手动设置过滤器
//看起来像一个'\'
convLayerFilters[0]。w=[1,-1,-1,1,-1,-1,1];
//看起来像个“X”
convLayerFilters[1].w=[1,-1,1,-1,1,-1,1];
//看起来像一个“/”字
convLayerFilters[2].w=[-1,-1,1,1,1,-1,1,1,-1];
//撒网
净远期(inputVol);
//打印“7.1”而不是“0.77”。为什么?
console.log(net.layers[1].out_act.w[0]);

是的,这是由于偏置而发生的,因此它保持在定义的范围内


偏差是可以添加到卷积结果中的每个元素以添加来自相邻像素的附加影响的值。由于使用某些卷积可以得到负数(在0–255格式中无法表示),因此偏置可防止信号漂移超出范围。您可以选择添加127或128的偏差,以允许一些负数可以表示(其值中隐含+127或+128)

您应该包括代码,现在您想让我们猜测是什么代码产生了这些结果。@MatiasValdenegro问题更多的是convnet如何工作,而不是我的代码如何使用它。但为了帮助解决问题,我编辑了这篇文章,其中包含了最基本的代码。问题不在于convnet一般如何工作,你有特定的代码和结果,你会问为什么它们不同。卷积层只做卷积加上偏置和激活。你的代码可能只是在做一些额外的事情,你必须看看代码。