假设我们有神经网络的权重(theta1和theta2),即:
theta1 =[1, 2, 3]
theta2= [4, 5, 6]如果我们在matlab/octave中将这些权重展开为一个一维数组,我们将得到:
theta = [theta1(:);theta2(:)]
%theta = [1, 4, 2, 5, 3, 6]例如,如果我们以一种稍微不同的方式展开这些权重,请考虑下面的python代码:
theta = np.array(theta1,theta2)
theta = theta.ravel()
#theta = [1,2,3,4,5,6]我用渐变下降法实现了一个神经网络,它工作得很好,但同样的实现在python中不起作用(%准确度= 10%)。python实现唯一的不同之处在于权重的展开方式。那么,神经网络的性能真的取决于权重的展开方式吗?
发布于 2016-11-03 10:09:25
我并不真正理解你的表示法,也没有很多展开的经验,但据我所知,只有一种方法可以将你的2个权重(theta1 & theta2)转换成一个单一的权重(θ)。
如果您将您的python代码调整为如下所示:
theta = np.array(theta1,theta2)
theta = np.ravel(theta, order='F')
#theta = [1, 4, 2, 5, 3, 6]现在起作用了吗?如果是这样的话,你不能只是选择如何“展开”你的重量。
https://datascience.stackexchange.com/questions/14902
复制相似问题