目录
之——开始
初衷
杂谈
正文
1.大致框架
2.数据操作基础
2.1 数组
2.2 广播机制
2.4 不常用的原地内存操作
2.5 numpy与tensor相互转换
所属专栏会不断更新
学而时习之,太多东西来得杂乱,不用就忘,浅记一下,一些小的心得和想法
2023.10.3,笑死是生日
不过新的一年开始也很不错
本科阶段学了很多模式识别机器学习理论,多部署少研究和编写,现在刚开始系统化动手。
介绍和自己的理解:
深度学习成为机器从认知推理到自己总结理解知识的基础,图片分类的提升展现了深度学习的过人之处,12-17五年终结该领域问题,物体检测(语义级)、物体分割(像素级)、样式迁移(计算机视觉感知合成)、物体生成、文字生成、无人驾驶、大数据分析与监控(大数据行为现象猜测)
很类脑的仿真,细节上无可解释性,有效性解释(空间、时间、泛化性上)
1d元素,2d行列,3d图片,4d图片组或batch或视频,5d视频batch
访问数组,改变,基础运算,形状改变,拼接:
#张量连结
x=torch.arange(12,dtype=torch.float32).reshape([3,4])
y=torch.rand([3,4]) #0-1随机数
m=torch.randn((3,4))#01正态分布随机数
z=torch.cat([x,y],dim=0)
n=torch.cat((x,m),dim=1)
print(z)
print(n)
(3,1)的tensor和(1,2)的tensor做计算,会两边复制增广为(3,2)和(3,2)再运算
更详细的,感谢佬有时间总结:
1. 关于pytorch中的数据操作的广播机制_广播机制中按元素操作的-CSDN博客
#原地操作内存相关
#运行操作时候可能会导致内存发生改变
before = id(y)
y = y + x
print(id(y) == before)
before = id(y)
y+=x
print(id(y) == before)
#执行原地操作,用个固定容器装
Z = torch.zeros_like(y)
print('id(Z):', id(Z))
Z[:] = x + y
print('id(Z):', id(Z))
before = id(x)
x += y
id(x) == before
#转回numpy,转为tensor
A=x.numpy()
print(A)
B=torch.tensor(A)
print(B)
#一个元素的提取
a=x[0,0]
print(a)
print(a.item())
print(float(a))
print(int(a))