向量矩阵范数pytorch

向量矩阵范数pytorch

范数是向量或矩阵的长度

矩阵的长度 模

二范数是什么

二范数(L2 norm)是一种常见的数学概念,它表示一个向量的模长。在数学中,一个向量的二范数定义为其元素平方和的平方根,即:

矩阵按照某个维度求和(dim就是shape数组的下标)

求和不降维,就keepdims=True

降维求和

axis的值对应着shape的下标

1. torch

1.1 Tensors一些常用函数

1.1.2 Indexing, Slicing, Joining, Mutating Ops

  1. concat():和cat()功能相同
  2. cat(tensors, dim=0, *, out=None)串接tensors(一串Tensor,非空Tensor在非dim维度必须形状相同),返回结果
  3. reshape(input, shape)
  4. squeeze(input, dim=None, *, out=None)
    去掉input(Tensor)中长度为1的维度,返回这个Tensor。如果有dim就只对指定维度进行squeeze操作。
    返回值与input共享储存空间。

squeeze()函数的功能是维度压缩。返回一个tensor(张量),其中 input 中大小为1的所有维都已删除。

举个例子:如果 input 的形状为 (A×1×B×C×1×D),那么返回的tensor的形状则为 (A×B×C×D)

当给定 dim 时,那么只在给定的维度(dimension)上进行压缩操作。

举个例子:如果 input 的形状为 (A×1×B),squeeze(input, 0)后,返回的tensor不变;squeeze(input, 1)后,返回的tensor将被压缩为 (A×B)

原文链接:https://blog.csdn.net/qq_40305043/article/details/107767652

python 复制代码
import torch

x = torch.zeros(2, 1, 2, 1, 2)
print(x.size()) #torch.Size([2, 1, 2, 1, 2])
y = torch.squeeze(x)
print(y.size())  # torch.Size([2, 2, 2])
y = torch.squeeze(x, 0)
print(y.size())# torch.Size([2, 1, 2, 1, 2])
y = torch.squeeze(x, 1)  # torch.Size([2, 2, 1, 2])
print(y.size())
y = torch.squeeze(x, 3)  # torch.Size([2, 1, 2, 2])
print(y.size())
y = torch.squeeze(x, [1, 3])  # torch.Size([2, 2, 2])
print(y.size())
  1. unsqueeze(input, dim)
    在input指定维度插入一个长度为1的维度,返回Tensor
python 复制代码
import torch

x = torch.tensor([1, 2, 3, 4])  #
y = torch.unsqueeze(x, 0)  # 在第0维扩展,第0维为1
z = torch.unsqueeze(x, 1)  # 在第1维扩展,第1维为1
print(x, x.shape)
print(y, y.shape)
print(z, z.shape)
python 复制代码
tensor([1, 2, 3, 4]) torch.Size([4])
tensor([[1, 2, 3, 4]]) torch.Size([1, 4])
tensor([[1],
        [2],
        [3],
        [4]]) torch.Size([4, 1])
  1. t(input)
    零维和一维input不变,二维input转置(等如transpose(input, 0, 1)),返回结果
  2. transpose(input, dim0, dim1)
    返回input转置的Tensor,dim0和dim1交换。
    返回值与input共享储存空间。
python 复制代码
>>> x = torch.randn(2, 3)
>>> x
tensor([[ 1.0028, -0.9893,  0.5809],
        [-0.1669,  0.7299,  0.4942]])
>>> torch.transpose(x, 0, 1)
tensor([[ 1.0028, -0.1669],
        [-0.9893,  0.7299],
        [ 0.5809,  0.4942]])

一些安装问题

pip install d2l==0.17.5

安装不了

cd进不去不去目录

安装d2l的时候,先下载cd到下载到的目录进行安装,发现经不去目录
cd /d 命令与普通的 cd 命令不同,它允许你不仅改变目录,还可以改变驱动器

python 复制代码
cd /d D:\python\Anacond_Folder\envs\d2l
pip install d2l-0.15.1-py3-none-any.whl

%matplotlib inline 是 Jupyter Notebook 或 JupyterLab 中的一个魔术命令,用于在 Notebook 中显示 matplotlib 图形的输出。

import random 导入了 Python 的 random 模块,用于生成随机数。

import torch 导入了 PyTorch 库,用于深度学习任务。

from d2l import torch as d2l 导入了 d2l 模块,并将其重命名为 d2l。d2l 是 Dive into Deep Learning (D2L) 图书的一个开源教学库,用于深度学习的代码实现和示例

PyTorch里面_表示重写内容

在默认情况下,PyTorch会累积梯度,我们需要清除之前的值

x.grad.zero_()

y = x.sum()

y.backward()

x.grad

很少对向量函数求导,求导结果理论上来说是一个矩阵

实现某些网络,把参数固定住的时候比较有用

相关推荐
望获linux25 分钟前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
程序员大雄学编程30 分钟前
「深度学习笔记4」深度学习优化算法完全指南:从梯度下降到Adam的实战详解
笔记·深度学习·算法·机器学习
新子y39 分钟前
【小白笔记】PyTorch 和 Python 基础的这些问题
pytorch·笔记·python
我是李武涯1 小时前
PyTorch DataLoader 高级用法
人工智能·pytorch·python
java1234_小锋3 小时前
TensorFlow2 Python深度学习 - 使用Dropout层解决过拟合问题
python·深度学习·tensorflow·tensorflow2
Victory_orsh3 小时前
“自然搞懂”深度学习系列(基于Pytorch架构)——01初入茅庐
人工智能·pytorch·python·深度学习·算法·机器学习
豆沙沙包?4 小时前
2025年--Lc187--120. 三角形最小路径和(多维动态规划,矩阵)--Java版
java·矩阵·动态规划
格林威5 小时前
近红外相机在半导体制造领域的应用
大数据·人工智能·深度学习·数码相机·视觉检测·制造·工业相机
StarPrayers.6 小时前
用 PyTorch 搭建 CIFAR10 线性分类器:从数据加载到模型推理全流程解析
人工智能·pytorch·python
Francek Chen6 小时前
【深度学习计算机视觉】13:实战Kaggle比赛:图像分类 (CIFAR-10)
深度学习·计算机视觉·分类