我最近用 Python 完成了我自己的 MLP 神经网络的编码。为了使我的代码更易于阅读,我将 MLP 分成了多个类;网络类、层类和神经元类,其中神经元类将执行所有计算,例如激活和计算误差信号。每个神经元还包含一个权重数组。
为了验证我的 MLP 的结果,我用相同的数据集尝试了 sklearn-MLPClassifier,发现 sklearn 实际上比我的代码训练要快得多。
如果我用矩阵重写我的代码会更快吗?编写 NN 的正确方法是什么,我怎样才能让我的表现与 sklearn 的表现相媲美?
我最近用 Python 完成了我自己的 MLP 神经网络的编码。为了使我的代码更易于阅读,我将 MLP 分成了多个类;网络类、层类和神经元类,其中神经元类将执行所有计算,例如激活和计算误差信号。每个神经元还包含一个权重数组。
为了验证我的 MLP 的结果,我用相同的数据集尝试了 sklearn-MLPClassifier,发现 sklearn 实际上比我的代码训练要快得多。
如果我用矩阵重写我的代码会更快吗?编写 NN 的正确方法是什么,我怎样才能让我的表现与 sklearn 的表现相媲美?
如果我用矩阵重写我的代码会更快吗?
没有看到代码是不可能知道的,但很有可能。另外,我永远不会模拟单个神经元。开销太大而没有任何用处。而是模型层。
我怎样才能让我的表现与 sklearn 的表现相媲美
Sklearn 是开源的。阅读代码:https ://github.com/scikit-learn/scikit-learn/blob/7389dba/sklearn/neural_network/multilayer_perceptron.py#L682