神经网络基本原理简明教程-0-Python-Numpy库的点滴

Python中的Numpy的基本知识

Copyright © Microsoft Corporation. All rights reserved.
适用于License版权许可
更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区

以下列出一些关于Numpy矩阵运算的基本知识和坑点。

首先需要在命令行中安装Numpy库和绘图库(可选):

pip install numpy
pip install matplotlib

然后在python文件的第一行,加入对它们的引用:

import numpy as np
import matplotlib.pyplot as plt
  • 基本矩阵运算
a=np.array([1,2,3,4,5,6]).reshape(2,3)
b=np.array([1,1,1,1,1,1]).reshape(2,3)print("a:")
print(a)print("b:")
print(b)print("a*b:")
print(a*b)print("np.multiply(a,b):")
print(np.multiply(a,b))print("np.dot(a,b.T)")
print(np.dot(a,b.T))# 以下这个命令会出错
print(np.dot(a,b))

结果:

a:
[[1 2 3][4 5 6]]
b:
[[1 1 1][1 1 1]]
a*b:
[[1 2 3][4 5 6]]
np.multiply(a,b):
[[1 2 3][4 5 6]]
np.dot(a,b.T)
[[ 6  6][15 15]]

可以看到,a*b和np.multiply(a,b)的作用是一样的,都是点乘,即两个矩阵中相对应位置的数值相乘,element wise operation。它的输出与相乘矩阵的尺寸一致。

而np.dot是标准的矩阵运算,。如果输入是(3x2)x(2x4),则输出为3x4。要求a的列数和b的行数一样才能相乘,所以我们把b转置了一下,b本身是2行3列,b.T就是3行2列,a是2行3列,结果是2行2列。所以,一定不要被np.dot这个函数名字迷惑了,它不是点乘的意思。

a=np.array([1,2,3])
b=np.array([1,1,1]).reshape(1,3)
print(a.shape)
print(a*b)
a=a.reshape(3,1)
print(a.shape)
print(a*b)

结果:

(3,)
[[1 2 3]]
(3, 1)
[[1 1 1][2 2 2][3 3 3]]

第一次定义a时,是一个1维列向量,shape=(3,),用a*b得到的结果是shape=(1,3)的矩阵[[1 2 3]]。
后来把a.reshape(3,1)3行1列的二维矩阵,虽然表面看起来形式没变,但是在与b点乘后,得到了一个(3,3)的矩阵。
为了避免一些错误,最好在每次矩阵运算前,都把两个矩阵reshape成一个二维矩阵(或多维矩阵)。

神经网络中的计算过程

  • w=(3x2)
    w=np.array([1,2,3,4,5,6]).reshape(3,2)
[[1 2][3 4][5 6]]
  • b=(3x1)
    b=np.array([1,2,3]).reshape(3,1)
[[1][2][3]]
  • x=(2x4)(2个特征值,4个样本)
    x=np.array([2,3,4,5,6,7,8,9]).reshape(2,4)
[[2 3 4 5][6 7 8 9]]
  • c=np.dot(w,x)
[[14 17 20 23][30 37 44 51][46 57 68 79]]
  • z=c+b = np.dot(w,x) + b
    注意:这里加法有对b的列广播(自动扩充b为4x3,通过复制b的值为3列)
b=
[[1 1 1 1][2 2 2 2][3 3 3 3]]z=
[[15 18 21 24][32 39 46 53][49 60 71 82]]
  • y=np.array([6,5,4,3]).reshape(1,4)
    4个样本的标签值
[[6 5 4 3]]
  • dz = z - y
    注意:这里减法有对z的广播(通过复制y的值为3行)
z=
[[15 18 21 24][32 39 46 53][49 60 71 82]]y=
[[6 5 4 3][6 5 4 3][6 5 4 3]]dz=
[[ 9 13 17 21][26 34 42 50][43 55 67 79]]
  • db = dz.sum(axis=1,keepdims=True)/4
    4是样本数。axis=1, 按列相加,即一行内的所有列元素相加。除以4是广播。
[[15.][38.][61.]]
  • dw=np.dot(dz,x.T)/4
    x.T是x的转置。除以4是广播。 dz=3x4, x.T=4x2, 结果是3x2,正好是w的shape。
[[ 57.5 117.5][143.  295. ][228.5 472.5]]
  • w = w - 0.1*dw
[[ -4.75  -9.75][-11.3  -25.5 ][-17.85 -41.25]]
  • b = b - 0.1*db
[[-0.5][-1.8][-3.1]]

点击这里学习更多神经网络基本课程
点击这里提交问题与建议

联系我们: msraeduhub@microsoft.com
学习了这么多,还没过瘾怎么办?欢迎加入“微软 AI 应用开发实战交流群”,跟大家一起畅谈AI,答疑解惑。扫描下方二维码,回复“申请入群”,即刻邀请你入群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络基本原理简明教程-0-基本函数导数公式

基本函数导数公式 Copyright © Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源,请见微软人工智能教育与学习共建社区 如何浏览本系列教程 由于里面包含了大量必要的数学公式,都是用LaTex格式编写…

微软发布人工智能教育与学习共建社区

步入2019,人工智能(Artificial Intelligence)的浪潮依然汹涌,各国对于AI人才的需求进一步加大:2月,美国总统特朗普签署行政命令,正式启动美国人工智能计划;加拿大正通过“全球技能战…

流量复制_快速体验之《gor+diffy实现线上流量复制到测试环境》

对于没有副作用的接口(重复发送不会产生两份数据、不会产生多余的监控统计等等),就可以用这种方式方便的做回归测试。 部署三个不接外部流量的服务,两份老版本、一份新版本,把生产环境的流量复制到 Diffy 上。 如果生产环境支持通过请求头之类…

顶级程序员的心得 –– Coders at Work

顶级程序员的心得 –– Coders at Work说明:这篇文章是我 2010 年的原创,但是发现 csdn 的版本把格式全部搞坏了,原文在这里 我2009年读了 “Coders at Work”, 这是作者对15 位顶级程序员的采访, 总共600页。 从采访的模式看&…

springboot 技术图谱_java后台(Springboot)开发知识图谱高频技术汇总-学习路线...

【原创】java后台(Springboot)开发知识图谱&&高频技术汇总1.引言:学习一个新的技术时,其实不在于跟着某个教程敲出了几行、几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开…

CSDN 原力 -- beta 测试中

更新 2022/8: 我们把原力等级和 “学习成就” 结合起来了。 请看: http://edu.csdn.net/me/softwareteacher 2022/7: 能用算法来判定一个 IT技术博客的质量么? 我们发布了博客质量分 API https://www.csdn.net/qc 大家可以去试一试。 2022/6&#xff1…

华为的涉外知识产权工程师_华为法务社招 | 岗位:高级知识产权工程师

//岗位一:高级知识产权工程师(网联车)//工作地点:上海岗位职责1、 负责智能车/电动车业务领域的专利包管理,为专利规划与分析,申请布局,授权应用等全流程提供专业服务;协助研发部门挖掘专利idea&#xff1b…

2021 部分团队的年终总结

博客主站: 这是 CSDN 的核心业务,持续投入,念念不忘,必有回响。 https://blog.csdn.net/weixin_42481955/article/details/121942860 社区:我们想让社区成为 IT 人的 ‘票圈’ 和 ‘公号’, 目前只是迈出…

gtx1660是什么级别的_GTX1660Ti到底属于什么系列?Nvidia一句话定性了

原标题:GTX1660Ti到底属于什么系列?Nvidia一句话定性了目前大家已经能够从不少渠道买到Nvidia最新的GTX 1660 Ti显卡了,娱乐大师将近20万的分数可以说确实挺不错,而基于图灵构架的它在玩游戏上面也丝毫不弱于GTX 1070,…

博客写作在App

测试在App 上写作博客。 今天和公司的小伙伴去山里总结工作讨论新年的计划。 1)抓住历史给开发者的机遇 2)聚焦,做出非常高质量的产品,体验和运营。做全行业第一。做最好的开发者内容和生态平台。 3)基础要打牢&#x…

C笔记 -- 一个为 IT人士打造的笔记工具

立即下载: https://plugin.csdn.net/chrome-index-help C笔记 讨论社区:https://bbs.csdn.net/forums/placard?category0&typeId23466 设想我们有这样的工具,你会使用么? 能帮助你学习么? 2022 年 9 月 28 日更…

2022年上半年部分团队的总结

CSDN 是中国 IT 人士学习,成长,成功的平台。 平台有很多小团队,不断地开发出很多小功能,运营活动,那么,半年过去了,大家做得怎么样呢? 我们看看今年上半年各团队的总结:…

参加 CSDN 一线客服工作的经历

在工位上得到的用户反馈 我加入 CSDN 后,先是远程工作,然后几经周折,终于来到 CSDN 北京总部的办公室,公司的同事为了让我尽快了解用户的心声,把我的工位安排在这个 《用户心声》 大屏幕的下方,我经常可以…

linux+mysql登录日志_Linux查看登录日志

lastlog打印系统账号最近一次的登录记录情况,解析的是/var/log/lastlog文件,它是一个data file类型的文件,文本模式打开无法正常显示。Username Port From Latestroot pts/0 171.83.37.215 Sat Jan 9 17:23:53 0800 2021bin **Never logged in**daemon **Never logged in**adm …

用户调查:给粉丝群发消息,红包,打赏的一些想法

CSDN 粉丝互动,红包,打赏的一些想法 2022/11/15 更新: 基于用户的投票和反馈,我们做了下面的更新: 1)会员每天和陌生人的发信息上限由 5 条升级为 10 条 2)会员增加一次粉丝群发的机会 3&#…

看球二三事 - 世界杯征文

征文活动链接: https://bbs.csdn.net/topics/609601920 在过期报纸上看 1982 年的世界杯,当时我们家里没有电视,晚上的时候听到马路对面的房子里传来惊呼声,也不知道为啥。 1983 年的春节前,家里要打扫房间&#xff…

vue隐藏浏览器_一分钟学会Vue的条件渲染和列表渲染

介绍之前一段时间由于工作很忙,没有时间继续学习Vue,今天算是继续对之前的学习进行补充了,今天要学习的便是Vue的条件渲染和列表渲染,我们将讨论if、if-else、if-else-if,show等。在列表渲染中,我们将讨论如…

mysql索引背后的数据结构_图解Mysql索引的数据结构!看不懂你来找我

听说微信搜索《Java鱼仔》会变更强哦!本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看哦(一)关于索引索引是帮助Mysql更加高效获取数据的一种数据结构,索引的使用很简单,但是如果不能理解索引…

常见的字符函数与字符串函数介绍(1)

常见的字符函数与字符串函数介绍 前言 C语言中对字符与字符串的处理很是频繁,但是C语言中并没有字符串类型的变量,字符串通常存放在常量字符串或者字符数组中。字符串常量适用于那些对它不做任何修改的字符串函数。 函数功能简介与再实现 1、 strlen…

postman raw带文件_postman raw模拟各种http post请求

在url或者query里面传递参数这个最简单http://localhost:5000/queryhttp://localhost:5000/query/xxxhttp://localhost:5000/query/idxxx上传表单key-value数据1.使用自带的功能body设置header设置2.使用raw来模拟body设置header设置不变上传单个文件1.使用自带功能body设置hea…