Pytorch-Reduction Ops

文章目錄

  • 前言
    • 1.torch.argmax()
    • 2.torch.argmin()
    • 3.torch.amax()
    • 4.torch.amin()
    • 5.torch.all()
    • 6.torch.any()
    • 7.torch.max()
    • 8.torch.dist()
    • 9.torch.logsumexp()
    • 10.torch.mean()
    • 11.torch.norm()
    • 12.torch.nansum()
    • 13.torch.prod()
    • 14.torch.cumsum()
    • 15.torch.cumprod()


前言

在這里插入圖片描述


1.torch.argmax()

torch.argmax() 是 PyTorch 中的一個函數,用于在指定維度上獲取張量中最大值的索引。

torch.argmax(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在最后一個維度上進行操作。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一個維度獲取最大值的索引
max_indices = torch.argmax(x, dim=0)
print(max_indices)  # 輸出: tensor([1, 1, 1])

2.torch.argmin()

torch.argmin() 是 PyTorch 中的一個函數,用于在指定維度上獲取張量中最小值的索引。

torch.argmin(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在最后一個維度上進行操作。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[3, 1, 2], [6, 5, 4]])# 沿著第一個維度獲取最小值的索引
min_indices = torch.argmin(x, dim=0)
print(min_indices)  # 輸出: tensor([0, 0, 0])

3.torch.amax()

在 PyTorch 中,torch.amax() 函數用于計算張量的最大值。

torch.amax(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有維度上進行操作,返回張量的全局最大值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局最大值
global_max = torch.amax(x)
print(global_max)  # 輸出: tensor(6)# 沿著第一個維度計算最大值
max_values = torch.amax(x, dim=0)
print(max_values)  # 輸出: tensor([4, 5, 6])
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局最大值
global_max = torch.amax(x)
print(global_max)  # 輸出: tensor(6)# 沿著第一個維度計算最大值
max_values = torch.amax(x, dim=0)
print(max_values)  # 輸出: tensor([4, 5, 6])

4.torch.amin()

在 PyTorch 中,torch.amin() 函數用于計算張量的最小值。

torch.amin(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有維度上進行操作,返回張量的全局最小值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[3, 1, 2], [6, 5, 4]])# 計算全局最小值
global_min = torch.amin(x)
print(global_min)  # 輸出: tensor(1)# 沿著第一個維度計算最小值
min_values = torch.amin(x, dim=0)
print(min_values)  # 輸出: tensor([3, 1, 2])

5.torch.all()

torch.all() 是 PyTorch 中的一個函數,用于檢查張量中的所有元素是否都滿足某個條件。

torch.all(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有元素上進行操作,返回一個標量布爾值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[True, True], [False, True]])# 檢查全局是否所有元素都為 True
global_all = torch.all(x)
print(global_all)  # 輸出: tensor(False)# 沿著第一個維度檢查是否所有元素都為 True
dim_all = torch.all(x, dim=0)
print(dim_all)  # 輸出: tensor([False, True])

6.torch.any()

torch.any() 是 PyTorch 中的一個函數,用于檢查張量中的任意元素是否滿足某個條件。

torch.any(input, dim=None, keepdim=False)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有元素上進行操作,返回一個標量布爾值。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
"""
import torch# 創建一個張量
x = torch.tensor([[True, True], [False, True]])# 檢查全局是否存在任意一個元素為 True
global_any = torch.any(x)
print(global_any)  # 輸出: tensor(True)# 沿著第一個維度檢查是否存在任意一個元素為 True
dim_any = torch.any(x, dim=0)
print(dim_any)  # 輸出: tensor([ True,  True])

7.torch.max()

torch.max() 是 PyTorch 中的一個函數,用于計算張量中的最大值。

torch.max(input, dim=None, keepdim=False, out=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行操作。如果未指定,則默認在所有元素上進行操作,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局最大值
global_max = torch.max(x)
print(global_max)  # 輸出: tensor(6)# 沿著第一維度計算最大值和對應的索引
max_values, max_indices = torch.max(x, dim=0)
print(max_values)  # 輸出: tensor([4, 5, 6])
print(max_indices)  # 輸出: tensor([1, 1, 1])
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一維度計算最大值和對應的索引
max_values, max_indices = torch.max(x, dim=1)
print(max_values)  # 輸出: tensor([3, 6])
print(max_indices)  # 輸出: tensor([2, 2])

8.torch.dist()

torch.dist() 是 PyTorch 中的一個函數,用于計算兩個張量之間的距離。

torch.dist(input, other, p=2)
"""
input:第一個輸入張量。
other:第二個輸入張量。
p:可選參數,表示要使用的距離度量。默認為 2,表示歐氏距離。
"""
import torch# 創建兩個張量
x = torch.tensor([1, 2, 3])
y = torch.tensor([4, 5, 6])# 計算歐氏距離
distance = torch.dist(x, y)
print(distance)  # 輸出: tensor(5.1962)

9.torch.logsumexp()

torch.logsumexp() 是 PyTorch 中的一個函數,用于計算張量的對數求和指數。

torch.logsumexp(x, dim) = log(sum(exp(x), dim))
torch.logsumexp(input, dim, keepdim=False, out=None)
"""
input:輸入張量。
dim:指定在哪個維度上進行操作。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([1, 2, 3, 4])# 計算對數求和指數
result = torch.logsumexp(x, dim=0)
print(result)  # 輸出: tensor(4.4402)

