pytorch 筆記:dist 和 cdist

1 dist

1.1 基本使用方法

torch.dist(input, other, p=2)

計算兩個Tensor之間的p-范數

1.2 主要參數

input輸入張量
other另一個輸入張量
p范數

input 和 other的形狀需要是可廣播的

1.3 舉例

import torchx=torch.randn(4)
x
#tensor([ 1.2698, -0.1209,  0.0462, -1.3271])y=torch.randn(4)
y
#tensor([ 0.6590, -0.8689, -1.0083,  0.5733])torch.dist(x,y)
#tensor(2.3783)
z=torch.randn((2,4))
z
'''
tensor([[-0.9118,  1.8019, -0.0162, -0.1969],[ 0.2998, -0.1147,  1.1427, -0.9425]])
'''torch.dist(x,z)
#tensor(3.4683)

2 cdist

2.1 基本使用方法

torch.cdist(x1, x2, p=2.0, compute_mode='use_mm_for_euclid_dist_if_necessary')

2.2 主要參數

x1B? × P × M大小的tensor
x2B × R × M 大小的tensor
p范數
compute_mode指定計算歐幾里得距離(p=2)時的方法。有三個選項:
  • use_mm_for_euclid_dist_if_necessary:如果 P > 25 或 R > 25,則使用矩陣乘法方法計算歐幾里得距離。
  • use_mm_for_euclid_dist:總是使用矩陣乘法方法計算歐幾里得距離。
  • donot_use_mm_for_euclid_dist:永不使用矩陣乘法方法計算歐幾里得距離。

返回的大小是B × P × R

如果p∈(0,∞),那么這個方法和scipy.spatial.distance.cdist(input,’minkowski’, p=p)是一樣的

如果p=0,那么這個方法和scipy.spatial.distance.cdist(input,‘hamming’)是一樣的

2.4 使用矩陣乘法速度變慢?

  • 如果數據集較大,或者你有訪問高性能計算資源(如GPU),則使用 "use_mm_for_euclid_dist" 可能會更快。
  • 相反,如果數據集較小,或者你的計算資源有限(如只使用CPU),那么 "donot_use_mm_for_euclid_dist" 可能是更好的選擇
%%timeit
points1 = torch.rand((5120, 2))
points2 = torch.rand((5120, 2))
torch.cdist(points1, points2, p=2.0, compute_mode="donot_use_mm_for_euclid_dist")
#24 ms ± 4.54 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)%%timeit
points1 = torch.rand((5120, 2))
points2 = torch.rand((5120, 2))
torch.cdist(points1, points2, p=2.0)
#36.7 ms ± 2.68 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于PaddleOCR銀行卡識別實現(四)之uni-app離線插件

目的 在前三篇文章中完成了銀行卡識別整個模型訓練等工作,通過了解PaddleOCR的端側部署,我們也可以將銀行卡號檢測模型和識別模型移植到手機中,做成一款uni-app手機端離線銀行卡號識別的應用。 準備工作 為了不占用過多篇幅,這…

Nginx的性能優化、安全以及防盜鏈配置

目錄 一、nginx的日志分割 二、nginx性能優化之啟用epoll模型 三、nginx性能優化之設置worker進程數并與cpu進行綁核 四、nginx性能優化之調整worker的最大打開文件數和最大處理連接請求數量 五、nginx性能優化之啟用gzip壓縮,提高傳輸,減少帶寬 六…

字節iconpark基于vue使用

1.安裝 npm i icon-park/vue 2.導入 說明:導入并在main.js使用。 import { install } from icon-park/vue/es/all; import icon-park/vue/styles/index.css; Vue.use(install) 3.打開官網 ByteDance IconPark 4.復制 說明:點擊官方圖標庫&#xff0c…

Java-JDBC操作MySQL

Java-JDBC操作MySQL 文章目錄 Java-JDBC操作MySQL一、Java-JDBC-MySQL的關系二、創建連接三、登錄MySQL四、操作數據庫1、返回型操作2、無返回型操作 練習題目及完整代碼 一、Java-JDBC-MySQL的關系 #mermaid-svg-B7qjXrosQaCOwRos {font-family:"trebuchet ms",verd…

國產Type-C PD芯片—接口快充取電芯片

常用USB PDTYPE-C受電端,即設備端協議IC芯片(PD Sink,也叫PD誘騙芯片),誘導取電芯片。 產品介紹 LDR6328: ◇ 采用 SOP-8 封裝 ◇ 兼容 USB PD 3.0 規范,支持 USB PD 2.0 ◇ 兼容 QC 3.0 規范&#x…

TailwindCSS 支持文本文字超長溢出截斷、文字文本省略號

前言 文本文字超長截斷并自動補充省略號,這是前端日常開發工作中常用的樣式設置能力,文字超長截斷主要分為單行超長截斷和多行超長截斷。本文通過介紹基本CSS樣式、tailwindcss 類設置兩種基礎方式來實現文字超長截斷。 TailwindCSS 設置 單行文字超長…

WPF仿網易云搭建筆記(2):組件化開發

文章目錄 前言專欄和Gitee倉庫依賴屬性實戰:縮小,全屏,關閉按鈕依賴屬性操作封裝主窗口傳遞this本身給TitleView標題控件主要代碼MainWindow.xmalMainWindow.cs依賴屬性方法封裝TitleView.csTitleViewModelTitleViewModel實現效果 前言 這次…

