当前位置:   article > 正文

backpropagation算法代码实现_python bp算法 backprop

python bp算法 backprop

前言

研究生生涯正式开始了,看了吴恩达的AI课程,然后通过廖雪峰学习了一些python的知识,然后看了一些关于BP博文,然后手推了一遍反向传播算法,还要完成一些导师布置过来的任务,收获还是不错的,然后推荐给ML入门者一些好的网站去学习。

福利链接

廖雪峰python3网站学习地址:链接地址
吴恩达AI课程:链接地址
我见过最好的BP算法的证明:链接地址,可以把相关的文章都看一遍。

正文

今天主要跑了一下bp算法的代码,也就是第三个分享的连接下给的代码,因为给出的代码是python2.7的代码,但是现在大家基本都是用python3跑程序,但是源码直接拿来用python3跑会报错,这里我把我把我遇到的一些问题跟大家分享一下,然后我把代码挂上来。

问题1:from numpy import * 和import numpy as np有什么区别。

两种方式都是引入numpy库中的所有函数、函数、对象、变量等,两者的区别在于调用其中内容时不同.
以掉用numpy中的random模块为例,第一种方式要用numpy.random,第二种方式只用random即可。
但是请特别注意:pep标准推荐使用第一种方式,请在日常使用中尽量使用第一种方法,就比如numpy中random 标准库中也有random,但是两者的功能是不同的,使用第二种方式容易造成混淆

问题二:python2和python3 map函数的区别

python2中map函数中输入一个list做处理返回的也是一个list,但是python3中输入一个list返回的是map object,因此如果想得到一个list,需要在map函数外加list()
举个例子:

def f(x):
    return x*x

L = [1, 2, 3, 4, 5]

print(map(f, L))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

该代码在python3上报错:<map object at 0x0000022B9E6BADA0>
修改的代码为:

def f(x):
    return x*x

L = [1, 2, 3, 4, 5]

print(list(map(f, L)))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

此时可以得出正确结果:[1, 4, 9, 16, 25]

代码

# -*- coding: UTF-8 -*-

import random
from numpy import *
from functools import reduce

#这里exp函数来自numpy
def sigmoid(inX):
    return 1.0 / (1 + exp(-inX))


class Node(object):
    def __init__(self, layer_index, node_index):
        self.layer_index = layer_index
        self.node_index = node_index
        self.downstream = []
        self.upstream = []
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/144896
推荐阅读
相关标签
  

闽ICP备14008679号