深度摸鱼入门
import numpy as np
a=np.array([1,2,3,4])
print(a)
[1 2 3 4]
import time
# this code is to compare the vectorization and for-loops
a=np.random.rand(1000000)
b=np.random.rand(1000000)
tic=time.time()
c=np.dot(a,b) # dian cheng in Chinese
toc=time.time()
print(c)
print("Vectorized version:"+str(1000*(toc-tic))+"ms")
c=0
tic=time.time()
for i in range(1000000):
c+=a[i]*b[i]
toc=time.time()
print(c)
print("For loop:"+str(1000*(toc-tic))+"ms")
# and we know how fast the vectorization can be than the for-loops
249857.1312811841
Vectorized version:1.0018348693847656ms
249857.13128117658
For loop:375.45204162597656ms
由此开始深度学习之路:
这是我的第一个jupyter note,是在用过matlab的mlx之后才开始用这个超级方便的工具,在开始之前,我希望读者可以先做到这几步:
第一步用jupyter notebook,先配好自动补全的环境:Jupyter Notebook 代码自动补全功能设置 - 知乎 (zhihu.com)
第二步学会写公式,在线LaTeX公式编辑器-编辑器 (latexlive.com)
第三步学会用英文表达变量名,百度翻译-200种语言互译、沟通全世界! (baidu.com)
好,我们下面接着向量化与for-loops的比较:
如果写成for-loops
u=np.zeros(rows,colomns)
for i in range(rows):
for j in range(colomns):
u[i]+=A[i][j]*v[j]
但如果写成vectorization,这样就可以了
u=np.dot(A,v)
又比如这个
你想得到,
如果你想用for-loops的话就只能这样,但我们可以直接用numpy的内置函数
u=np.zeros((n,1))
for i in range(n):
u[i]=math.exp(v[i])
这样显然更快:
import numpy as np
u=np.exp(v)
这些向量化的函数都会大大加快我们计算的速度,注意下面的v是vector的意思:
np.log(v) | np.abs(v) | np.maximun(v,0) | v**x | 1/v |
---|---|---|---|---|
lnx | 绝对值 | 同零相比最大的绝对值 | v^2 | 倒数 |
z=np.dot(w.T,X)+b
# 这里的numpy库中的点乘意思,w.T相当于np.transpose(w)即矩阵转置,b是一个常数
Broadcasting example
import numpy as np
A=np.array([[56.0,0.0,4.4,68.0],
[1.2,104.0,52.0,8.0],
[1.8,135.0,99.0,0.9]])
print(A)
[[ 56. 0. 4.4 68. ]
[ 1.2 104. 52. 8. ]
[ 1.8 135. 99. 0.9]]
cal=A.sum(axis=0)# means you want to sum vertically,else axis=1 is horizontally
print(cal)
[ 59. 239. 155.4 76.9]
percentage=100*A/cal.reshape(1,4) #如果不知道矩阵类型这是个好办法去保证
print(percentage)
[[94.91525424 0. 2.83140283 88.42652796]
[ 2.03389831 43.51464435 33.46203346 10.40312094]
[ 3.05084746 56.48535565 63.70656371 1.17035111]]
分类:
深度学习随笔
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人