Pytorch笔记1

建议点赞收藏关注!持续更新至pytorch大部分内容更完。

整体框架如下

目录

gpu加速

打开jupyter lab,打开一个file,右上角选择kernel为torchgpuprivate

要在 Mac M1的GPU 上运行 PyTorch 代码,使用命令 torch.device("mps")来指定。

之后就只需要引用gpu_a,gpu_b,其他与cpu_a...的操作没有区别。

数据

数据结构

张量Tensor

  1. ==数组概念,1...n维
  2. 有8个属性
    data
    dtype:有很多数据类型
    shape : 如 (6,6,6,6)
    device:所在设备cpu/gpu
    grad:data的梯度
    grad_fn:创建tensor 的function,是自动求导的关键,加法还是乘法
    requires_grad:指示是否需要梯度,不一定所有的张量都需要设置梯度
    is_leaf:指示是否是叶子节点(张量),计算图中再介绍。
  3. api
python 复制代码
device=torch.device("mps")
torch.tensor(
			data, #list or numpy
			dtype=None, # 默认==data的类型
			device=None,
			requires_grad=False,
			pin_memory=False # 是否存于锁页内存 一般默认
			)

#创建
arr=np.ones((3,3))
t=torch.tensor(arr,device=device) 
# t.dtype == arr.dtype==float64

torch.from_numpy(ndarray) #从numpy创建tensor
#从torch.from_numpy创建的tensor与原来的ndarray共享内存,一改跟着改

torch.zeros(*size,#形状 如(3,3)
			out=None,#输出的张量 相当于赋值
			dtype=None,#内存中的布局形式
			layout=torch.strided,#通常默认,除非稀疏矩阵 用sparse_coo
			device=None,
			requires_grad=False)
torch.zeros_like(input,#根据Input的形状创建
				dtype=None,
				layout=None,
				device=None,
				requires_grad=False)

zeros 换成 ones

torch.full(size,#(3,3)
		   fill_value,#张量的值 如10
		   out=None,
		   dtype=None,
		   layout=torch.strided,
		   device=None,
		   requires_grad=False)

torch.arange(start=0, #创建等差1维张量
			end, #左闭右开
			step=1,#公差 默认1
			out=None,
		   dtype=None,
		   layout=torch.strided,
		   device=None,
		   requires_grad=False)

torch.linspace(start=0, #创建均分1维张量
			end, #左闭右闭
			steps=1,#数列长度
			#步长=(end-start)/step -1
			out=None,
		   dtype=None,
		   layout=torch.strided,
		   device=None,
		   requires_grad=False)

torch.logspace(base=...底默认10,...) #对数均分

torch.eye(n,#行数  #默认方阵
		  m,#列数
		  ...
		) #创建单位对角矩阵,2维张量,

torch.normal(mean,std,out=None)
#正态分布,mean均值,std方差
#mean std都可以分别是标量 or张量

#都是张量的情况的normal如何计算?
mean=[1,2,3,4]
std=[1,2,3,4]
t_normal=torch.normal(mean,std) #得到[1.66,2.53,3.18,6.48]
#1.66是通过mean=1,std=1的正态分布采样得到

torch.randn(*size, #标准正态分布  
			out=None,
			dtype=None,
			layout=torch.strided,
			device=None,
		   requires_grad=False)
torch.randn_like()

torch.randint(low=0, #均匀分布 前闭后开
			high,
			size, 
			out=None,
			dtype=None,
			layout=torch.strided,
			device=None,
		   requires_grad=False) 

torch.randint_like()

torch.randperm(n,#张量长度
			out=None,
			dtype=None,
			layout=torch.strided,
			device=None,
		   requires_grad=False) 
#生成0-n-1随机排列

torch.bernoulli(input,
				*,
				generator=None,
				out=None)
 #以input为概率,生成伯努利分布,即0-1分布,两点分布

Variable

已经合并到tensor 但是对于理解张量有帮助。variable是torch.autograd中的数据类型,用于封装tensor进行自动求导,有五个属性

data:被包装的tensor

grad:data的梯度

grad_fn:创建tensor 的function,是自动求导的关键,加法还是乘法

requires_grad:指示是否需要梯度,不一定所有的张量都需要设置梯度

is_leaf:指示是否是叶子节点(张量),计算图中再介绍。

预处理

数据增强

模型

构建模块

组织复杂网络

初始化网络参数

定义网络层

损失函数

创建损失函数

设置损失函数超参数

选择损失函数

优化器

管理模型参数

管理多个参数组实现不同学习率

调整学习率

迭代训练

观察训练效果

绘制loss/accuracy曲线

用TensorBoard分析

模型应用

图像分类

图像分割

目标检测

对抗生成

循环网络

相关推荐
love_and_hope几秒前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
芊寻(嵌入式)13 分钟前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
2403_8757368717 分钟前
道品科技智慧农业中的自动气象检测站
网络·人工智能·智慧城市
学术头条40 分钟前
AI 的「phone use」竟是这样练成的,清华、智谱团队发布 AutoGLM 技术报告
人工智能·科技·深度学习·语言模型
准橙考典41 分钟前
怎么能更好的通过驾考呢?
人工智能·笔记·自动驾驶·汽车·学习方法
ai_xiaogui44 分钟前
AIStarter教程:快速学会卸载AI项目【AI项目管理平台】
人工智能·ai作画·语音识别·ai写作·ai软件
孙同学要努力1 小时前
《深度学习》——深度学习基础知识(全连接神经网络)
人工智能·深度学习·神经网络
喵~来学编程啦2 小时前
【论文精读】LPT: Long-tailed prompt tuning for image classification
人工智能·深度学习·机器学习·计算机视觉·论文笔记
深圳市青牛科技实业有限公司2 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
水豚AI课代表2 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc