我正在尝试用Python实现卷积神经网络.
但是,当我使用signal.convolve或np.convolve时,它不能对X,Y进行卷积(X是3d,Y是2d).X正在训练小型车.Y是过滤器.我不想为每个训练向量做循环,如:
for i in xrange(X.shape[2]):
result = signal.convolve(X[:,:,i], Y, 'valid')
....
Run Code Online (Sandbox Code Playgroud)
那么,有什么功能可以用来有效地进行卷积吗?
我正在尝试实现ANN,我还为反向传播写了一个数值梯度检查.当我使用sigmoid函数时,数值梯度检查正常工作.
但是,当我使用relu激活时,渐变检查失败.
我得到的梯度写如下:
switch opts.act_function
case 'relu'
d_act = a{i} > 0;
case 'sigmoid'
d_act = a{i} * (1 - a{i});
end
Run Code Online (Sandbox Code Playgroud)
我的问题是0处没有梯度.如果我将0的子梯度设置为0,这是正确的吗?