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

python学习笔记(深度学习)

文章目录

  • 1、概述
  • 2、学习内容
    • 2.1、pytorch 常见语法
      • 2.1.1、sum
      • 2.1.2、广播机制
      • 2.1.3、张量

1、概述

本篇博客用来记录,在深度学习过程中,常用的 python 语法内容

2、学习内容

2.1、pytorch 常见语法

2.1.1、sum

在 PyTorch 中,torch.sum() 是一个非常常用的函数,用于对张量(Tensor)进行求和操作。
它的核心作用是沿着指定的维度对张量元素进行累加,支持灵活的维度选择和结果维度保留。

函数定义

torch.sum(input, dim=None, keepdim=False, dtype=None) → Tensor
  • input:输入的张量(Tensor)。
  • dim:指定求和的维度(可以是单个整数或整数列表)。如果不指定(dim=None),则对整个张量的所有元素求和。
  • keepdim:布尔值,是否保留被求和的维度。默认为 False(不保留),若设为 True,则返回的张量会在指定维度上保留大小为 1 的维度。
  • dtype:可选参数,指定输出张量的数据类型。

对所有张量求和

import torch
x = torch.tensor([[1, 2], [3, 4]])
result = torch.sum(x)  # 等价于 1 + 2 + 3 + 4
print(result)  # 输出: tensor(10)

沿着指定维度求和

x = torch.tensor([[1, 2], [3, 4]])# 按列求和(dim=0)
result_dim0 = torch.sum(x, dim=0)  # 1+3, 2+4
print(result_dim0)  # 输出: tensor([4, 6])# 按行求和(dim=1)
result_dim1 = torch.sum(x, dim=1)  # 1+2, 3+4
print(result_dim1)  # 输出: tensor([3, 7])

保留维度求和

x = torch.tensor([[1, 2], [3, 4]])# 按列求和(dim=0)
result_dim0 = torch.sum(x, dim=0)  # 1+3, 2+4
print(result_dim0)  # 输出: tensor([4, 6])# 按行求和(dim=1)
result_dim1 = torch.sum(x, dim=1)  # 1+2, 3+4
print(result_dim1)  # 输出: tensor([3, 7])

2.1.2、广播机制

广播机制(Broadcasting)是 Python 的 NumPy 和 PyTorch 等科学计算库中的核心功能,它允许不同形状的张量/数组进行逐元素运算(如加法、乘法等),而无需显式复制数据。其核心目标是自动扩展较小数组的维度,使其与较大数组的维度匹配,从而简化代码并提高计算效率。

举例

import torch
x = torch.tensor([[1, 2], [3, 4]])
y = x + 10  # 标量 10 被广播为 [[10, 10], [10, 10]]
print(y)
# 输出:
# tensor([[11, 12],
#         [13, 14]])

2.1.3、张量

在深度学习和科学计算中(如 PyTorch、TensorFlow),张量被定义为多维数组的通用数据结构,用于高效存储和操作数据

维度(Rank):张量的“阶数”,即数组的维度数量。

  • 0阶(标量):单个数(如 5)。
  • 1阶(向量):一维数组(如 [1, 2, 3])。
  • 2阶(矩阵):二维数组(如 [[1, 2], [3, 4]])。
  • 3阶及以上:三维及以上数组(如 [[[1, 2], [3, 4]], [[5, 6], [7, 8]]])。

形状(Shape):描述每个维度的大小。例如:

  • 标量:()。
  • 向量:(n,)。
  • 矩阵:(m, n)。
  • 三维张量:(a, b, c)。

张量在深度学习中的作用

  • 数据表示:
    图像:[通道数, 高度, 宽度](如 [3, 256, 256] 表示 RGB 图像)。
    视频:[帧数, 通道数, 高度, 宽度]。
  • 批次数据:[批次大小, …](如 [128, 3, 256, 256] 表示 128 张图像)。
  • 模型参数:神经网络的权重和偏置通常以张量形式存储。
  • 高效计算:支持 GPU/TPU 加速,适用于大规模数据处理。
import torch# 创建张量
scalar = torch.tensor(5)          # 0阶张量 (标量)
vector = torch.tensor([1, 2, 3])  # 1阶张量 (向量)
matrix = torch.tensor([[1, 2], [3, 4]])  # 2阶张量 (矩阵)
tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])  # 3阶张量print("标量形状:", scalar.shape)     # 输出: torch.Size([])
print("向量形状:", vector.shape)     # 输出: torch.Size([3])
print("矩阵形状:", matrix.shape)     # 输出: torch.Size([2, 2])
print("三维张量形状:", tensor_3d.shape)  # 输出: torch.Size([2, 2, 2])
http://www.lryc.cn/news/575199.html

相关文章:

  • FPGA基础 -- Verilog 格雷码(Gray Code)计数器设计与原理解析
  • 【网站内容安全检测】之3:获取所有外部域名访问后图像
  • ABP VNext + Ocelot API 网关:微服务统一入口与安全策略
  • Boosting:从理论到实践——集成学习中的偏差征服者
  • webman 利用tcp 做服务端 对接物联网
  • 机器学习×第十五卷:集成学习下篇——她开始构建每一轮更接近你的贴靠路径(XGBoost)
  • 基于STM32的个人健康助手的设计
  • Containerd 容器技术
  • 基于Hp感染的慢性胃炎居家管理小程序的设计与实现(消息震动)
  • LVS-DR负载均衡群集深度实践:高性能架构设计与排障指南
  • 鸿蒙OpenHarmony[Disassembler反汇编工具]ArkTS运编译工具链
  • vue3递归组件的使用
  • LVS-NAT负载均衡群集实战:原理、部署与问题排查
  • Vue计算属性与监视属性
  • 机器人 “离线觉醒” ? 摆脱人类“控制”!Google DeepMind 优化 AI 让机器人断网不断智!
  • spring项目启动sheel脚本
  • 如何打造Apache Top-Level开源时序数据库IoTDB
  • 北斗导航 | 基于CNN-LSTM-PSO算法的接收机自主完好性监测算法
  • 服务器开放端口如何设置,本地内网开通应用端口让外网访问连接步骤
  • Fisco Bcos学习 - 控制台搭建和基本使用
  • 在ASP.NET Core WebApi中使用标识框架(Identity)
  • 网络安全漏洞扫描是什么?如何识别目标进行扫描?
  • 通用 Excel 导出功能设计与实现:动态列选择与灵活配置
  • 国道观察者手记
  • React + Umi(Umijs/Max) 搭建项目及配置
  • 大学专业科普 | 物联网、自动化和人工智能
  • 多服务器IP白名单配置(使用redis stream实现)
  • 神经网络的运作方式类比讲解
  • 【EI会议征稿】东北大学主办第三届机器视觉、图像处理与影像技术国际会议(MVIPIT 2025)
  • Arm架构下麒麟V10桌面版安装MySQL