10.torch.mean()

torch.mean() 是 PyTorch 中的一個函數,用于計算張量的平均值。

torch.mean(input, dim=None, keepdim=False, out=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行平均值計算。如果未指定,則默認在所有元素上進行計算,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 計算全局平均值
global_mean = torch.mean(x)
print(global_mean)  # 輸出: tensor(3.5000)# 沿著第一維度計算平均值
mean_values = torch.mean(x, dim=0)
print(mean_values)  # 輸出: tensor([2.5000, 3.5000, 4.5000])

11.torch.norm()

torch.norm() 是 PyTorch 中的一個函數,用于計算張量的范數(norm)。

torch.norm(input, p='fro', dim=None, keepdim=False, out=None)
"""
input:輸入張量。
p:可選參數,表示要計算的范數類型。默認為 'fro',表示計算 Frobenius 范數。還可以指定其他值,如 1 表示計算 L1 范數,2 表示計算 L2 范數等。
dim:可選參數,指定在哪個維度上進行范數計算。如果未指定,則默認在所有元素上進行計算,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個張量
x = torch.tensor([[1., 2.], [3., 4.]])# 計算 Frobenius 范數
frobenius_norm = torch.norm(x)
print(frobenius_norm)  # 輸出: tensor(5.4772)# 計算 L1 范數
l1_norm = torch.norm(x, p=1)
print(l1_norm)  # 輸出: tensor(10.)# 計算 L2 范數
l2_norm = torch.norm(x, p=2)
print(l2_norm)  # 輸出: tensor(5.4772)# 沿著第一維度計算范數
norm_values = torch.norm(x, dim=0)
print(norm_values)  # 輸出: tensor([3.1623, 4.4721])

12.torch.nansum()

torch.nansum() 是 PyTorch 中的一個函數,用于計算張量中忽略 NaN(Not a Number)值的元素之和。

torch.nansum(input, dim=None, keepdim=False, dtype=None, out=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行求和。如果未指定,則默認在所有元素上進行求和,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型。
out:可選參數,指定輸出張量作為結果的存儲位置。
"""
import torch# 創建一個包含 NaN 值的張量
x = torch.tensor([[1, float('nan'), 3], [4, 5, float('nan')]])# 沿著第一維度計算忽略 NaN 值后的求和
sum_values = torch.nansum(x, dim=0)
print(sum_values)  # 輸出: tensor([5., 5., 3.])

13.torch.prod()

torch.prod() 是 PyTorch 中的一個函數,用于計算張量中元素的乘積。

torch.prod(input, dim=None, keepdim=False, dtype=None)
"""
input:輸入張量。
dim:可選參數,指定在哪個維度上進行乘積計算。如果未指定,則默認在所有元素上進行乘積,返回一個標量張量。
keepdim:可選參數,指定是否保持輸出張量的維度與輸入張量相同。默認為 False,表示不保持維度。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2], [3, 4]])# 計算所有元素的乘積
product = torch.prod(x)
print(product)  # 輸出: tensor(24)# 沿著第一維度計算乘積
product_values = torch.prod(x, dim=0)
print(product_values)  # 輸出: tensor([3, 8])# 沿著多個維度同時計算乘積
product_multiple_dims = torch.prod(x, dim=0, keepdim=True)
product_multiple_dims = torch.prod(product_multiple_dims, dim=1, keepdim=True)
print(product_multiple_dims)  # 輸出: tensor([[24]])

14.torch.cumsum()

torch.cumsum() 是 PyTorch 中的一個函數,用于計算張量中元素的累積和(逐元素累積求和)。

torch.cumsum(input, dim, dtype=None)
"""
input:輸入張量。
dim:指定在哪個維度上進行累積和計算。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型。
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一維度計算累積和
cumulative_sum = torch.cumsum(x, dim=0)
print(cumulative_sum)
# 輸出:
# tensor([[1, 2, 3],
#         [5, 7, 9]])# 沿著第二維度計算累積和
cumulative_sum_dim1 = torch.cumsum(x, dim=1)
print(cumulative_sum_dim1)
# 輸出:
# tensor([[ 1,  3,  6],
#         [ 4,  9, 15]])

15.torch.cumprod()

torch.cumprod() 是 PyTorch 中的一個函數,用于計算張量中元素的累積乘積(逐元素累積求積)。

torch.cumprod(input, dim, dtype=None)
"""
input:輸入張量。
dim:指定在哪個維度上進行累積乘積計算。
dtype:可選參數,指定輸出張量的數據類型。如果未指定,則默認使用輸入張量的數據類型
"""
import torch# 創建一個張量
x = torch.tensor([[1, 2, 3], [4, 5, 6]])# 沿著第一維度計算累積乘積
cumulative_product = torch.cumprod(x, dim=0)
print(cumulative_product)
# 輸出:
# tensor([[ 1,  2,  3],
#         [ 4, 10, 18]])# 沿著第二維度計算累積乘積
cumulative_product_dim1 = torch.cumprod(x, dim=1)
print(cumulative_product_dim1)
# 輸出:
# tensor([[ 1,  2,  6],
#         [ 4, 20, 120]])

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

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

相關文章

node環境問題(無法加載文件D:\Software\Node.js\node_global\vue.ps1,因為在此系統上禁止運行腳本。)

問題:npm安裝lerna顯示安裝成功,但是lerna -v的時候報錯 解決步驟: 1、輸入:Get-ExecutionPolicy 2、輸入:Set-ExecutionPolicy -Scope CurrentUser(有選項的選Y) 3、輸入:RemoteSi…

【記錄】打印|無需排版,生成證件照打印PDF,打印在任意尺寸的紙上(簡單無損!)

以前我打印證件照的時候,我總是在網上找在線證件照轉換或者別的什么。但是我今天突然就琢磨了一下,用 PDF 打印應該也可以直接打印出來,然后就琢磨出來了,這么一條路大家可以參考一下。我覺得比在線轉換成一張 a4 紙要方便的多&am…

Python爬蟲要掌握哪些東西

學習Python爬蟲,你需要掌握以下幾個關鍵方面的知識: 文章目錄 Python基礎:首先,確保你對Python語言有良好的理解,包括基本語法、數據結構(如列表、字典、集合等)、函數、類和對象、模塊和包的使用等。# 有一個數字列表,要創建新的列表,元素是原列表中每個元素的平方 …

深入探索MySQL SELECT查詢:從基礎到高級,解鎖數據寶藏的密鑰

系列文章目錄 更新ing... MySQL操作全攻略:庫、表、數據、事務全面指南深入探索MySQL SELECT查詢:從基礎到高級,解鎖數據寶藏的密鑰MySQL SELECT查詢實戰:練習題精選,提升你的數據庫查詢技能PyMySQL:連接P…

解決 x-content-sha256 no match 錯誤,對 S3CrtAsyncHttpClient 修改

一、CRT修改核心邏輯: 找到 software.amazon.awssdk.services.s3.internal.crt 包下 S3CrtAsyncHttpClient 按照邏輯需要對 GET請求進行適配 signingConfig.setSignedBodyValue(AwsSigningConfig.AwsSignedBodyValue.EMPTY_SHA256); if("GET".equals(asyncRequ…

orin部署tensorrt、cuda、cudnn、pytorch、onnx

絕大部分參考https://blog.csdn.net/qq_41336087/article/details/129661850 非orin可以參考https://blog.csdn.net/JineD/article/details/131201121 報錯顯卡驅動安裝535沒法安裝、原始是和l4t-cuda的部分文件沖突 Options marked [*] produce a lot of output - pipe it t…

數據結構(一)順序表

目錄 一、概念(一)數據結構的三元素1. 邏輯結構(1)線性結構(2)非線性結構 2. 存儲結構(1)順序存儲(2)鏈式存儲(3)索引存儲 3. 運算 &a…

Linux下Git的基本使用

認識Git 先基于Windows下的git操作,熟悉了git的基本概念和使用,直接參考這幾篇文章: Git概述、安裝與本地倉庫的基本操作-CSDN博客 Git本地倉庫與遠程倉庫的交互-CSDN博客 GtiHub遠程倉庫之間的交互-CSDN博客 Git倉庫的分支操作-CSDN博客 倉庫…

深度學習中點云在預處理時的增強策略

在深度學習中,點云數據的增強策略主要用于提升模型的泛化能力和魯棒性。點云是一種表示三維數據的形式,由一組三維坐標點組成,廣泛應用于計算機視覺、自動駕駛和機器人等領域。對點云數據進行預處理和增強可以有效提高模型的性能。以下是一些…

服裝服飾商城小程序的作用是什么

要說服裝商家,那數量是非常多,廠家/經銷門店/小攤/無貨源等,線上線下同行競爭激烈,雖然用戶群體廣涵蓋每個人,但每個商家肯定都希望更多客戶被自己轉化,渠道運營方案營銷環境等不可少。 以年輕人為主的消費…

詳細介紹推薦系統的實現原理與理論公式

目錄 什么是推薦系統? 統計概況 推薦系統的類型 推薦系統——明確反饋 推薦系統——隱式反饋 評級矩陣

triton源碼分析之setup.py

一 執行流程 在執行pip install -e .的時候,便會執行這個文件,文件的入口為: setup(name=os.environ.get("TRITON_WHEEL_NAME", "triton"),version="3.0.0" + os.environ.get("TRITON_WHEEL_VERSION_SUFFIX", ""),auth…

國產PS插件新選擇;StartAI平替中的佼佼者!

前言 在設計的世界里,每一個細節都至關重要。設計師們常常面臨時間緊迫、創意受限、工具復雜等挑戰。Photoshop雖強大,但繁瑣的操作和高昂的成本往往令人望而卻步。今天我就為大家介紹一款PSAI插件——StartAI,一款專為Photoshop設計的國產A…

【Linux終端探險】:從入門到熟練,玩轉基礎命令的秘密(一)

文章目錄 🚀Linux基礎命令?1. 查看目錄命令💥2. 切換目錄👊3. 創建目錄??4. 刪除目錄/文件🚲5. 修改目錄/文件🌈6. 拷貝目錄/文件 🚀Linux基礎命令 ?1. 查看目錄命令 在Linux中,查看目錄的…

C語言?位優先與低位優先的不同之處是什么?

一、問題 C語?的最?特?就是可移植性好。根據機器類型的不同,?位優先與低位優先也不同。那么,最好的可移植的 C 程序應該同時適?這兩種類型的計算機。下?了解?下?位優先與低位優先的不同之處。 二、解答 所謂的?位優先,就是最低的地…

AUS GLOBAL 榮獲 Brokersview 頒獎盛典多項殊榮

2024年1月31日在迪拜 Sheikh Zayed Rd - Trade Centre - Trade Centre 1 舉行的 Brokersview 頒獎盛典上,AUS GLOBAL(澳洲環球)再次展現了其在金融行業的卓越實力,并榮獲多項殊榮。 AUS GLOBAL 作為一家全球領先的金融服務提供商…

一個交易者的自白:念念不忘的交易,10個日內9個虧

一、新手: 面對爆倉,我像個白癡 我是在2012年開始接觸的,這些年里我嘗到了殘酷失敗的滋味,更品嘗過勝利帶來的喜悅。剛剛接觸時很自信,總想著自己有一天一定會變成千萬富翁的,用杠桿獲取暴利。 在我首次爆倉的時候,我的…

NVIDIA DeepStream全面開發指南

本指南全面介紹了NVIDIA DeepStream SDK,包括其架構、功能、應用開發、部署以及高級特性。DeepStream是一個流分析工具包,支持從多種來源輸入視頻數據,并利用AI和計算機視覺技術生成環境洞察,適用于從邊緣到云的開發和部署。 文章…

構建智慧化居家養老服務體系:以數據驅動實現高效便捷服務

隨著社會的快速發展和人口老齡化趨勢的加劇,如何為老年人提供高質量、便捷的養老服務成為了一個亟待解決的問題。近年來,民政部 國家數據局關于組織開展基本養老服務綜合平臺試點的通知,以及廣州市人民政府辦公廳印發的《廣州市居家社區養老服…

什么是BFC

1.什么是BFC BFC即Block Formatting Contexts(塊級格式化上下文),是W3C CSS2.1規范中的一個概念。BFC是指瀏覽器中創建了一個獨立的渲染區域,并且擁有一套渲染規則,它決定了其子元素如何定位,以及與其他元…