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

【PyTorch实战:Tensor】4、NumPy与PyTorch Tensor指南:深度学习中的数据操作与转换

在这里插入图片描述

一、NumPy与PyTorch的紧密关系

1.1 为什么需要同时掌握NumPy和PyTorch?

在深度学习领域,NumPy和PyTorch是两个不可或缺的工具,它们之间存在着天然的协作关系:

  • NumPy:是Python科学计算的基石,提供了强大的多维数组操作能力,适合数据预处理、分析和可视化
  • PyTorch:构建在NumPy理念之上,增加了GPU加速自动求导功能,适合模型训练和推理
协作流程
.from_numpy()
.numpy()
PyTorch模型训练
NumPy预处理
NumPy结果分析
原始数据

1.2 核心概念对应关系

NumPy概念 PyTorch对应概念 关键区别
ndarray Tensor Tensor支持GPU和自动求导
np.array() torch.tensor() 创建方式类似
shape shape 相同属性
dtype dtype 数据类型系统相似
广播机制 广播机制 规则完全相同
np.dot() torch.mm()@ 矩阵乘法

二、NumPy在深度学习中的关键应用

2.1 图像处理与数据加载

深度学习项目通常始于数据加载和预处理,NumPy在这里发挥着重要作用:

import numpy as np
from PIL import Image
import cv2# 使用Pillow读取图像(RGB通道顺序)
def load_image_pillow(path):im = Image.open(path)im_array = np.array(im)  # 转换为NumPy数组print(f"图像形状: {im_array.shape}, 数据类型: {im_array.dtype}")return im_array# 使用OpenCV读取图像(BGR通道顺序)
def load_image_opencv(path):im_array = cv2.imread(path)  # 直接得到NumPy数组im_array = cv2.cvtColor(im_array, cv2.COLOR_BGR2RGB)  # 转换为RGBprint(f"图像形状: {im_array.shape}, 数据类型: {im_array.dtype}")return im_array# 图像归一化处理
def normalize_image(image):# 转换为float32并缩放到[0,1]范围normalized = image.astype(np.float32) / 255.0# 或者缩放到[-1,1]范围# normalized = (image.astype(np.float32) / 127.5) - 1.0return normalized

2.2 数组操作与广播机制

广播机制是NumPy和PyTorch中最强大的特性之一,它允许不同形状的数组进行数学运算:

# 广播机制示例
def demonstrate_broadcasting():# 示例1: 向量 + 标量vector = np.array([1, 2, 
http://www.xdnf.cn/news/20367.html

相关文章:

  • Python基础(①⑧Queue)
  • 机床夹具设计 +选型
  • 持续集成和持续交付 (CI/CD) 工具——Jenkins
  • `objdump`与`addr2line`工具详解
  • 新服务器初始化:Git全局配置与SSH密钥生成
  • 【Canvas与图标】古铜色“HTML”图标
  • eclipse 安装 lombok
  • 【基础-单选】下列哪一项不属于ArkUI组件的公共事件?
  • JVM调优总结
  • ECharts Gallery:Apache官方数据可视化模板库,助你快速制作交互图表并实现深度定制
  • 微服务的编程测评系统22-项目部署结束
  • 基于Echarts+HTML5可视化数据大屏展示-图书馆大屏看板
  • 软考 系统架构设计师系列知识点之杂项集萃(142)
  • JVM中如何调优新生代和老生代?
  • 基于LSTM深度学习的网络流量测量算法matlab仿真
  • C++ 内存模型:用生活中的例子理解并发编程
  • linux C 语言开发 (三) 建立云服务器
  • C++ 小游戏:拍桌子
  • Nmap网络扫描工具详细使用教程
  • 算法学习路径
  • 基于 Gemini 的 CI/CD 自动化测评 API 集成实战教程
  • Browser Use:打造你的浏览器自动化助手
  • Python数据可视化科技图表绘制系列教程(六)
  • 【Python自动化】 21 Pandas Excel 操作完整指南
  • 小杰机器学习(two)——导数、损失函数、斜率极值最值、微分规则、切平面与偏导数、梯度。
  • Rust 登堂 之 Deref 解引用(十)
  • 一文掌握工业缺陷检测项目实战(Pytorch算法训练、部署、C++ DLL制作、Qt集成)
  • 微信小程序(uniapp)实现连接蓝牙
  • cuda-NCCL笔记(1)-- 初步了解使用NCCL
  • Python 多线程与多进程入门指南