深度学习笔记:06最简单的神经网络

首先先定义三个接口:

class NeuralNetWork:
    def __init__(self):
        #初始化网络接口,设置输入层,中间层,和输出节点数
        pass
    def train(self):
        #根据输入的训练数据更新节点链路权重
        pass
    def query(self):
        #根据输入数据计算并输出答案
        pass
class NeuralNetWork:
    def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):
    
        #初始化网络,设置输入层,中间隐藏层,输出层节点数
        self.inodes = inputnodes
        self.hnodes = hiddennodes
        self.onodes = outputnodes

        #设置学习率--是用来调节牛顿下山法时所改变的那个值的幅度。
        self.lr = learningrate
        pass
    def train(self):
        #根据输入的训练数据更新节点链路权重
        pass
    def query(self):
        #根据输入数据计算并输出答案
        pass

创建对象:

input_nodes = 3
hidden_nodes = 3
output_nodes = 3

learning_rate = 0.3
n = NeuralNetWork(input_nodes,hidden_nodes,output_nodes,learning_rate)
import numpy
numpy.random.rand(3,3) - 0.5
#链路上的权重值随机设计到-0.5到+0.5之间

在这里插入图片描述

class NeuralNetWork:
    def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):
    
        #初始化网络,设置输入层,中间隐藏层,输出层节点数
        self.inodes = inputnodes
        self.hnodes = hiddennodes
        self.onodes = outputnodes

        #设置学习率
        self.lr = learningrate
        '''
        初始化权重矩阵,我们有两个权重矩阵,一个是wih表示输入层和中间层节点链路权重形成的矩阵
        一个是who,表示中间层和输出层间链路权重形成的矩阵
        '''
        self.wih = numpy.random.rand(self.hnodes,self.inodes) - 0.5
        self.who = numpy.random.rand(self.onodes,self.inodes) - 0.5
        pass
    def train(self):
        #根据输入的训练数据更新节点链路权重
        pass
    def query(self,inputs):
        #根据输入数据计算并输出答案
        hidden_inputs = numpy.dot(self.wih,inputs)
        pass

在这里插入图片描述

import scipy.special#这个库里包含激活函数
class NeuralNetWork:
    def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):
        #初始化网络,设置输入层,中间隐藏层,输出层节点数
        self.inodes = inputnodes
        self.hnodes = hiddennodes
        self.onodes = outputnodes

        #设置学习率
        self.lr = learningrate
        '''
        初始化权重矩阵,我们有两个权重矩阵,一个是wih表示输入层和中间层节点链路权重形成的矩阵
        一个是who,表示中间层和输出层间链路权重形成的矩阵
        '''
        #形成input->hiddende的
        self.wih = numpy.random.rand(self.hnodes,self.inodes) - 0.5
        self.who = numpy.random.rand(self.onodes,self.inodes) - 0.5
        
        self.activation_function = lambda x:scipy.special.expit(x)
        #激活函数:expit
        #lambda是把expit函数改名为activation_function
        pass
    def train(self):
        #根据输入的训练数据更新节点链路权重
        pass
    def query(self,inputs):
        #根据输入数据计算并输出答案
        #计算中间层从输入层接收到的信号量
        hidden_inputs = numpy.dot(self.wih,inputs)
        #计算中间层经过激活函数以后形成的输出信号量
        hidden_outputs = self.activation_function(hidden_inputs)
        #计算最外层接收到的信号量
        final_inputs = numpy.dot(self.who,hidden_outputs)
        #计算最外层神经元经过激活函数后输出的信号量
        final_outputs = self.activation_function(final_inputs)
        
        print(final_outputs)
        pass

最后开始测试:

input_nodes = 3
hidden_nodes = 3
output_nodes = 3

learning_rate = 0.3 
n = NeuralNetWork(input_nodes,hidden_nodes,output_nodes,learning_rate)
n.query([1.0,0.5,-1.5])

在这里插入图片描述

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值