位置: 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前端面试题目)

  • 微信转账后对方没收,然后删除,钱会退回吗(微信转账后对方不发货怎么办)

    微信转账后对方没收,然后删除,钱会退回吗(微信转账后对方不发货怎么办)

  • 华为MateX2后置摄像头有哪些拍摄功能

    华为MateX2后置摄像头有哪些拍摄功能

  • VIVOX21手机中病毒怎么办(vivo手机常见的30个故障)

    VIVOX21手机中病毒怎么办(vivo手机常见的30个故障)

  • 抖音蓝v有什么好处吗(抖音蓝v有什么好处和坏处)

    抖音蓝v有什么好处吗(抖音蓝v有什么好处和坏处)

  • 微信朋友圈怎么删除评论(微信朋友圈怎么发长视频教程)

    微信朋友圈怎么删除评论(微信朋友圈怎么发长视频教程)

  • 快手如何开通闪电购(快手如何开通闪购)

    快手如何开通闪电购(快手如何开通闪购)

  • ios第三方软件黑色打不开(苹果手机第三方黑名单软件)

    ios第三方软件黑色打不开(苹果手机第三方黑名单软件)

  • 苹果11手机屏幕旋转在哪里设置(苹果11手机屏幕不灵敏怎么校正)

    苹果11手机屏幕旋转在哪里设置(苹果11手机屏幕不灵敏怎么校正)

  • 苹果手机微信朋友圈卡怎么回事(苹果手机微信朋友圈置顶怎么设置)

    苹果手机微信朋友圈卡怎么回事(苹果手机微信朋友圈置顶怎么设置)

  • 主动加人微信有记录吗(主动加人微信有提示吗)

    主动加人微信有记录吗(主动加人微信有提示吗)

  • 个别网页打不开是什么原因(个别网页打不开,换网络能打开)

    个别网页打不开是什么原因(个别网页打不开,换网络能打开)

  • 文件怎么命名(桌面上的文件怎么命名)

    文件怎么命名(桌面上的文件怎么命名)

  • 动态锁屏壁纸怎么没有声音(动态锁屏壁纸怎么关闭)

    动态锁屏壁纸怎么没有声音(动态锁屏壁纸怎么关闭)

  • 微信群里发不出去消息是怎么回事(在微信群里发不出去信息是怎么回事)

    微信群里发不出去消息是怎么回事(在微信群里发不出去信息是怎么回事)

  • 微信群邀请多久失效(微信加人拉群一个35元)

    微信群邀请多久失效(微信加人拉群一个35元)

  • mate30支持面部解锁吗(mate30 面容)

    mate30支持面部解锁吗(mate30 面容)

  • 小米8 6g跟8g差距(小米8比小米6提升多少)

    小米8 6g跟8g差距(小米8比小米6提升多少)

  • 苹果手机无面容是什么意思(苹果手机无面容有什么影响吗?)

    苹果手机无面容是什么意思(苹果手机无面容有什么影响吗?)

  • 苹果手机怎样设置天气城市(苹果手机怎样设置来电铃声)

    苹果手机怎样设置天气城市(苹果手机怎样设置来电铃声)

  • Win7纯净版系统解决使命召唤7 exe cannot find zone问题(win7纯净版系统安装教程)

    Win7纯净版系统解决使命召唤7 exe cannot find zone问题(win7纯净版系统安装教程)

  • Vue:extends继承&组件复用性(vue组件继承element并重写方法)

    Vue:extends继承&组件复用性(vue组件继承element并重写方法)

  • MySQL 服务器调优(mysql 服务器配置)

    MySQL 服务器调优(mysql 服务器配置)

  • 工业企业应缴纳的税金有哪些
  • 增值税附加税的会计处理
  • 个体户营业税怎么算
  • 一张报关单可以分两次退税吗
  • 黄金消费税计税依据
  • 所有者权益是
  • 文化事业建设费怎么申报
  • 基本户购买支票需要什么
  • 公司分红股需要交税吗
  • 个人独资核定征收和查账征收的区别
  • 核定征收企业股权转让所得税
  • 土地增值税属于所得税类
  • 安全费用提取使用管理办法2022 136
  • 三方协议怎么入账
  • 合并重组案例
  • 外贸企业出口退税出口明细申报表
  • 利润表中的上期金额怎么填?
  • 进项税暂估收入的税务处理
  • 税务现金流
  • 买粽子会计怎么做账
  • 物流企业的大宗商品仓储用地是什么意思
  • 非居民纳税人怎么纳税
  • 进口货物退税流程
  • 利息保障倍数计算公式资本化利息
  • 固定资产的折旧从什么时候开始
  • 电脑开始菜单在右边怎么调回来
  • 代发工资要缴纳社保吗
  • vue使用方法
  • windows待机密码
  • 固定资产减少和固定资产折旧
  • php exit绕过
  • php判断useragent
  • 材料成本差异的会计分录
  • 深度学习数据集—水果数据集大合集
  • 为etc充值
  • 厂区租赁 法律规定
  • 异地工程预缴税款时间
  • About BitRock
  • 分公司可以独立开票吗
  • 库存商品可以领用加工吗
  • MySQL中distinct语句的基本原理及其与group by的比较
  • mysql编程一般步骤
  • 生产成本与管理企业经营实战感想
  • 现金流量明细表怎么看
  • 发票开具流程是?
  • 个税申报工资比实发工资高
  • 收到现金长时间不付款
  • 建筑企业预缴税款怎么算
  • 应交税金期末为负数
  • 进项税额大于销项税额期末留抵
  • 计量差错引起的原材料盘亏
  • 企业发展基金返还条件
  • 手机开个人发票怎么开
  • 收到货款会计分录怎么写
  • 主营业务成本和管理费用的区别
  • 外贸公司出口退税实例
  • 食品算日用品吗
  • 企业对外购和自己的区别
  • 去年未开票收入未申报
  • freebsd操作命令
  • win8网页打不开
  • 安装xp后win7不能用怎么办
  • xp系统怎么卸载程序
  • win8.1使用教程
  • windows 开发工具
  • 简述在windows中创建用户的步骤
  • nodejs的socket
  • Node.js connect ECONNREFUSED错误解决办法
  • redhat linux6.5安装教程
  • python备份列表l
  • nodejs抓取网页内容
  • javascript基本语句
  • android入门教程
  • 王军调研地税局的职务
  • 发票查询为什么查不出来
  • 宜兴税务局长郁岚
  • 国家税务总局朝阳税务局
  • 电子发票美元如何查询
  • 怎么登陆国税网
  • 代账公司盈利水平如何
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设