即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

基于Python运用神经网络识别手写数字

编程语言 u010837794 59℃ 0评论
本文目录
[隐藏]

1.0.神经网络层次

第一层有2个神经元,第二层有3个神经元,最后一层有1个神经元,如图1所示。


这里写图片描述

net=Network([2,3,1])

2.1.神经网络Network对象的初始化

前后层之间的关系如下式:


这里写图片描述


分析隐藏层:第1个神经元节点输入为权重为1*2的矩阵(以下省略“矩阵”二字)和偏置为1*1,输出为1*1,则从具有三个神经元节点的整体来看,输入的权重为3*2(3代表隐藏层神经元节点数,2代表输入层神经元节点数)、偏置为3*1(3代表隐藏层神经元节点数,1为固定值),输出为3*1。


分析输出层:只有一个神经元节点。输入的权重1*3(1代表输出层神经元节点数,3代表隐藏层神经元节点数),偏置1*1(1代表隐藏层神经元节点数,1为固定值),输出1*1。


偏置:3*1和1*1


权重:3*2和1*3

class Network:
    def __init__(self,sizes):
        self.num_layers=len(sizes)
        self.sizes=sizes
        self.biases=[np.random.randn(y,1) for y in sizes[1:]]
        self.weights=[np.random.randn(x,y) \
                    for x,y in zip(sizes[1:],sizes[:-1])]

说明:Python 并行遍历zip()函数使用方法

3.2.sigmoid函数

这里写图片描述

def sigmoid(z):
    return  1.0/(1.0+np.exp(-z))

4.参考资料

:神经网络与深度学习.pdf

转载请注明:CodingBlog » 基于Python运用神经网络识别手写数字

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情