用 Python 运行神经网络

一个神经网络类

开启神经网络

我们在神经网络教程的前一章中学到了关于权重的最重要的事实。我们看到了它们的使用方式以及如何在 Python 中实现它们。我们看到,通过应用矩阵乘法,可以使用 Numpy 中的数组完成权重与输入值的乘法。

然而,我们没有做的是在真实的神经网络环境中测试它们。我们必须先创造这个环境。我们现在将在 Python 中创建一个类,实现一个神经网络。我们将分步进行,以便一切都易于理解。

我们班级需要的最基本的方法是:

  • __init__ 初始化一个类,即我们将设置每一层的神经元数量并初始化权重矩阵。
  • run:一种应用于我们想要分类的样本的方法。它将此样本应用于神经网络。我们可以说,我们“运行”网络以“预测”结果。此方法在其他实现中通常称为predict.
  • train: 该方法获取一个样本和对应的目标值作为输入。如有必要,它可以通过此输入调整重量值。这意味着网络从输入中学习。从用户的角度来看,我们“训练”了网络。在sklearn例如,这种方法被称为fit

我们将把trainandrun方法的定义推迟到以后。权重矩阵应该在__init__方法内部初始化。我们是间接这样做的。我们定义一个方法create_weight_matrices并在__init__. 这样,init 方法就清晰了。

我们还将推迟向层添加偏置节点。

以下 Python 代码包含应用我们在前一章中得出的知识的神经网络类的实现:

导入 numpy的  NP
 scipy.stats 导入 truncnorm

def  truncated_normal ( mean = 0 ,  sd = 1 ,  low = 0 ,  upp = 10 ): 
    return  truncnorm ( 
        ( low  -  mean )  /  sd ,  ( upp  -  mean )  /  sd ,  loc = mean ,  scale = sd )

 神经网络def  __init__ ( self ,  
                 no_of_in_nodes ,  
                 no_of_out_nodes ,  
                 no_of_hidden_​​nodes , 
                 learning_rate ): 
        self no_of_in_nodes  =  no_of_in_nodes 
        self no_of_out_nodes  =  no_of_out_nodes  
        self no_of_hidden_​​nodes  =  no_of_hidden_​​nodes 
        self learning_rate  =  learning_rate   
        self . create_weight_matrices ()
        
    def  create_weight_matrices ( self ): 
        rad  =  1  /  np SQRT (自我no_of_in_nodes )
        X  =  truncated_normal (平均值= 0 , SD = 1 , 低= -弧度, UPP =弧度)
        自我weights_in_hidden  =  X RVS ((自我no_of_hidden_​​nodes , 
                                       自我no_of_in_nodes )) 
        rad  =  1  /  np SQRT (自我no_of_hidden_​​nodes )
        X  =  truncated_normal (平均值= 0 , SD = 1 , 低= -弧度, UPP =弧度)
        自我weights_hidden_​​out  =  X RVS ((自我no_of_out_nodes , 
                                        自我no_of_hidden_​​nod
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值