Python中用numpy怎样实现神经网络,方法是什么
Admin 2022-06-23 群英技术资讯 1008 次浏览
这篇文章给大家介绍了“Python中用numpy怎样实现神经网络,方法是什么”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。本文主要介绍了Python利用numpy实现三层神经网络的示例代码,分享给大家,具体如下:

其实神经网络很好实现,稍微有点基础的基本都可以实现出来.主要都是利用上面这个公式来做的。

这是神经网络的整体框架,一共是三层,分为输入层,隐藏层,输出层。现在我们先来讲解下从输出层到到第一个隐藏层。
使用的编译器是jupyter notebook
import numpy as np #定义X,W1,B1 X = np.array([1.0, 0.5]) w1 = np.array([[0.1, 0.3, 0.5],[0.2, 0.4, 0.6]]) b1 = np.array([0.1, 0.2, 0.3]) #查看他们的形状 print(X.shape) print(w1.shape) print(b1.shape)

#求点积 np.dot(X,w1)

def sigmod(x):
return 1/(1 + np.exp(-x))
Z1 = sigmod(A1)
Z1

#定义w2,b2 w2 = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]]) b2 = np.array([0.1,0.2]) #查看他们的行状 print(w2.shape) print(b2.shape)

A2 = np.dot(Z1,w2) + b2 A2

Z2 = sigmod(A2) Z2

#定义恒等函数
def identity_function(x):
return x
#定义w3,b3
w3 = np.array([[0.1,0.3],[0.2,0.4]])
b3 = np.array([0.1,0.2])
A3 = np.dot(Z2,w3) + b3
Y = identity_function(A3)
Y

将上面的整合一下
#整理
#定义一个字典,将权重全部放入字典
def init_network():
network = {}
network['w1'] = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])
network['w2'] = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])
network['w3'] = np.array([[0.1,0.3],[0.2,0.4]])
network['b1'] = np.array([0.1, 0.2, 0.3])
network['b2'] = np.array([0.1,0.2])
network['b3'] = np.array([0.1,0.2])
return network
#定义函数,导入权重与x,得到Y
def forward(network,x):
w1,w2,w3 = network['w1'],network['w2'],network['w3']
b1,b2,b3 = network['b1'],network['b2'],network['b3']
A1 = np.dot(x,w1) + b1
A2 = np.dot(A1,w2) + b2
A3 = np.dot(A2,w3) + b3
Y = identity_function(A3)
Y
#调用函数 network = init_network() X = np.array([1.0,0.5]) Y = forward(network,X)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要介绍了使用pyscript在网页中撰写Python程式的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
字符串英文名string,简称str。 字符串就是由一个个字符连接起来的组合, 你平时所见的字母、数字、汉字、符号都是字符。
在Python中,如果我们想要在遍历一组数据的过程中,对这组数据进行修改,通常会出现许多问题,例如对列表进行上述操作时, 会忽略部分数据;遍历字典时,不能修改数据。本文针对这些问题,提出了多种解决方案。
Python bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
这篇文章主要介绍了关于tensorflow权重文件的解读,具有很好的参考价值,希望对大家有所帮助。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008