四:神经网络(识别手写字)

结合《python神经网络编程》这本书实现代码,个人认为最近几年出的实战系列书,给出的代码和思路更加贴切现在的技术,吴恩达课程讲解很棒但是很多资料和代码或者思想比较老化,不便于吸收理解。

一:主函数

#一个三层的简单神经网络实现
import numpy as np
import scipy.special
import mnist_train as mtr
import mnist_test  as mte

class neuarlNetwork:
    #初始化函数--设定输入层节点,隐藏层节点和输出层节点的数量
    def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
        #设定输入层节点,隐藏层节点,输出层节点的数量
        self.inodes = inputnodes
        self.hnodes = hiddennodes
        self.onodes = outputnodes

        #学习效率
        self.lr = learningrate

        #权重矩阵(-0.5,是希望权重的范围可以在-0.5-0.5之间)
        self.wih = (np.random.rand(self.hnodes, self.inodes) - 0.5)
        self.who = (np.random.rand(self.onodes, self.hnodes) - 0.5)

        #定义S函数
        self.activation_function = lambda x:scipy.special.expit(x)
        pass

    #训练--学习给定训练集样本后,优化权重
    def train(self,input
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值