首页 > 其他分享 >【pytorch】torch.cdist使用说明

【pytorch】torch.cdist使用说明

时间:2023-02-13 10:32:14浏览次数:53  
标签:0.2 0.1 torch pytorch x2 cdist x1


使用说明

torch.cdist的使用介绍如​​官网​​所示,

【pytorch】torch.cdist使用说明_码本

它是批量计算两个向量集合的距离。

其中, x1和x2是输入的两个向量集合。

p 默认为2,为欧几里德距离。

它的功能上等同于 scipy.spatial.distance.cdist(input,’minkowski’, p=p)

如果x1的shape是 [B,P,M], x2的shape是[B,R,M],则cdist的结果shape是 [B,P,R]

进一步的解释

x1一般是输入矢量,而x2一般是码本。

x2中所有的元素分别与x1中的每一个元素求欧几里德距离(当p默认为2时)

如下面示例

import torch

x1 = torch.FloatTensor([0.1, 0.2, 0, 0.5]).view(4, 1)

x2 = torch.FloatTensor([0.2, 0.3]).view(2, 1)

print(torch.cdist(x1,x2))

x2中的所有元素分别与x1中的每一个元素求欧几里德距离,即有如下步骤

【pytorch】torch.cdist使用说明_python_02

所以运行结果为

【pytorch】torch.cdist使用说明_pytorch_03

扩张到2维的情况

如下面示例

import torch

x1 = torch.FloatTensor([0.1, 0.2, 0.1, 0.5, 0.2, -0.9, 0.8, 0.4]).view(4, 2)

x2 = torch.FloatTensor([0.2, 0.3, 0, 0.1]).view(2, 2)

print(torch.cdist(x1,x2))

x1和x2数据是二维的,

【pytorch】torch.cdist使用说明_深度学习_04

x2中的所有元素分别与x1中的每一个元素求欧几里德距离,即有如下步骤

【pytorch】torch.cdist使用说明_码本_05

所以结果如下

【pytorch】torch.cdist使用说明_使用说明_06

p=2的欧几里德距离也是L2范式,如果p=1即是L1范式
上面的例子修改一下p参数

import torch

x1 = torch.FloatTensor([0.1, 0.2, 0.1, 0.5, 0.2, -0.9, 0.8, 0.4]).view(4, 2)

x2 = torch.FloatTensor([0.2, 0.3, 0, 0.1]).view(2, 2)

print(torch.cdist(x1,x2,p=1))

结果如下,这里就不一个一个运算了。

【pytorch】torch.cdist使用说明_码本_07


标签:0.2,0.1,torch,pytorch,x2,cdist,x1
From: https://blog.51cto.com/u_15473842/6053675

相关文章

  • Pytorch环境安装
    WIN10、NVIDIAGeForceRTX3060python3.7,CUDAv11.1.1,PyTorch1.9.01.安装anacodah和PyCharm:  1.1为了稳定,此处安装了2019年10月16日的Anaconda3-2019.10-Windows-x......
  • 使用scikit-learn为PyTorch 模型进行超参数网格搜索
    scikit-learn是Python中最好的机器学习库,而PyTorch又为我们构建模型提供了方便的操作,能否将它们的优点整合起来呢?在本文中,我们将介绍如何使用scikit-learn中的网格搜索功......
  • 9、torchvision中的transforms(主要是对图像进行一些变换)
    1、transforms结构及用法:(transforms也就是一个.py的python文件)首先导入transforms:  fromtorchvisionimporttransforms  这个就是你输入图片,然后他处理后返回给你......
  • 安装pytorch踩过的坑
    failedwithinitialfrozensolve 可能是由于没有这个版本的matplotlib(包名),可以用'condasearch包名'搜索一下,进一步确认问题下载包的速度慢condacreate-n环境......
  • 太初电子 PyTorch测试工程师 面经
    1.自我介绍2.用到的测试框架主要有哪些3.主要的语言是什么4.用python写一个二分查找5.加一个装饰器6.content、generator7.unitest、pytest8.new、init的原理9.接......
  • Pytorch_深度学习概念(一)
    AI-ML——Deeplearning机器学习支持向量机:特征提取,特征工程深度学习人工神经网络:卷积神经网络和循环神经网络卷积神经网络:对图像的空间具有不变性--旋转-放缩-......
  • pytorch学习笔记2
    pytorch学习笔记2   RNN结构图pytorch保存模型方法Pytorch有两种保存模型的方式,都是通过调用pickle序列化方法实现的。第一种方法只保存模型参数。第二种方法......
  • Pytorch中关于model.eval()的作用及分析
    model.eval()的作用及分析model.eval()作用等同于self.train(False)简而言之,就是评估模式。而非训练模式。在评估模式下,batchNorm层,dropout层等用于优化训练而添加......
  • PyTorch安装流水账
    背景win10系统,15年的老电脑,GPU是NVIDIAGeForceGTX960M。安装前做了一些调研,PyTorch分为GPU版本和CPU版本,设想是安装GPU版本,然后可以在本地跑一些小demo,之后租云服务器......
  • 基于CPU的Pytorch安装与测试
    Pytorch安装1.首先安装anaconda。2.在终端的指定conda环境下输入:condainstallpytorchtorchvisiontorchaudiocpuonly-cpytorchPytorch测试1.终端输入python,进......