python制作神经网络_python_deeplearning02_使用python制作神经网络
20180421 qzd
ch02 - 使用python制作神经网络
构建框架
初始化函数 -- 设定输入层节点、隐藏层节点和输出层节点的数量。
训练 -- 学习给定训练集样本后,优化权重(权重--网络的核心)。
查询 -- 给定输入,从输出节点给出答案。
#neural network class definition
class neuralNetwork:
#initialise the neural network
def __init__():
pass
#train the neural network
def train():
pass
#query the neural network
def query():
pass
初始化网络
def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate ):
权重 -- 网络的核心
在输入层与隐藏层之间的链接权重矩阵W input_hidden,大小为hidden_nodes乘以input_nodes。
在隐藏层和输出层之间的链接权重矩阵W hidden_output,大小为hidden_nodes乘以output_nodes。
初始化权重
#self.wih = (np.random.rand(self.hnodes,self.inodes) - 0.5)
#self.who = (np.random.rand(self.onodes,self.hnodes) - 0.5)
self.wih = np.random.normal(0.0,pow(self.hnodes,-0.5),(self.hnodes,self.inodes))
self.who = np.random.normal(0.0,pow(self.onodes,-0.5),(self.onodes,self.hnodes))
查询网络
def query(self,inputs_list):
训练网络(权重部分)
第一部分,针对给定的训练样本计算输出。这与我们刚刚在query()函数上所做的没什么区别。
第二部分,将计算得到的输出与所需输出对比,使用差值来指导网络权重的更新。
完整的神经网络代码
import numpy as np
#scipy.special for the sigmoid function expit()
import scipy.special
#neural network class definition
class neuralNetwork:
#initialise the neural network
def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate ):
#set number of nodes in each input, hidden, output layer
self.inodes = inputnodes
self.hnodes = hiddennodes
self.onodes = outputnodes
#link weight matrices, wih and who
#weights inside the arrays are w_i_j, where link is from node i to node j in the next layer
# w11 w21
# w12 w22 etc
#self.wih = (np.random.rand(self.hnodes,self.inodes) - 0.5)
#self.who = (np.random.rand(self.onodes,self.hnodes) - 0.5)
self.wih = np.random.normal(0.0,pow(self.hnodes,-0.5),(self.hnodes,self.inodes))
self.who = np.random.normal(0.0,pow(self.onodes,-0.5),(self.onodes,self.hnodes))
#learning rate
self.lr = learningrate
#activation function is the sigmoid function
self.activation_function = lambda x:scipy.special.expit(x)
pass
#train the neural network
def train(self,inputs_list,targets_list):
#convert inputs list to 2d array
inputs = np.array(inputs_list,ndmin=2).T
targets = np.array(targets_list,ndmin=2).T
#calculate signals into hidden layer
hidden_inputs = np.dot(self.wih,inputs)
#calculate the signals emerging from hidden layer
hidden_outputs = self.activation_function(hidden_inputs)
#calculate signals into final output layer
final_inputs = np.dot(self.who,hidden_outputs)
#calculate the signals emerging from final output layer
final_outputs = self.activation_function(final_inputs)
#output layer error is the (target - actual)
output_errors = targets - final_outputs
#hidden layer error is the output_errors, split by weights, recombined at hidden nodes
hidden_errors = np.dot(self.who.T,output_errors)
#update the weights for the links between thehidden and output layers
self.who += self.lr *np.dot((output_errors * final_outputs*(1.0-final_outputs)), np.transpose(hidden_outputs))
#update the weights for the links between the input and hidden layers
self.wih += self.lr *np.dot((hidden_errors * hidden_outputs*(1.0 - hidden_outputs)),np.transpose(inputs))
pass
#query the neural network
def query(self,inputs_list):
#convert inputs list to 2d array
inputs = np.array(inputs_list,ndmin=2).T
#calculate signals into hidden layer
hidden_inputs = np.dot(self.wih,inputs)
#calculate the signals emerging from hidden layer
hidden_outputs = self.activation_function(hidden_inputs)
#calculate signals into final output layer
final_inputs = np.dot(self.who,hidden_outputs)
#calculate the signals emerging from final output layer
final_outputs = self.activation_function(final_inputs)
return final_outputs
#number of input, hidden and output nodes
input_nodes = 3
hidden_nodes = 3
output_nodes = 3
#learning rate is 0.3
learning_rate = 0.3
#create instance of neural network
n = neuralNetwork(input_nodes,hidden_nodes,output_nodes,learning_rate)
n.query([1.0,0.5,-1.5])
输出结果
array([[ 0.46356062],
[ 0.58538226],
[ 0.5905356 ]])
python制作神经网络_python_deeplearning02_使用python制作神经网络相关推荐
- python神经网络编程 pdf下载_Python神经网络编程 PDF 高质量完整版
给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python.神经网络.Python编程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小11.5 MB,塔里克·拉希德编写,目 ...
- 猴子?狒狒?傻傻分不清楚——制作tfrecord数据集并利用卷积神经网络训练实例
去年年底学习了深度学习的相关知识,但是寒假回来之后忘得也差不多了...为了巩固下所学知识,近期利用卷积神经网络做了一个小实例.卷积神经网络是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题 ...
- python神经网络编程 豆瓣,python神经网络图像分类
1.如何利用python实现神经网络 官方不支持,建议等支持吧. dll有自己版本对应的,必须使用专门为python3.4编译的dll(cv2.pyd),你拿python2.7的肯定用不了. 如果非要 ...
- Python深度学习之搭建小型卷积神经网络(Kaggle网站Dogs-vs-Cats数据集)
完全来源与<Python深度学习>中的例子,仅供学习只用. Cats vs. Dogs(猫狗大战)是Kaggle大数据竞赛的数据集,数据集由训练数据和测试数据组成,训练数据包含猫和狗各12 ...
- [Python人工智能] 一.TensorFlow环境搭建及神经网络入门
从本篇文章开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.第一篇文章主要讲解神经网络基础概念,同时讲解TensorFlow2.0的安装过程及基础用法,主要结合作者之前的博客和& ...
- 使用python自己搭建一个简单的BP神经网络
from numpy import exp,array,random,dot #import randomclass NeuralNetwork(object):def __init__(self): ...
- python调用报表制作工具_使用Python轻松制作漂亮的表格
Python太有用而且很方便 图表可以用matplotlib轻松制作,数值计算只要有numpy就行. 最近,Python被广泛用于机器学习系统的研究,甚至还能制作游戏. 我突然想知道:"是否 ...
- grad在python什么模块_深度学习(Deep Learning)基础概念1:神经网络基础介绍及一层神经网络的python实现...
此专栏文章随时更新编辑,如果你看到的文章还没写完,那么多半是作者正在更新或者上一次没有更新完,请耐心等待,正常的频率是每天更新一篇文章. 该文章是"深度学习(Deep Learning)&q ...
- python神经网络调节参数_神经网络进阶-用python实现一个完整的神经网络框架并在CIFAR10数据集上调参...
上一个博客中讲解了用python实现一个简单的两层神经网络,我们是把所有的网络层都直接写在了类中.但是作为一个神经网络框架,网络的结构应该是可以由使用者自定义的,这样一来也就不用为每个网络结构都重写所 ...
最新文章
- FFmpeg通过摄像头实现对视频流进行解码并显示测试代码(新接口)
- 独家 | 全面!手把手教你决策树可视化(附链接代码)
- 依赖类型dependency type在maven中的作用
- 一步一步webpart-webpart如何得到?(2)
- Unity游戏开发——C#特性Attribute与自动化
- springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
- centOS 6.0无法运行dump指令的解决方法
- android语音识别和合成第三方
- 2db多少功率_话筒的灵敏度:-58dB+(-)2dB表示什么意思,数字大的好,还是小的好呢?...
- 十大注意事项 防止系统重装时遭遇病毒
- Windowstelnet服务怎么开启 Win11telnet服务怎么开启详细介绍
- 20190818 On Java8 第八章 复用
- 【HDU1251+POJ2001+POJ3630】单词前缀问题整理
- mysql删除源码_mysql关于删除的命令实例源码删除数据库数据表等
- 国际h2真假u盘测试软件,u盘速度测试软件H2TEST
- 几种直方图均衡方法汇总
- 前端json文件模拟数据与后台交互
- Guass消元 poj 1830
- 【电脑一点通】如何快速切换Windows应用窗口
- 盘点2018年化工行业大事故!回顾那些令人心痛的瞬间......
热门文章
- 三代纠错软件LoRDEC安装和使用(0.6版本)
- java获取文件的所有者_java获取文件夹下所有文件的名称 | 星尘
- TensorFlow基础5-可训练变量和自动求导机制
- Linux环境编译qtmqtt,qtmqttclient
- 衡量微型计算机的性能指标参数有哪些,衡量计算机性能的主要技术指标有哪些?...
- tf.keras.activations.sigmoid 激活函数 示例
- python ffmpeg 视频转图片 视频转音频 播放音频 多张图片+音频转视频 多个视频合成一个视频 改变视频播放速度
- np.reshape()用法
- U-NET 图像预处理
- Linux/ubuntu server 18.04 安装远程桌面--vnc server