深度学习Pytorch框架Tensor张量

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 深度学习Pytorch框架Tensor张量

Tensor的裁剪运算

  • 对Tensor中的元素进行范围过滤
  • 常用于梯度裁剪(gradient clipping),即在发生梯度离散或者梯度爆炸时对梯度的处理
  • torch.clamp(input, min, max, out=None) → Tensor:将输入input张量每个元素的夹紧到区间 [min,max],并返回结果到一个新张量。

1698843602982.jpg

Tensor的索引与数据筛选

  • torch.where(codition,x,y):按照条件从x和y中选出满足条件的元素组成新的tensor,输入参数condition:条件限制,如果满足条件,则选择a,否则选择b作为输出。
  • torch.gather(input,dim,index,out=None):在指定维度上按照索引赋值输出tensor
  • torch.inex_select(input,dim,index,out=None):按照指定索引赋值输出tensor
  • torch.masked_select(input,mask,out=None):按照mask输出tensor,输出为向量
  • torch.take(input,indices):将输入看成1D-tensor,按照索引得到输出tensor
  • torch.nonzero(input,out=None):输出非0元素的坐标
import torch
#torch.where
a = torch.rand(4, 4)
b = torch.rand(4, 4)
print(a)
print(b)
out = torch.where(a > 0.5, a, b)
print(out)

1698843618523.jpg

print("torch.index_select")
a = torch.rand(4, 4)
print(a)
out = torch.index_select(a, dim=0,
                   index=torch.tensor([0, 3, 2]))
#dim=0按列,index取的是行
print(out, out.shape)

1698843638842.jpg

print("torch.gather")
a = torch.linspace(1, 16, 16).view(4, 4)
print(a)
out = torch.gather(a, dim=0,
             index=torch.tensor([[0, 1, 1, 1],
                                 [0, 1, 2, 2],
                                 [0, 1, 3, 3]]))
print(out)
print(out.shape)
#注:从0开始,第0列的第0个,第一列的第1个,第二列的第1个,第三列的第1个,,,以此类推
#dim=0, out[i, j, k] = input[index[i, j, k], j, k]
#dim=1, out[i, j, k] = input[i, index[i, j, k], k]
#dim=2, out[i, j, k] = input[i, j, index[i, j, k]]

1698843649316.jpg

print("torch.masked_index")
a = torch.linspace(1, 16, 16).view(4, 4)
mask = torch.gt(a, 8)
print(a)
print(mask)
out = torch.masked_select(a, mask)
print(out)

1698843658810.jpg

print("torch.take")
a = torch.linspace(1, 16, 16).view(4, 4)
b = torch.take(a, index=torch.tensor([0, 15, 13, 10]))
print(b)

1698843681936.jpg

#torch.nonzero
print("torch.take")
a = torch.tensor([[0, 1, 2, 0], [2, 3, 0, 1]])
out = torch.nonzero(a)
print(out)
#稀疏表示

1698843691937.jpg


Tensor的组合/拼接

  • torch.cat(seq,dim=0,out=None):按照已经存在的维度进行拼接
  • torch.stack(seq,dim=0,out=None):沿着一个新维度对输入张量序列进行连接。 序列中所有的张量都应该为相同形状。
print("torch.stack")
a = torch.linspace(1, 6, 6).view(2, 3)
b = torch.linspace(7, 12, 6).view(2, 3)
print(a, b)
out = torch.stack((a, b), dim=2)
print(out)
print(out.shape)
print(out[:, :, 0])
print(out[:, :, 1])

1698843702443.jpg

Tensor的切片

  • torch.chunk(tensor,chunks,dim=0):按照某个维度平均分块(最后一个可能小于平均值)
  • torch.split(tensor,split_size_or_sections,dim=0):按照某个维度依照第二个参数给出的list或者int进行分割tensor

Tensor的变形操作

  • torch().reshape(input,shape)
  • torch().t(input):只针对2D tensor转置
  • torch().transpose(input,dim0,dim1):交换两个维度
  • torch().squeeze(input,dim=None,out=None):去除那些维度大小为1的维度
  • torch().unbind(tensor,dim=0):去除某个维度
  • torch().unsqueeze(input,dim,out=None):在指定位置添加维度,dim=-1在最后添加
  • torch().flip(input,dims):按照给定维度翻转张量
  • torch().rot90(input,k,dims):按照指定维度和旋转次数进行张量旋转
import torch
a = torch.rand(2, 3)
print(a)
out = torch.reshape(a, (3, 2))
print(out)

