位置: IT常识 - 正文

神经网络Python实现(9行代码)(神经网络模型python)

编辑:rootadmin
神经网络Python实现(9行代码)

推荐整理分享神经网络Python实现(9行代码)(神经网络模型python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:神经网络python代码,神经网络python代码,python神经网络例子,python神经网络教程,python3神经网络,神经网络python代码,python神经网络例子,神经网络python代码,内容如对您有帮助,希望把文章链接给更多的朋友!

1. 神经网络简介

神经网络由输入层、输出层和之间若干层(一层或多层)隐含层构成,每一层可以有若干个节点。层与层之间节点的连接状态通过权重来体现。

 下面介绍一下单个神经元:

输入节点:x1,x2

权重:w1,w2

偏置:b

激活函数:h()

输出结果:y

a = x1*w1 + x2*w2 + b

 2. 代码解释

这段代码是在GitHub上找到的,链接如下:

https://github.com/miloharper/simple-neural-network

作者这样描述这段代码:

A neural network written in Python, consisting of a single neuron that uses gradient descent to learn.

一种用Python编写的神经网络,它是由一个使用梯度下降学习的神经元组成。

from numpy import exp, array, random, dottraining_set_inputs = array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1]])training_set_outputs = array([[0, 1, 1, 0]]).Trandom.seed(1)synaptic_weights = 2 * random.random((3, 1)) - 1for iteration in range(10000): output = 1 / (1 + exp(-(dot(training_set_inputs, synaptic_weights)))) synaptic_weights += dot(training_set_inputs.T, (training_set_outputs - output) * output * (1 - output))print( 1 / (1 + exp(-(dot(array([1, 0, 0]), synaptic_weights)))))

① from numpy import exp, array, random, dot

神经网络Python实现(9行代码)(神经网络模型python)

#从Numpy库中调用exp(指数函数)、array(数组)、random(随机函数)、dot(矩阵相乘函数)

② training_set_inputs = array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1]])

#神经网络训练部分的输入

③ training_set_outputs = array([[0, 1, 1, 0]]).T

#神经网络训练部分的输出,.T表示矩阵转置

④ random.seed(1)

#使用随机函数生成随机数(这一行代码可以省略,目的只是保证测试结果与作者一致)

⑤ synaptic_weights = 2 * random.random((3, 1)) – 1

⑥ for iteration in range(10000):⑦   output = 1 / (1 + exp(-(dot(training_set_inputs, synaptic_weights))))

#使用for语句循环10000次,将训练集的输入和权重采用.dot进行矩阵相乘,将相乘得到的结果输入到sigmoid函数,然后将得到的结果赋值给output

⑧   synaptic_weights += dot(training_set_inputs.T, (training_set_outputs - output) * output * (1 - output))

#权重的调整采用“误差加权导数”公式(梯度下降)

⑨ print (1 / (1 + exp(-(dot(array([1, 0, 0]), synaptic_weights))))) #[0.99993704]

#synaptic_weights是调整之后的最终权重,数组(矩阵)[1,0,0]与这个权重矩阵通过dot函数进行相乘,将相乘的结果作为输入引入到sigmoid函数,得到最终的结果

这段代码的模型如下图所示,有三个输入,一个输出,简单来说,神经网络就是一个通过训练集输入的数据不断地迭代更新权重的模型,使之输出更接近“标准答案”,这里推荐看一下B站上的一个有关神经网络的短视频:

一分钟告诉你什么是神经网络

 这9行代码就是把上图的1~4组数据作为训练集进行模型训练,不断地更新权重使其输出更接近训练集中给出的输出标签(标准答案),然后将最后一组数据当做测试集来检测模型的准确度,它最后的结果输出是0.99993704,也是约等于1,其实不难发现,4组测试数据的输出都与第一个输入数据相同,所以说神经网络模型测试得到了正确的结果,这也是说明神经网络有预测结果的作用。

本文链接地址:https://www.jiuchutong.com/zhishi/300203.html 转载请保留说明!

上一篇:【js】超详细js函数基础()

