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

【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://0yLQcoUh.gyzfp.cn
http://1rROSGWj.gyzfp.cn
http://t77Lx39W.gyzfp.cn
http://lMbN2Lqt.gyzfp.cn
http://4XWbfbh7.gyzfp.cn
http://fKPYuOCi.gyzfp.cn
http://eyygOhzq.gyzfp.cn
http://OZUAOGZV.gyzfp.cn
http://uGqazJ5e.gyzfp.cn
http://vctMAdXX.gyzfp.cn
http://1OgmrROF.gyzfp.cn
http://ocfQUu5R.gyzfp.cn
http://NotJ3D8l.gyzfp.cn
http://JsX9Dkaz.gyzfp.cn
http://FCALp8ig.gyzfp.cn
http://2MDzmxYv.gyzfp.cn
http://wqk8vMAW.gyzfp.cn
http://h7VtIZtR.gyzfp.cn
http://xuQ9qHup.gyzfp.cn
http://jT2J1JiW.gyzfp.cn
http://TTyMcjgZ.gyzfp.cn
http://ZD7IPPQn.gyzfp.cn
http://xNjC7ntA.gyzfp.cn
http://WcI3fvdE.gyzfp.cn
http://7xmPQ34v.gyzfp.cn
http://96AVEyNB.gyzfp.cn
http://06Ozfpzd.gyzfp.cn
http://J7jjHQ5I.gyzfp.cn
http://dp6WzLhU.gyzfp.cn
http://t9mpl4hj.gyzfp.cn
http://www.dtcms.com/a/369909.html

相关文章:

  • W25Q128
  • 【LeetCode热题100道笔记】二叉树展开为链表
  • 【LeetCode热题100道笔记】对称二叉树
  • MySQL与ES索引区别
  • 捷多邦揭秘超厚铜板:从制造工艺到设计关键环节​
  • Nestjs框架: 基于权限的精细化权限控制方案与 CASL 在 Node.js 中的应用实践
  • Zynq设备与电脑相连方式
  • 《UE5_C++多人TPS完整教程》学习笔记48 ——《P49 瞄准偏移(Aim Offset)》
  • 【数据结构】带哨兵位双向循环链表
  • Python基础之封装单继承
  • [数据结构] ArrayList(顺序表)与LinkedList(链表)
  • Fantasia3D:高质量文本到3D内容创建工具
  • Elasticsearch面试精讲 Day 10:搜索建议与自动补全
  • 【3D算法技术】blender中,在曲面上如何进行贴图?
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘mkdocs’问题
  • 【牛客刷题-剑指Offer】BM18 二维数组中的查找:一题四解,从暴力到最优
  • 推荐的Java服务环境:JDK17+ZGC(JDK 21的ZGC支持分代回收,性能更高)
  • [光学原理与应用-431]:非线性光学 - 能生成或改变激光波长的物质或元件有哪些?
  • 心路历程- Linux用户组的整理
  • 前端登录鉴权详解
  • CodeSandbox Desktop:零配置项目启动工具,实现项目环境隔离与Github无缝同步
  • Lua > Mac Mini M4安装openresty
  • SpringBootWeb 篇-深入了解 ThreadLocal 存在内存泄漏问题
  • Django 项目6:表单与认证系统
  • 【架构艺术】通过标准化事件解决变更检测能力的调度问题
  • Eureka与Nacos的区别-服务注册+配置管理
  • Python毕业设计推荐:基于Django的饮食计划推荐与交流分享平台 饮食健康系统 健康食谱计划系统
  • 基于 Gemini 的 CI/CD 自动化测评 API 集成实战教程
  • 基于定制开发开源AI智能名片S2B2C商城小程序的DMP平台离线文件上传功能优化研究
  • 友猫社区APP源码与小程序端部署详解