PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)

简介: PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)

觉得有帮助请点赞关注收藏 有问题可评论区留言~~~

Tensor对象是一个维度任意的矩阵,但是一个Tensor中所有元素的数据类型必须一致。torch包含的数据类型和普遍编程语言的数据类型类似,包含浮点型,有符号整型和无符号整形,这些类型既可以定义在CPU上,也可以定义在GPU上。在使用Tensor数据类型时,可以通过dtype属性指定它的数据类型,device指定它的设备(CPU或者GPU)

1:基本定义

代码如下 可查看tensor的基本类型以及运行设备

import torch
import  numpy as np
print('torch.tensor 默认为:{}'.format(torch.Tensor(1).dtype))
a=torch.tensor([[1,2],[3,4]],dtype=torch.float64)
print(a)
#cpu -gpu之间转换
c=torch.ones((2,2))
c=c.to('cpu',torch.double)
print(c.device)

输出如下

2:矩阵乘法

对Tensor执行算术符的运算时 是两个矩阵对应元素的运算,torch.mm执行矩阵乘法的计算

代码如下

 

import torch
import  numpy as np
#矩阵对应元素运算
a=torch.tensor([[1,2],[3,4]])
b=torch.tensor([[1,2],[4,6]])
c=a*b
print("每个元素相乘",c)
c=torch.mm(a,b)
print("矩阵乘法",c)

3:分段、化整、映射函数

clamp起的是分段函数的作用,可以用于去除矩阵中过小或者过大的元素,round函数将小数部分化整,tanh计算双曲正切函数,该函数将值映射到0,1

代码如下

import torch
import  numpy as np
#特定功能函数
#clamp分段
a=torch.tensor([[1,2],[3,4]])
print(torch.clamp(a,min=2,max=3))
#round化整
a=torch.tensor([[1.1,0.5],[0.6,-1.2]])
print(torch.round(a))
#tanh双曲正切 映射到0 1
print(torch.tanh(a))

四、arange等方法创建数据

除了直接从ndarray或list类型的数据中创建Tensor外,PyTorch还提供了一些函数可以直接创建数据,这类函数往往需要提供矩阵的维度,它和python内置的range的使用方法基本想吐,其第三个参数是步长,linsapce函数第三个参数指定返回的个数。ones返回全1,zeors返回全0

import torch
import  numpy as np
#直接 创建数据
print(torch.arange(5))
print(torch.arange(1,5,2))
print(torch.linspace(0,5,10))
#全0 全1
print(torch.ones(3,3))
print(torch.zeros(3,3))

五、rand返回随机数

rand返回从0 1均匀分布采样的元素所组成的矩阵,randn返回从正态分布采样的元素所组成的矩阵,randint返回指定区间的均匀分布采样的随机整数所组成的矩阵

代码如下

import torch
import  numpy as np
print('torch.tensor 默认为:{}'.format(torch.Tensor(1).dtype))
a=torch.tensor([[1,2],[3,4]],dtype=torch.float64)
print(a)
#cpu -gpu之间转换
c=torch.ones((2,2))
c=c.to('cpu',torch.double)
print(c.device)
#矩阵对应元素运算
a=torch.tensor([[1,2],[3,4]])
b=torch.tensor([[1,2],[4,6]])
c=a*b
print("每个元素相乘",c)
c=torch.mm(a,b)
print("矩阵乘法",c)
#特定功能函数
#clamp分段
a=torch.tensor([[1,2],[3,4]])
print(torch.clamp(a,min=2,max=3))
#round化整
a=torch.tensor([[1.1,0.5],[0.6,-1.2]])
print(torch.round(a))
#tanh双曲正切 映射到0 1
print(torch.tanh(a))
#直接 创建数据
print(torch.arange(5))
print(torch.arange(1,5,2))
print(torch.linspace(0,5,10))
#全0 全1
print(torch.ones(3,3))
print(torch.zeros(3,3))
#随机
print(torch.rand(3,3))
print(torch.randn(3,3))
print(torch.randint(0,9,(3,3)))

