【发布时间】:2017-06-26 07:34:19
【问题描述】:
我目前已开始阅读 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 是网络的输入数量。
这本书谈了很多关于如何训练网络的内容,我只是对如何运行一些验证测试并获得一些网络输出感到有些困惑。
【问题讨论】:
标签: python neural-network