Python利用numpy实现三层神经网络的示例代码
作者:大呼啦 发布时间:2021-07-29 22:04:46
标签: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)
来源:https://blog.csdn.net/HHsHH1234/article/details/116174513


猜你喜欢
- 一 导言设计一个好的用户系统往往不是那么容易,Django提供的用户系统可以快速实现基本的功能,并可以在此基础上继续扩展以满足我们的需求。先
- 本文实例讲述了Python求两个文本文件以行为单位的交集、并集与差集的方法。分享给大家供大家参考。具体实现方法如下:s1 = set(ope
- 做表单验证的时候是否会碰到验证某个输入框内只能填写数字呢,仅允许输入整数数字或者带小数点的数字。下面这段代码也许能帮到你!通过对当前输入框定
- 本文实例为大家分享了python多进程共享变量的相关代码,供大家参考,具体内容如下from multiprocessing import P
- 用python爬取网页表格数据,供大家参考,具体内容如下from bs4 import BeautifulSoup import reque
- 一个简单的tokenizer分词(tokenization)任务是Python字符串处理中最为常见任务了。我们这里讲解用正则表达式构建简单的
- ADO也提供更有效率方法来取得数据。GetRows 方法传回一个二维的数组变量,每一行对应Recordset中的一笔记录,且每
- python之循环遍历关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历。在实践中有时会遇到删除列表中的元素
- 1、应该将 CSS 放置于结构的上方(一般放置于 head 元素内)。CSS 是解释型语言,Firefox 和 IE 在等待 CSS 传输完
- 导入excel文件前言两种导入文件的方法:form表单和el-upload第一种方法:form表单一、文件上传的三要素是什么?文件上传的三要
- 最近利用tkinter+python+pyinstaller实现了小工具的项目,在此记录下pyinstaller相关参数以及爬过的坑。一、p
- 语法df.drop_duplicates(subset = None,
- 使用torch.utils.data.Dataset类 处理图片数据时,1. 我们需要定义三个基本的函数,以下是基本流程class our_
- type()动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个Hello的cla
- 在安装tensorflow完成后,import tensorflow as tf出现问题,问题如下:>>> import
- 观察一下”插入排序“:其实不难发现她有个缺点:如果当数据是”5, 4, 3, 2, 1“的时候,此时我们将“无序块”中的记录插入到“有序块”
- 前沿以前go工程都是在我mac上打包成镜像然后再推到我的docker hub上去,每次更新都要经过打包->推送到dockert仓库-&
- 学校让我们在放假期间自觉Python,对于Python我是小白的不能再小白了。一切从头开始,找学习资料,看视频教程光看书看视频也不行还要自己
- 什么是迭代器?迭代器是带有next方法的简单对象,当然也要实现__iter__函数。迭代器能在一序列的值上进行迭代,当没有可供迭代时,nex
- 1.Quiz有如下一个例子:package mainimport ("encoding/json""fmt&q