创作不易 觉得有帮助请点赞关注收藏~~~

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
14天前
|
机器学习/深度学习 人工智能 PyTorch
【深度学习】使用PyTorch构建神经网络:深度学习实战指南
PyTorch是一个开源的Python机器学习库,特别专注于深度学习领域。它由Facebook的AI研究团队开发并维护,因其灵活的架构、动态计算图以及在科研和工业界的广泛支持而受到青睐。PyTorch提供了强大的GPU加速能力,使得在处理大规模数据集和复杂模型时效率极高。
140 59
|
2天前
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch 与边缘计算:将深度学习模型部署到嵌入式设备
【8月更文第29天】随着物联网技术的发展,越来越多的数据处理任务开始在边缘设备上执行,以减少网络延迟、降低带宽成本并提高隐私保护水平。PyTorch 是一个广泛使用的深度学习框架,它不仅支持高效的模型训练,还提供了多种工具帮助开发者将模型部署到边缘设备。本文将探讨如何将PyTorch模型高效地部署到嵌入式设备上,并通过一个具体的示例来展示整个流程。
11 1
|
4天前
|
机器学习/深度学习 算法 PyTorch
PyTorch Lightning:简化深度学习研究与开发
【8月更文第27天】PyTorch Lightning 是一个用于简化 PyTorch 开发流程的轻量级封装库。它的目标是让研究人员和开发者能够更加专注于算法和模型的设计,而不是被训练循环和各种低级细节所困扰。通过使用 PyTorch Lightning,开发者可以更容易地进行实验、调试和复现结果,从而加速研究与开发的过程。
13 1
|
4天前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与CUDA:加速深度学习模型训练的最佳实践
【8月更文第27天】随着深度学习应用的广泛普及,高效利用GPU硬件成为提升模型训练速度的关键。PyTorch 是一个强大的深度学习框架,它支持动态计算图,易于使用且高度灵活。CUDA (Compute Unified Device Architecture) 则是 NVIDIA 开发的一种并行计算平台和编程模型,允许开发者直接访问 GPU 的并行计算能力。本文将详细介绍如何利用 PyTorch 与 CUDA 的集成来加速深度学习模型的训练过程,并提供具体的代码示例。
17 1
|
18天前
|
机器学习/深度学习 PyTorch TensorFlow
【PyTorch】PyTorch深度学习框架实战(一):实现你的第一个DNN网络
【PyTorch】PyTorch深度学习框架实战(一):实现你的第一个DNN网络
54 1
|
2天前
|
机器学习/深度学习 分布式计算 PyTorch
构建可扩展的深度学习系统:PyTorch 与分布式计算
【8月更文第29天】随着数据量和模型复杂度的增加,单个GPU或CPU已无法满足大规模深度学习模型的训练需求。分布式计算提供了一种解决方案,能够有效地利用多台机器上的多个GPU进行并行训练,显著加快训练速度。本文将探讨如何使用PyTorch框架实现深度学习模型的分布式训练,并通过一个具体的示例展示整个过程。
10 0
|
3天前
|
机器学习/深度学习 PyTorch 测试技术
深度学习入门:使用 PyTorch 构建和训练你的第一个神经网络
【8月更文第29天】深度学习是机器学习的一个分支,它利用多层非线性处理单元(即神经网络)来解决复杂的模式识别问题。PyTorch 是一个强大的深度学习框架,它提供了灵活的 API 和动态计算图,非常适合初学者和研究者使用。
14 0
|
25天前
|
机器学习/深度学习 存储 PyTorch
【深度学习】Pytorch面试题:什么是 PyTorch?PyTorch 的基本要素是什么?Conv1d、Conv2d 和 Conv3d 有什么区别?
关于PyTorch面试题的总结,包括PyTorch的定义、基本要素、张量概念、抽象级别、张量与矩阵的区别、不同损失函数的作用以及Conv1d、Conv2d和Conv3d的区别和反向传播的解释。
59 2
|
4天前
|
机器学习/深度学习 PyTorch 编译器
PyTorch 与 TorchScript:模型的序列化与加速
【8月更文第27天】PyTorch 是一个非常流行的深度学习框架,它以其灵活性和易用性而著称。然而,当涉及到模型的部署和性能优化时,PyTorch 的动态计算图可能会带来一些挑战。为了解决这些问题,PyTorch 引入了 TorchScript,这是一个用于序列化和优化 PyTorch 模型的工具。本文将详细介绍如何使用 TorchScript 来序列化 PyTorch 模型以及如何加速模型的执行。
27 4
|
4天前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
15 2
下一篇
云函数