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

张量、框架

PyTorch 和 TensorFlow 都是张量库,核心功能对张量进行高效数学运算,尤其是大规模并行计算。

1.张量

张量 Tensor 是一种通用的数学对象,可以看做是多维数组概念的扩展
标量(0阶张量):单个数字,如 5;
向量(1阶张量):一维数组,如 [1,2,3];
矩阵(2阶张量):二维数组,如[[1,2],[3,4]]
高阶张量(3阶及以上):如三维数组、四维数组等

神经网络中的计算操作(如矩阵乘法、卷积、激活函数等)都涉及到对多维数据的处理。PyTorch 和 TensorFlow 作为张量库,提供了张量操作接口,能利用硬件加速(如GPU、TPU)进行大规模并行计算

2.张量库

作为张量库的功能:
基本张量运算:加减乘除、矩阵乘法、转置、索引、切片等常见的线性代数运算
自动微分:能够计算张量操作的梯度
硬件加速:利用GPU或PTU对张量运算加速,将CPU转移到GPU上,提高模型训练和推理速度

3. 示例

创建

在PyTorch中可以这样创建张量:

import torch
x = torch.tensor([[1,2],[3,4]])
y = torch.ones_like(x)
z = x+y

torch.tensor 是 PyTorch 中创建张量的函数。
[[1, 2], [3, 4]] 是一个嵌套的列表,表示一个二维矩阵(2x2)
x 是一个 2x2 的整型张量,表示为:

[[1, 2],
 [3, 4]]

torch.ones_like(x) 会创建一个和张量 x 形状相同的新张量,但其所有元素都是 1
由于 x 是一个 2x2 的矩阵,y 也会是一个 2x2 的矩阵,且每个元素都等于 1

[[1, 1],
 [1, 1]]

z = x + y
张量的逐元素加法。即,张量 x 和 y 的每个对应元素相加

[[1+1, 2+1],
 [3+1, 4+1]]

因此,z为:

[[2, 3],
 [4, 5]]

在TensorFlow中类似:

import tensorflow as tf
x = tf.constant([[1, 2], [3, 4]])
y = tf.ones_like(x)
z = x + y

自动微分和梯度计算

自动微分可以帮助计算损失函数对模型参数的梯度,这是更新模型参数的关键

PyTorch通过autograd模块,动态计算张量的梯度

x = torch.tensor([2.0], requires_grad=True)
y = x ** 2
y.backward()
print(x.grad)  # 输出 x 的梯度

TensorFlow通过GradientTape上下文来跟踪计算,并计算梯度

x = tf.Variable(2.0)
with tf.GradientTape() as tape:
    y = x ** 2
grad = tape.gradient(y, x)
print(grad)  # 输出 x 的梯度

张量在GPU上的加速

GPU对并行运算非常高效,尤其是像矩阵乘法、卷积等操作
在PyTorch中通过.to(‘cuda’)方法将张量移动到GPU

x = torch.tensor([1.0, 2.0])
x = x.to('cuda')  # 移动到GPU

在TensorFlow中,张量默认支持GPU加速,只要检测到GPU设备,计算会自动利用它

with tf.device('/GPU:0'):
    x = tf.constant([1.0, 2.0])

http://www.kler.cn/news/327950.html

相关文章:

  • 选择与运用合适工具提升编程效率的秘诀
  • uboot笔记(一):概括/移植等
  • Lagent 自定义你的 Agent 智能体
  • k8s 部署 prometheus
  • Android中级控件
  • Fivetran+Milvus:AI搜索新时代的数据迁移利器
  • 学习记录:js算法(五十):二叉树的右视图
  • 【Preference Learning】Reasoning with Language Model is Planning with World Model
  • mysql学习教程,从入门到精通,SQL 表、列别名(Aliases)(30)
  • Spring Boot框架在甘肃非遗文化网站设计中的运用
  • ubuntu配置python环境
  • 深度学习基础及技巧
  • Linux性能调优技巧
  • 汽车零部件开发流程关键阶段
  • PowerShell无法执行yarn命令
  • Qt_线程介绍与使用
  • Wpf Image 展示方式 图片处理 显示
  • 828华为云征文|华为云 Flexus X 实例初体验
  • 选择更轻松:山海鲸可视化与PowerBI的深度对比
  • MATLAB在无线通信标准与协议支持中的作用
  • 打造未来社交:区块链社交DAO的颠覆性开发之路
  • 2.1 HuggingFists系统架构(一)
  • Go 项目开发常用设计模式
  • OpenCV图像文件读写(1)检查 OpenCV 是否支持某种图像格式的读取功能函数haveImageReader()的使用
  • Python FFmpeg 安装使用教程
  • SQL第10课挑战题
  • C# 泛型使用案例_C# 泛型使用整理
  • vue 项目打包更新后,界面未刷新时js与css资源加载404,监听资源文件404后自动重新加载页面。
  • 解决 Macos下 Orbstack docker网络问题
  • 【工具-VMware Workstation-ubuntu】