1698843714315.jpg


print(a)
print(torch.flip(a, dims=[2, 1]))
print(a)
print(a.shape)
out = torch.rot90(a, -1, dims=[0, 2]) #顺时针旋转90°  
print(out)
print(out.shape)

1698843726119.jpg

Tensor的填充操作

  • torch.full((2,3),3.14)

Tensor的频谱操作(傅里叶变换)

1698843736021.jpg

相关文章
|
9天前
|
机器学习/深度学习 数据可视化 PyTorch
TensorFlow与PyTorch框架的深入对比:特性、优势与应用场景
【5月更文挑战第4天】本文对比了深度学习主流框架TensorFlow和PyTorch的特性、优势及应用场景。TensorFlow以其静态计算图、高性能及TensorBoard可视化工具适合大规模数据处理和复杂模型,但学习曲线较陡峭。PyTorch则以动态计算图、易用性和灵活性见长,便于研究和原型开发,但在性能和部署上有局限。选择框架应根据具体需求和场景。
|
10天前
|
机器学习/深度学习 PyTorch API
pytorch与深度学习
【5月更文挑战第3天】PyTorch,Facebook开源的深度学习框架,以其动态计算图和灵活API深受青睐。本文深入浅出地介绍PyTorch基础,包括动态计算图、张量和自动微分,通过代码示例演示简单线性回归和卷积神经网络的实现。此外,探讨了模型架构、自定义层、数据加载及预处理等进阶概念,并分享了实战技巧、问题解决方案和学习资源,助力读者快速掌握PyTorch。
31 5
|
13天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【Python机器学习专栏】PyTorch在深度学习中的应用
【4月更文挑战第30天】PyTorch是流行的开源深度学习框架,基于动态计算图,易于使用且灵活。它支持张量操作、自动求导、优化器和神经网络模块,适合快速实验和模型训练。PyTorch的优势在于易用性、灵活性、社区支持和高性能(利用GPU加速)。通过Python示例展示了如何构建和训练神经网络。作为一个强大且不断发展的工具,PyTorch适用于各种深度学习任务。
|
13天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战移动应用开发的未来:跨平台框架与原生操作系统的融合
【4月更文挑战第30天】 随着人工智能的迅猛发展,深度学习技术已成为图像识别领域的核心竞争力。本文章将探讨深度学习在图像识别中的应用,并分析其面临的主要挑战。我们将从卷积神经网络(CNN)的基础架构出发,讨论其在图像分类、目标检测和语义分割等方面的应用案例,同时指出数据偏差、模型泛化能力以及对抗性攻击等问题对图像识别准确性的影响。通过实例分析和最新研究成果,本文旨在为读者提供一个关于深度学习在图像处理领域内应用的全面视角。
|
13天前
|
机器学习/深度学习 自然语言处理 算法
PyTorch与NLP:自然语言处理的深度学习实战
随着人工智能技术的快速发展,自然语言处理(NLP)作为其中的重要分支,日益受到人们的关注。PyTorch作为一款强大的深度学习框架,为NLP研究者提供了强大的工具。本文将介绍如何使用PyTorch进行自然语言处理的深度学习实践,包括基础概念、模型搭建、数据处理和实际应用等方面。
|
15天前
|
PyTorch 算法框架/工具 Python
【pytorch框架】对模型知识的基本了解
【pytorch框架】对模型知识的基本了解
|
25天前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与CUDA:加速深度学习训练
【4月更文挑战第18天】本文介绍了如何使用PyTorch与CUDA加速深度学习训练。CUDA是NVIDIA的并行计算平台,常用于加速深度学习中的矩阵运算。PyTorch与CUDA集成,允许开发者将模型和数据迁移到GPU,利用`.to(device)`方法加速计算。通过批处理、并行化策略及优化技巧,如混合精度训练,可进一步提升训练效率。监控GPU内存和使用调试工具确保训练稳定性。PyTorch与CUDA的结合对深度学习训练的加速作用显著。
|
PyTorch 算法框架/工具 Android开发
PyTorch 深度学习(GPT 重译)(六)(4)
PyTorch 深度学习(GPT 重译)(六)
38 2
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 深度学习(GPT 重译)(六)(3)
PyTorch 深度学习(GPT 重译)(六)
30 2
|
25天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 深度学习(GPT 重译)(六)(2)
PyTorch 深度学习(GPT 重译)(六)
41 1

相关实验场景

更多