Python 了解以下神经网络

Python 了解以下神经网络,python,neural-network,Python,Neural Network,我现在已经开始阅读迈克尔·尼尔森(MichaelNielson)写的在线书,书中深入讨论了创建神经网络的基本原理,并给出了解释性的代码示例 我所指的在线书籍可以查看 我一直在跟进,并创建了一个基本的神经网络,它实现了随机梯度下降,允许权值和偏差稍微改变,以提高学习精度 代码大约有75行长(减去注释),可以看到 我使用了MNIST,它由60000个数字组成,我正在使用它来训练网络 SGD函数采用training_data,这是一个元组列表(x,y),表示训练输入和相应的期望输出以及其他自解释的参数

我现在已经开始阅读迈克尔·尼尔森(MichaelNielson)写的在线书,书中深入讨论了创建神经网络的基本原理,并给出了解释性的代码示例

我所指的在线书籍可以查看

我一直在跟进,并创建了一个基本的神经网络,它实现了随机梯度下降,允许权值和偏差稍微改变,以提高学习精度

代码大约有75行长(减去注释),可以看到

我使用了MNIST,它由60000个数字组成,我正在使用它来训练网络

SGD函数采用
training_data
,这是一个元组列表
(x,y)
,表示训练输入和相应的期望输出以及其他自解释的参数

在pythonshell中创建网络实例时,我加载MNIST数据集作为输入,并使用它调整权重和值

培训结束后,我对如何在数据集以外的其他数字输入上实际测试网络感到有点困惑

我应该调用
前馈
函数并输入我的数字符号矩阵的想法正确吗

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是网络的输入数量


这本书讲了很多关于如何训练网络的内容,我只是对如何运行一些验证测试和获得一些网络输出有点困惑

你的假设是正确的。
前馈
函数的输出将是网络不同结果的概率分布。检查在您共享的代码中定义的
evaluate()
函数,看看如何使用它。

我也这么认为。我现在就去试一试。非常感谢您的回复。附带说明。。。每次创建“网络”实例时,在运行外部测试之前,我是否必须重新训练数据集以获得正确的权重/偏差?或者有什么方法可以保存当前的权重/偏差吗?您可以使用pickle或类似的技术保存网络。谢谢,我必须研究一下:D