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

  • 增值税电子发票怎么领用
  • 全国增值税发票查验平台
  • 个人开发选项
  • 个人出售二手房要交增值税吗
  • 异地预缴怎么做账
  • 小微企业税务服务站
  • 员工补偿金是按上十二个月的平均工资
  • 出口的港杂费包括哪些
  • 第一季度亏损第=季度盈利但累计还是亏损要交所得税吗?
  • 技术转让所得免征企业所得税
  • 房贷抵税如何申请流程
  • 所得税汇算清缴账务处理
  • 增值税补交还有没有责任
  • 核定征收企业所得税率是多少
  • 报销凭证找不到了怎么办
  • 运费成本会计分录
  • 出口不退税怎么做账
  • 自开租赁费发票税率是多少?
  • 增值税发票抵扣期限最新规定
  • 发票数量能开0.0几吗
  • 房地产企业扣除项目
  • 公司注销后款未收完怎么办
  • 银行短期理财利息怎么算
  • 工会费是税前扣除还是税后扣除
  • 存货跌价准备会计科目编码
  • 先收到发票后到货分录
  • 债券分期还本利息怎么算
  • caxa电子图板2007教程
  • 设置bios 密码
  • 股东退股资金如何返还
  • php代码封装成dll
  • 应用程序无法正常启动0xc000012d
  • executor进程
  • php生成csv文件
  • 花卉绿萝的养殖方法
  • 递归 php
  • 企业借款会计处理
  • vue发送数据
  • 当年盈余资金计算公式
  • 如何开启framework 3.5
  • 企业解除人员什么意思
  • Http协议之Content-Type理解
  • ls -lh命令
  • 解压.xz文件命令
  • php curlfile
  • ps打不出字怎么回事
  • 固定资产改造替换
  • 公司缴纳社保应该怎么做账
  • 车费增值税税率
  • 车间领用材料应编制什么凭证
  • 多付款退回怎样写说明
  • 投资性房地产在建期间需要摊销吗
  • 银行对账单可以作为原始凭证入账吗
  • sql主键是什么意思
  • 存货周转率是指企业某一会计
  • 幼儿园的经费支出主要包括哪几个方面
  • 残疾人工资加计扣除包括社保吗
  • 外汇收入需要缴纳增值税吗
  • 事业单位破产清算开户流程
  • 递延所得税会计处理全过程
  • 总公司与分公司账务处理
  • 金融存款利率
  • 发票超过密码区一点点
  • 营业外收入明细账图片
  • 旅游企业相关服务案例
  • 明细账的作用
  • mysql查询结果输出
  • mysql如何列转行
  • win8系统中断怎么解决
  • win8系统怎么重置
  • win8升级win10系统会卡吗
  • winxp系统桌面图片
  • 在windows 7中任务栏儿
  • Xp输入法不见了
  • linux的top参数
  • 在ubuntu上安装apache
  • win8.1系统更新
  • 清除cookie是什么意思
  • 信息报送条例
  • 2018年建筑业增值税税率变更文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设