下一篇:2023前端面试题(硬货-持续更新)(2023前端面试题目)

  • 小米11支持红外人脸识别吗(小米11支持红外线遥控功能吗)

    小米11支持红外人脸识别吗(小米11支持红外线遥控功能吗)

  • 华为荣耀10手机音量小怎么办(华为荣耀10手机壳)

    华为荣耀10手机音量小怎么办(华为荣耀10手机壳)

  • 微信里面打不开拼多多链接(微信里面打不开网页怎么回事)

    微信里面打不开拼多多链接(微信里面打不开网页怎么回事)

  • 抖音由于对方的隐私设置,你无法发送消息(抖音由于对方的隐私设置,你无法私信)

    抖音由于对方的隐私设置,你无法发送消息(抖音由于对方的隐私设置,你无法私信)

  • 腾讯会议会自动打开摄像头吗(腾讯会议会自动结束吗)

    腾讯会议会自动打开摄像头吗(腾讯会议会自动结束吗)

  • iPhoneXR无法系统更新(xr无法更新系统)

    iPhoneXR无法系统更新(xr无法更新系统)

  • 硬盘分区全部没了(硬盘分区没有)

    硬盘分区全部没了(硬盘分区没有)

  • 华为手机怎么监听另一个华为手机(华为手机怎么监控华为平板)

    华为手机怎么监听另一个华为手机(华为手机怎么监控华为平板)

  • 没有鼠标怎么复制粘贴(没有鼠标怎么复制图片)

    没有鼠标怎么复制粘贴(没有鼠标怎么复制图片)

  • 快手长腿瘦身特效在哪(快手长腿瘦身特效跟以前不一样)

    快手长腿瘦身特效在哪(快手长腿瘦身特效跟以前不一样)

  • switch刚充电开不了机(switch充电开机没反应)

    switch刚充电开不了机(switch充电开机没反应)

  • 苹果自带的天气为什么显示不出来(苹果自带的天气预报准吗)

    苹果自带的天气为什么显示不出来(苹果自带的天气预报准吗)

  • 苹果电池突然百分之一(苹果手机电池突然变成100%)

    苹果电池突然百分之一(苹果手机电池突然变成100%)

  • 怎么卸载win10系统(怎么卸载win10系统更新文件)

    怎么卸载win10系统(怎么卸载win10系统更新文件)

  • 可以在电脑上换微信头像吗(可以在电脑上换字体吗)

    可以在电脑上换微信头像吗(可以在电脑上换字体吗)

  • 红米note8怎么打开悬浮球(红米note8怎么打开小窗口)

    红米note8怎么打开悬浮球(红米note8怎么打开小窗口)

  • 抖音申请内测要多久(抖音申请内测几天通过)

    抖音申请内测要多久(抖音申请内测几天通过)

  • 备忘录怎么添加图片(备忘录怎么添加表格)

    备忘录怎么添加图片(备忘录怎么添加表格)

  • 淘宝补发的东西还要付钱吗(淘宝补发的东西一直不发货)

    淘宝补发的东西还要付钱吗(淘宝补发的东西一直不发货)

  • 数据加密的基本功能包括(数据加密的基本模型)

    数据加密的基本功能包括(数据加密的基本模型)

  • 如何查看苹果使用的是不是高通的(如何查看苹果使用情况)

    如何查看苹果使用的是不是高通的(如何查看苹果使用情况)

  • iphonexr是什么基带(iphonexr是用的什么基带)

    iphonexr是什么基带(iphonexr是用的什么基带)

  • 360安全卫士如何下载(360安全卫士如何关闭)

    360安全卫士如何下载(360安全卫士如何关闭)

  • qq更新资料失败(qq更新资料失败是什么原因)

    qq更新资料失败(qq更新资料失败是什么原因)

  • 简单了解Linux中用于配合管理定时任务的atrm与batch命令(linux中的)

    简单了解Linux中用于配合管理定时任务的atrm与batch命令(linux中的)

  • 无线路由器温度过高怎么办(无线路由器温度范围)

    无线路由器温度过高怎么办(无线路由器温度范围)

  • 【人工智能与深度学习】监督方法的成功故事: 前置训练(人工智能 深度)

    【人工智能与深度学习】监督方法的成功故事: 前置训练(人工智能 深度)

  • 消费税和所得税的关系
  • 一般纳税人应纳税额减征额怎么算
  • 自然人税收管理系统扣缴客户端
  • 附加税减免吗
  • 减半征收附加税会计分录
  • 工伤事故赔偿项目表
  • 在建工程转固定资产的条件
  • 固定资产清理营业外支出汇算清缴需要调增吗
  • 建筑类没收入怎么填
  • 增值税发票本月没用完可以下月用吗
  • 个人保证金业务
  • 补交社保后的个税怎么交
  • 反写是清卡的意思吗
  • 业务招待费在税法上的规定
  • 环保税优惠问题
  • 货物出库的会计分录
  • 生育津贴申请表打印
  • 房地产会计工资一般多少
  • 固定资产转出是什么意思
  • 外贸企业红字发票怎么冲
  • 应交增值税的完整计算公式是什么
  • 应缴纳增值税的公式
  • nkvmon.exe - nkvmon是什么进程 有什么用
  • 房地产项目如何通过抖音宣传
  • 税前可扣除的税费
  • php追加写入
  • 原材料明细账有记税吗
  • 企业所得税合理方法包括
  • 融资租赁会计处理流程
  • 发票过账和不过账是什么意思
  • 自然人税收管理系统扣缴客户端怎么操作
  • vscode+cmake
  • php面向对象的三大特征
  • 办公室装修款怎么做账
  • 李牧其人
  • 【机器学习】python实现吴恩达机器学习作业合集(含数据集)
  • 为什么说网络安全靠人民
  • php str
  • 投资房地产的后续计量有哪些
  • windows where命令
  • 购进商品的运费怎么算
  • 简易计税办法计算的应纳税额可以抵扣吗
  • 二季度报表是累计数吗
  • uni-simple-router 跳转无效
  • 国库集中支付发送签收失败
  • 进项税额转出会计分录
  • 普通发票该可以抵扣吗
  • 预收账款期末余额在借方还是贷方
  • 无锡政府回购安置房
  • 进项的加计抵减怎么算
  • 商业印花税的计算公式
  • mysql性能问题
  • 企业与个人之间关系的理解
  • 小规模未达到起征点申报表怎么填
  • 工程设备公司经营范围
  • 销售折扣的账务处理有详细的计算过程
  • 应收分保合同准备材料
  • 金银首饰以旧换新增值税处理
  • 外埠存款主要使用范围
  • 国家法定滞纳金规定
  • win7系统出现蓝屏怎么进去桌面
  • pruttct.exe - pruttct是什么进程 有什么用
  • win8系统没有自带的游戏吗
  • python jieba用法
  • 酷狗模拟器
  • div的class有空格
  • for循环取数据
  • 详解HTTPS 的原理和 NodeJS 的实现
  • 使用jquery实现的项目
  • js实现拖拽元素改编顺序
  • 基于bootstrap的网站
  • jquery插件开发方法
  • ApplicationId与PackageName的区别
  • android设置音量
  • 国税局发票查验平台查询不到
  • 开量贩ktv一年能赚多少
  • 南京税务局几点下班
  • 怎么删除天眼查信息
  • 下岗的党员需要交党费吗
  • 完税证明在哪里查询打印
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设