我目前开始阅读Michael Nielson撰写的在线书籍,该书深入讨论了创建神经网络的基本原理以及解释代码示例。
我所指的在线图书可以查看here
我一直在跟踪并创建了一个实现随机梯度下降的基本神经网络,以允许稍微改变权重和偏差,以提高学习准确性。
代码长约75行(减去评论),可以看到here.
我使用了MNIST dataset,它由60,000个数字组成,我用它来训练网络。
SGD函数采用training_data
,它是表示训练输入和相应的所需输出的元组(x, y)
的列表以及其他自我解释的参数。
在Python shell中创建网络实例时,我将MNIST数据集作为输入加载,并使用它来调整权重和值。
完成培训后,我对如何在不属于数据集的其他数字输入上实际测试网络感到困惑。
我是否认为我应该调用feedforward
函数并输入我的数字字形矩阵?
def feedforward(self, a):
"""Return the output of the network if "a" is input."""
for b, w in zip(self.biases, self.weights):
a = sigmoid(np.dot(w, a)+b)
return a
假设输入a是(n,1)Numpy ndarray,而不是(n,)向量。这里,n是网络的输入数量。
这本书谈了很多关于如何训练网络的内容,我对如何运行一些验证测试并获得一些网络输出感到有些困惑。
答案 0 :(得分:0)
你的假设是正确的。 feedforward
函数的输出将是网络不同结果的概率分布。检查您共享的代码中定义的evaluate()
函数,看看它是如何使用的。