基于以太坊的智能合約開發Solidity(函數繼承篇)

參考教程:【實戰篇】1、函數重載_嗶哩嗶哩_bilibili 1、函數重載: pragma solidity ^0.5.17;contract overLoadTest {//不帶參數function test() public{}//帶一個參數function test(address account) public{}//參數類型不同,雖然uint160可…

發送、接收消息,界面不及時刷新

發送、接收消息后 UI 沒展示,不及時刷新,大概率 是 SDK 的 UI 刷新功能被干擾,參考下面排查: 檢查 initWithAppkey 和 connectWithToken 使用的是否是 IMKit 核心類 RCIM 的方法,如果不是,請換成 RCIM 的。…

【刷題】位運算

2 n 2^n 2n 1<<n判斷某一位是否為1 s&1<<k將上面兩個組合&#xff0c;可以得到判斷一個集合中哪些內容包含&#xff0c;遍歷所有情況。 100140. 關閉分部的可行集合數目 一個公司在全國有 n 個分部&#xff0c;它們之間有的有道路連接。一開始&#xff0c;…

CentOS 7 離線安裝達夢數據庫8.0

前期準備工作 確認操作系統的版本和數據庫的版本是否一致 ## 查看系統版本&#xff1a;cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)關閉防火墻和Selinux # 查看selinux是不是disabled / enforce cat /etc/selinux/config## 查看防火墻狀態 firewall-cmd …

數據結構之歸并排序及排序總結

目錄 歸并排序 歸并排序的時間復雜度 排序的穩定性 排序總結 歸并排序 歸并排序大家只需要掌握其遞歸方法即可&#xff0c;非遞歸方法由于在某些特殊場景下邊界難控制&#xff0c;我們一般很少使用非遞歸實現歸并排序。那么歸并排序的遞歸方法我們究竟是怎樣實現呢&#xff…

PHP醫院手術麻醉系統源碼,laravel、vue2 、mysql技術開發,自主知識產權,二開快捷

醫院手術麻醉系統全套源碼&#xff0c;有演示&#xff0c;自主知識產權 技術架構&#xff1a;PHP、 js 、mysql、laravel、vue2 手術麻醉臨床信息管理系統是數字化手段應用于手術過程中的重要組成部分&#xff0c;用數字形式獲取并存儲手術相關信息&#xff0c;既便捷又高效。…

每日一練2023.12.10—— 倒數第N個字符串【PTA】

題目鏈接&#xff1a;L1-050 倒數第N個字符串 題目要求&#xff1a; 給定一個完全由小寫英文字母組成的字符串等差遞增序列&#xff0c;該序列中的每個字符串的長度固定為 L&#xff0c;從 L 個 a 開始&#xff0c;以 1 為步長遞增。例如當 L 為 3 時&#xff0c;序列為 { a…

Qt Creator設置IDE的字體、顏色、主題樣式

Qt是一款開源的、跨平臺的C開發框架&#xff0c;支持Windows、Linux、Mac系統&#xff0c;從1995發布第一版以來&#xff0c;發展迅猛&#xff0c;最開始是用于Nokia手機的Symbian(塞班)系統和應用程序開發&#xff0c;現在是用于嵌入式軟件、桌面軟件(比如WPS、VirtualBox)、A…

【圖論筆記】克魯斯卡爾算法(Kruskal)求最小生成樹

【圖論筆記】克魯斯卡爾算法&#xff08;Kruskal&#xff09;求最小生成樹 適用于 克魯斯卡爾適合用來求邊比較稀疏的圖的最小生成樹 簡記&#xff1a; 將邊按照升序排序&#xff0c;選取n-1條邊&#xff0c;連通n個頂點。 添加一條邊的時候&#xff0c;如何判斷能不能添加…

Python實現PDF-Excel

輕松解決PDF格式轉Excel&#xff08;使用python實現&#xff09; 實現思路&#xff1a; 要將PDF轉換為Excel&#xff0c;可以使用以下步驟&#xff1a; 解析PDF內容&#xff1a;首先&#xff0c;需要使用Python中的第三方庫&#xff08;如PyPDF2、pdfminer等&#xff09;來解…

西南科技大學C++程序設計實驗十二(文件流操作)

一、實驗目的 1. 熟悉文件的基本操作; 2. 在類中添加打開文件、保存文件、讀取文件等處理函數; 二、實驗任務 1. 分析完善程序:主函數創建一個文件對象,每次打開文件,在其尾部添加數據。如果文件不存在,則新建該文件。請將空白處需要完善的功能補充完整。 #include …

mybatis-config.xml的配置

1&#xff1a;MyBatis 的常規配置文件 mybatis-config.xml 包含了對 MyBatis 框架的全局配置&#xff0c;下面是一個常見的示例&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD…

Java代碼重構技巧:提高可維護性和可擴展性

引言&#xff1a; 在軟件開發過程中&#xff0c;代碼重構是一項非常重要的任務。通過對代碼進行重構&#xff0c;可以提高代碼的可維護性和可擴展性&#xff0c;減少代碼的復雜度&#xff0c;增加代碼的可讀性和可測試性。本文將介紹一些常用的Java代碼重構技巧&#xff0c;幫助…