Python使用numpy实现BP神经网络

Python使用numpy实现BP神经网络

本文完全利用numpy实现一个简单的BP神经网络,由于是做regression而不是classification,因此在这里输出层选取的激励函数就是f(x)=x。BP神经网络的具体原理此处不再介绍。
 

   import numpy as np
     
    class NeuralNetwork(object):
        def __init__(self, input_nodes, hidden_nodes, output_nodes, learning_rate):
            # Set number of nodes in input, hidden and output layers.设定输入层、隐藏层和输出层的node数目
            self.input_nodes = input_nodes
            self.hidden_nodes = hidden_nodes
            self.output_nodes = output_nodes
     
            # Initialize weights,初始化权重和学习速率
            self.weights_input_to_hidden = np.random.normal(0.0, self.hidden_nodes**-0.5, 
                                           ( self.hidden_nodes, self.input_nodes))
     
            self.weights_hidden_to_output = np.random.normal(0.0, self.output_nodes**-0.5, 
                                           (self.output_nodes, self.hidden_nodes))
            self.lr = learning_rate
            
            # 隐藏层的激励函数为sigmoid函数,Activation function is the sigmoid function
            self.activation_function = (lambda x: 1/(1 np.exp(-x)))
        
        def train(self, inputs_list, targets_list):

转载于:https://www.cnblogs.com/amengduo/p/9586276.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值