理解以下神经网络

时间:2017-02-08 15:33:18

标签: python neural-network

我目前开始阅读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是网络的输入数量。

这本书谈了很多关于如何训练网络的内容,我对如何运行一些验证测试并获得一些网络输出感到有些困惑。

1 个答案:

答案 0 :(得分:0)

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