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

  • 增值税专用发票丢失了要怎么处理
  • 多交企业所得税可以放弃退税吗
  • 合并报表是把资产负债表相加吗
  • 物业公司广告费返还会计分录
  • 不动产租赁服务属于现代服务吗
  • 公对公退款要交税吗
  • 代收的电费计入什么费用
  • 销项负数发票怎么做账
  • 电商相对于传统企业有哪些特点?
  • 另收取包装物押金
  • 金税盘没有及时清卡怎么办
  • 房产企业因资金问题退市
  • 英国租金收入所得税
  • 一般纳税人交增值税会计科目
  • 复利现值系数和普通年金现值系数关系
  • 水利事业单位基建并账分录怎么写?
  • 服装发票怎么进项抵扣
  • 职工报销差旅费会计科目
  • 电费冲销是什么意思
  • 生产企业的免抵退纳税申报,在财务做销售收入账务后
  • iphone怎么格式化掉所有内容和设置
  • 自用煤怎么入账
  • 利得和损失计入哪里
  • mac怎么创建icloud
  • 系统之家哪个系统比较好用
  • 甲方工程扣款如何处理
  • 什么是融资租赁型校园贷
  • 建筑公司预收账款一般是哪些
  • PHP:GregorianToJD()的用法_日历函数
  • 结转本年利润的分录怎么写
  • 新准则有哪些
  • framework教程
  • 测试费计入什么会计科目
  • html作业做网页
  • ai引领技术变革是什么
  • 手把手教你安装技嘉b550 master主板
  • php基于单例模式开发
  • phpcms怎么用
  • 小规模纳税人抵税是普票还是专票
  • 土方工程合同签了一般多久开工
  • 未开票收入如何做会计分录
  • 社保和公积金在不同单位交可以吗
  • 出租的厂房折旧记哪里
  • 帝国cms源码
  • js回调函数如何返回值
  • 一般纳税人专票认证抵扣流程
  • mysql写日志机制
  • 织梦怎么导入数据库
  • 政府无偿划转股权印花税
  • 设备购入后又退出怎么办
  • 清算时存货是否要交税
  • 房地产开发企业成本核算方法
  • 小规模纳税人地方教育费附加税率
  • 在建工程账务处理会计分录
  • 研发费用加计扣除新税收政策
  • 进项税额抵扣如何做账
  • 营改增后房地产企业如何开票
  • 固定资产没有发票
  • 购车是否有进项税额
  • 汇算清缴补交的所得税怎么记帐
  • 小规模纳税人公司注册条件
  • 服务器托管税率
  • 房地产开发企业增值税税率
  • sql server数据库数据备份
  • sql拆分函数
  • Internet Explorer 8(IE8)简体中文版de 卸载
  • 语音聊天能不能调出来
  • eclipse怎么创建安卓
  • cocos设置中文
  • 谷歌编程之夏2021
  • 搭建入门
  • [小权~编码路&Android] BroadcastReceiver应用详解
  • shell脚本替换文件中某个字符串
  • eclipse怎么写python程序
  • 用javascript
  • jquery动态添加和删除div
  • 购买服务合同模版
  • 税务部门政务公开
  • 京东商城发票查询
  • 税务局直属机构
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设