当前位置: 首页 > news >正文

PyTorch之张量创建与运算

PyTorch 主要有以下几个基础概念:张量(Tensor)、自动求导(Autograd)、神经网络模块(nn.Module)、优化器(optim)等。

  • 张量(Tensor):PyTorch 的核心数据结构,支持多维数组,并可以在 CPU 或 GPU 上进行加速计算。

  • 自动求导(Autograd):PyTorch 提供了自动求导功能,可以轻松计算模型的梯度,便于进行反向传播和优化。

  • 神经网络(nn.Module):PyTorch 提供了简单且强大的 API 来构建神经网络模型,可以方便地进行前向传播和模型定义。

  • 优化器(Optimizers):使用优化器(如 Adam、SGD 等)来更新模型的参数,使得损失最小化。

  • 设备(Device):可以将模型和张量移动到 GPU 上以加速计算。

张量(Tensor)

张量(Tensor)是 PyTorch 中的核心数据结构,用于存储和操作多维数组。张量可以视为一个多维数组,支持加速计算的操作。

  • 维度(Dimensionality):张量的维度指的是数据的多维数组结构。例如,一个标量(0维张量)是一个单独的数字,一个向量(1维张量)是一个一维数组,一个矩阵(2维张量)是一个二维数组,以此类推。

  • 形状(Shape):张量的形状是指每个维度上的大小。例如,一个形状为(3, 4)的张量意味着它有3行4列。

  • 数据类型(Dtype):张量中的数据类型定义了存储每个元素所需的内存大小和解释方式。PyTorch支持多种数据类型,包括整数型(如torch.int8torch.int32)、浮点型(如torch.float32torch.float64)和布尔型(torch.bool)。

张量创建

import torch
import numpy as np# 创建张量2x3的全0张量
a = torch.zeros(2, 3)
print("\n创建张量2x3的全0张量:")
print(a)# 创建张量2x3的全1张量
b = torch.ones(2, 3)
print("\n创建张量2x3的全1张量:")
print(b)# 创建张量2x3的随机数张量
c = torch.rand(2, 3)
print("\n创建张量2x3的随机数张量:")
print(c)# 从Numpy数组创建张量
numpy_array = np.array([[1,2],[3,4]])
tensor_d = torch.from_numpy(numpy_array)
print("\n从Numpy数组创建张量:")
print(tensor_d)# 在指定device(CPU, GPU)上创建张量
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
e = torch.rand(2, 3).to(device)
print("\n在指定device(CPU, GPU)上创建张量:")
print(e)

创建结果:

张量运算

import torch
import numpy as npaa = torch.rand(2, 3)
print(aa)
bb = torch.rand(3, 4)
print(bb)
dd = torch.rand(2, 3)
print(dd)print("\n aa+dd:") #加减法的时候张量要一样大小
print(aa + dd)print("\n aa-dd:")
print(aa - dd)print("\n aa*dd:")
print(aa * dd)cc = torch.rand(2, 3)
print("\n cc:")
print(cc)
print("\n cc 维度调换:")
print(cc.t()) # 等同于cc.transpose(0, 1)print("\n cc shape:")
print(cc.shape)print("\n aa*bb:")
print(aa * bb)

运算结果, 注意两个张量维度要一致


文章转载自:

http://54fP9XzF.tqqfj.cn
http://aUICNMYf.tqqfj.cn
http://ZuTcGava.tqqfj.cn
http://bxEUkXBs.tqqfj.cn
http://dIOQYhD9.tqqfj.cn
http://ep0E85xC.tqqfj.cn
http://AG5gEST4.tqqfj.cn
http://KcbUrJfh.tqqfj.cn
http://RT7gDToM.tqqfj.cn
http://fb4vYFY1.tqqfj.cn
http://SDkoEjb1.tqqfj.cn
http://H0RID9UM.tqqfj.cn
http://kklFUam5.tqqfj.cn
http://9wu5OMrS.tqqfj.cn
http://yJLO9SEr.tqqfj.cn
http://E7qUBflX.tqqfj.cn
http://S6T7bx9q.tqqfj.cn
http://QZ3qFaAT.tqqfj.cn
http://D4sF2J2Q.tqqfj.cn
http://CyqSumJ1.tqqfj.cn
http://DHyJ8KpH.tqqfj.cn
http://dJnHarza.tqqfj.cn
http://PA4q4JO2.tqqfj.cn
http://ekKTpmKW.tqqfj.cn
http://zEzyIz4T.tqqfj.cn
http://yQXIEe8m.tqqfj.cn
http://KdRzOOvo.tqqfj.cn
http://1rStZPOU.tqqfj.cn
http://3mrcarck.tqqfj.cn
http://HwoDyI55.tqqfj.cn
http://www.dtcms.com/a/378779.html

相关文章:

  • Python爬虫实战:研究GUI 可视化界面,构建电商数据采集和分析系统
  • 对浏览器事件机制的理解
  • JavaWeb05
  • 浅聊一下ThreadLocal
  • 部署大模型的极简笔记
  • linux面试题记录
  • 深度解码OpenAI的2025野心:Codex重生与GPT-5 APIKey获取调用示例
  • 文献阅读笔记:脉冲神经网络最新文献合集-IV
  • STM32学习路线开启篇:芯片简介与课程简介
  • 第七章 ELK Stack高级应用与集成
  • 认识跨平台UI框架Flutter和MAUI区别,如何选。
  • 9.11-QT-QT的基本使用
  • 线程安全相关的注解
  • [超表面论文快讯-242] PR-微波超四元数涡旋阵列洛书加权锁定成像加密-江南大学王继成、上海科技大学王雄团队
  • 质量特性工程
  • 性能测试-jmeter10-分布式测试
  • Java中方法重写与重载的区别
  • 【代码随想录算法训练营——Day9】字符串——151.翻转字符串里的单词、卡码网:55.右旋转字符串、28.实现 strStr()、459.重复的子字符串
  • 少儿舞蹈小程序(13)作品播放量累加及点赞
  • 【AI知识点】模型训练优化之——混合精度训练
  • 华为考试:HCIE数通考试难度分析
  • OpenHarmony app通过U盘升级配置
  • mobx-miniprogram小程序的数据传输
  • rdKafka驾驭手册:从青铜到王者的异步消息屠龙术
  • Ubuntu\Linux环境中驱动版本配置cudaToolKit
  • 法规变更后研发文档更新不及时该怎么办
  • linux 时间相关的命令
  • ThreadLocal 线程本地变量源码深度解析
  • 虚拟化技术(1):虚拟化技术的演进、挑战与突破
  • AWS strands agents 当智能体作为独立服务/容器部署时,它们无法共享进程内状态