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分析

模型应用

图像分类

图像分割

目标检测

对抗生成

循环网络

相关推荐
IT古董几秒前
【第五章:计算机视觉-计算机视觉在工业制造领域中的应用】1.工业缺陷分割-(3)基于BiseNet算法的工业缺陷分割实战:数据读取、模型搭建、训练与测试
人工智能·计算机视觉·制造
放羊郎9 分钟前
基于RTAB-Map和RRT的自主导航方案
人工智能·数码相机·计算机视觉
从零开始学习人工智能2 小时前
GPUStack:开源GPU集群管理工具,解锁AI模型高效运行新可能
人工智能·开源
C嘎嘎嵌入式开发2 小时前
(六)机器学习之图卷积网络
人工智能·python·机器学习
Msshu1233 小时前
PD快充诱骗协议芯片XSP25支持PD+QC+FCP+SCP+AFC协议支持通过串口读取充电器功率信息
人工智能
一RTOS一5 小时前
东土科技连投三家核心企业 发力具身机器人领域
人工智能·科技·机器人·具身智能·鸿道实时操作系统·国产嵌入式操作系统选型
黎宇幻生6 小时前
Java全栈学习笔记39
java·笔记·学习
ACP广源盛139246256737 小时前
(ACP广源盛)GSV1175---- MIPI/LVDS 转 Type-C/DisplayPort 1.2 转换器产品说明及功能分享
人工智能·音视频
胡耀超7 小时前
隐私计算技术全景:从联邦学习到可信执行环境的实战指南—数据安全——隐私计算 联邦学习 多方安全计算 可信执行环境 差分隐私
人工智能·安全·数据安全·tee·联邦学习·差分隐私·隐私计算
停停的茶8 小时前
深度学习(目标检测)
人工智能·深度学习·目标检测