广州网站开发哪家专业江阴企业网站制作
广州网站开发哪家专业,江阴企业网站制作,wordpress 阿里云景象,网页设计制作成品Python中的Numpy的基本知识
Copyright Microsoft Corporation. All rights reserved. 适用于License版权许可 更多微软人工智能学习资源#xff0c;请见微软人工智能教育与学习共建社区
以下列出一些关于Numpy矩阵运算的基本知识和坑点。
首先需要在命令行中安装Num…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基本矩阵运算
anp.array([1,2,3,4,5,6]).reshape(2,3)
bnp.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这个函数名字迷惑了它不是点乘的意思。
anp.array([1,2,3])
bnp.array([1,1,1]).reshape(1,3)
print(a.shape)
print(a*b)
aa.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) wnp.array([1,2,3,4,5,6]).reshape(3,2)
[[1 2][3 4][5 6]]b(3x1) bnp.array([1,2,3]).reshape(3,1)
[[1][2][3]]x(2x4)(2个特征值,4个样本) xnp.array([2,3,4,5,6,7,8,9]).reshape(2,4)
[[2 3 4 5][6 7 8 9]]cnp.dot(w,x)
[[14 17 20 23][30 37 44 51][46 57 68 79]]zcb 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]]ynp.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(axis1,keepdimsTrue)/4 4是样本数。axis1, 按列相加即一行内的所有列元素相加。除以4是广播。
[[15.][38.][61.]]dwnp.dot(dz,x.T)/4 x.T是x的转置。除以4是广播。 dz3x4, x.T4x2, 结果是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]]点击这里学习更多神经网络基本课程 点击这里提交问题与建议
联系我们: msraeduhubmicrosoft.com 学习了这么多还没过瘾怎么办欢迎加入“微软 AI 应用开发实战交流群”跟大家一起畅谈AI答疑解惑。扫描下方二维码回复“申请入群”即刻邀请你入群。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87876.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!