【发布时间】:2016-10-29 19:45:00
【问题描述】:
我创建了一个带有一个隐藏层的神经网络。我可以使用最小化功能吗? 传递两个 Theta 矩阵进行最小化的方法是什么。我正在尝试在两个 Theta 上使用 flatten,然后使用
将它们连接起来np.concatenate.
thetaFlat = np.concatenate((initial_Theta1.flatten(),initial_Theta2.flatten()),axis=0)
在我的成本和梯度函数中,我根据索引检索 theta,然后对其进行整形。
theta1=(thetaFlat[0:(hiddenLayerSize*(inputLayerSize+1))]).reshape(hiddenLayerSize,(inputLayerSize+1))
theta2=(thetaFlat[(hiddenLayerSize*(inputLayerSize+1)):len(thetaFlat)]).reshape(num_labels,(hiddenLayerSize+1))
这种方法正确吗? 然而,这种方法在 Octave 中使用,但那里的展平是按列的,而在 Python 中是按行的。
在 Python 中,训练集的性能约为 80%。在 Octave 中,它的 96%。所以我对这种方法有点怀疑。如果可用于 Python 上的神经网络,也请提出任何更好的选择。或任何其他优化功能
问候 Souvik Saha Bhowmik
【问题讨论】:
-
如果多层感知器适合您,您可以查看 scikit learn 实现 (scikit-learn.org/stable/modules/generated/…)。
标签: python machine-learning neural-network