欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyTorch中F.softmax的具體使用

 更新時間:2025年05月13日 10:16:38   作者:資源存儲庫  
F.softmax是PyTorch中用于計算Softmax函數(shù)的函數(shù),本文主要介紹了PyTorch中F.softmax的具體使用,具有一定的參考價值,感興趣的可以了解一下

F.softmax 是 PyTorch 中用于計算 Softmax 函數(shù) 的函數(shù),通常用于 多分類任務(wù) 的輸出層,用來將模型的原始輸出(稱為 logits)轉(zhuǎn)化為概率分布。

Softmax 函數(shù)將每個類別的得分(logits)轉(zhuǎn)換為一個介于 0 和 1 之間的概率值,并且所有類別的概率之和等于 1。

Softmax 函數(shù)的定義

給定一個包含n 個元素的向量\mathbf{z} = [z_1, z_2, ..., z_n] ,Softmax 函數(shù)的輸出是一個概率分布\mathbf{p} = [p_1, p_2, ..., p_n] ,其中每個p_i 表示第i個類別的概率。Softmax 的公式如下:

??p_i = \frac{e^{z_i}}{\sum_{j=1}^{n} e^{z_j}}

  • z_i:第i個類別的原始得分(logit)。
  • e^{z_i}?:對得分進行指數(shù)運算。
  • ?\sum_{j=1}^{n} e^{z_j}:所有類別得分指數(shù)的總和,用于對概率進行歸一化,使得所有的概率和為 1。

F.softmax 的作用

F.softmax 函數(shù)將給定的 logits(即模型的原始輸出)轉(zhuǎn)換為概率分布。

假設(shè)我們有一個包含 10 個類別的模型輸出,那么 F.softmax 會將這 10 個 logits 轉(zhuǎn)化為 10 個概率,每個概率值在 0 到 1 之間,并且所有 10 個概率的和為 1。

用法

在 PyTorch 中,F.softmax 由 torch.nn.functional 模塊提供,使用方式如下:

import torch
import torch.nn.functional as F

# 假設(shè)我們有一個大小為 [batch_size, num_classes] 的張量
logits = torch.tensor([[1.0, 2.0, 3.0], [1.0, 2.0, 3.0]])

# 計算 softmax,dim=1 表示對每一行進行 softmax 計算
probabilities = F.softmax(logits, dim=1)

print(probabilities)

詳細解釋

  • logits:是一個 2D 張量,每一行表示一個樣本的原始輸出值(logits),每一列表示該樣本在某個類別的得分。

  • dim=1:指定了計算 Softmax 的維度。dim=1 表示對每一行計算 Softmax,即每個樣本的得分都會被轉(zhuǎn)化為一個概率分布。注意,如果是處理多維數(shù)據(jù),可以通過調(diào)整 dim 來指定 Softmax 計算的維度。

    • 如果 dim=0,則對每列計算 Softmax,通常在處理多批次數(shù)據(jù)時不常用。
  • output:Softmax 轉(zhuǎn)換后的輸出是一個概率分布,所有元素都在 0 到 1 之間,并且每行的元素和為 1。

示例代碼解釋

import torch
import torch.nn.functional as F

# 假設(shè)輸入是一個大小為 (2, 3) 的張量,其中 2 是 batch_size,3 是類別數(shù)
logits = torch.tensor([[1.0, 2.0, 3.0], [1.0, 2.0, 3.0]])

# 計算 Softmax,按照列來計算,即對每行進行 Softmax
probabilities = F.softmax(logits, dim=1)

print(probabilities)

輸入:

tensor([[1.0, 2.0, 3.0], 
        [1.0, 2.0, 3.0]])

輸出:

tensor([[0.09003057, 0.24472847, 0.66524096],
        [0.09003057, 0.24472847, 0.66524096]])

解釋:

  • 對于每一行的得分,Softmax 會將其轉(zhuǎn)換為概率。
    • 第一行 [1.0, 2.0, 3.0] 經(jīng)過 Softmax 處理后得到 [0.0900, 0.2447, 0.6652],這些概率值的總和為 1。
    • 第二行 [1.0, 2.0, 3.0] 同樣經(jīng)過 Softmax 轉(zhuǎn)換后,得到相同的概率分布 [0.0900, 0.2447, 0.6652],這也保證了概率總和為 1。

為什么使用 Softmax?

  • 多分類任務(wù):在多分類問題中,模型的輸出通常是每個類別的原始得分。Softmax 函數(shù)能夠?qū)⑦@些得分轉(zhuǎn)化為概率分布,使得每個類別的預(yù)測概率能夠加起來為 1,并且通過最大概率來做預(yù)測。

  • 分類概率:Softmax 給出的每個類別的概率可以幫助我們了解模型對每個類別的信心程度。對于實際應(yīng)用,通常選擇概率最大的類別作為模型的預(yù)測結(jié)果。

Softmax 與 Logits

  • Logits 是未經(jīng)處理的原始輸出值,通常來自神經(jīng)網(wǎng)絡(luò)的輸出層。
  • Softmax 是對 logits 的一種規(guī)范化,它將 logits 轉(zhuǎn)換為 0 到 1 之間的概率值。

示例:多分類任務(wù)中的 Softmax

假設(shè)我們有一個多分類任務(wù),模型的輸出是一個包含 4 個類別的 logits 向量,[2.0, 1.0, 0.1, 0.5]

我們希望將其轉(zhuǎn)換為類別的概率分布。

import torch
import torch.nn.functional as F

logits = torch.tensor([2.0, 1.0, 0.1, 0.5])

# 使用 F.softmax 將 logits 轉(zhuǎn)換為概率分布
probabilities = F.softmax(logits, dim=0)

print(probabilities)

輸出:

tensor([0.5438, 0.1993, 0.0717, 0.1852])

解釋:

  • 原始 logits 為 [2.0, 1.0, 0.1, 0.5],經(jīng)過 Softmax 處理后,得到了每個類別的概率 [0.5438, 0.1993, 0.0717, 0.1852]。概率最大的類別是第一個類別,其概率為 0.5438。

總結(jié)

  • Softmax 函數(shù)將 logits 轉(zhuǎn)換為概率分布,適用于多分類任務(wù)。
  • 它保證了輸出的每個類別概率值在 0 到 1 之間,并且所有概率的和為 1。
  • 在 PyTorch 中,F.softmax 是計算 Softmax 的常用函數(shù),通常與 CrossEntropyLoss 搭配使用。

到此這篇關(guān)于PyTorch中F.softmax的具體使用的文章就介紹到這了,更多相關(guān)PyTorch F.softmax內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • python對gif圖壓縮的完美解決方案

    python對gif圖壓縮的完美解決方案

    上圖圖片的時候由于圖片太大,導(dǎo)致上次不成功,因此需要對文件進行統(tǒng)一壓縮,這篇文章主要給大家介紹了關(guān)于python對gif圖壓縮的完美解決方案,需要的朋友可以參考下
    2021-11-11
  • Django展示可視化圖表的多種方式

    Django展示可視化圖表的多種方式

    這篇文章主要介紹了Django展示可視化圖表的多種方式,幫助大家更好的理解和學(xué)習(xí)使用django框架,感興趣的朋友可以了解下
    2021-04-04
  • 使用python 寫一個靜態(tài)服務(wù)(實戰(zhàn))

    使用python 寫一個靜態(tài)服務(wù)(實戰(zhàn))

    今天小編就為大家分享一篇使用python 寫一個靜態(tài)服務(wù)(實戰(zhàn)),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python中的HTTP請求超時處理方式

    Python中的HTTP請求超時處理方式

    HTTP請求超時是指客戶端在設(shè)定的時間內(nèi)未收到服務(wù)器完整響應(yīng),合理設(shè)置超時時間可提高系統(tǒng)性能和用戶體驗,Python中,requests庫和aiohttp庫提供超時控制功能,通過timeout參數(shù)設(shè)置請求超時,并利用try-except捕獲異常,合理超時設(shè)置和處理是開發(fā)HTTP客戶端的重要技巧
    2024-11-11
  • python用pandas讀寫和追加csv文件

    python用pandas讀寫和追加csv文件

    大家好,本篇文章主要講的是python用pandas讀寫和追加csv文件,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系解讀

    Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系解讀

    這篇文章主要介紹了Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python爬蟲學(xué)習(xí)之獲取指定網(wǎng)頁源碼

    Python爬蟲學(xué)習(xí)之獲取指定網(wǎng)頁源碼

    這篇文章主要為大家詳細介紹了Python爬蟲學(xué)習(xí)之獲取指定網(wǎng)頁源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python變量訪問權(quán)限控制詳解

    Python變量訪問權(quán)限控制詳解

    這篇文章主要介紹了Python變量訪問權(quán)限控制詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-06-06
  • Python基礎(chǔ)詳解之列表復(fù)制

    Python基礎(chǔ)詳解之列表復(fù)制

    這篇文章主要介紹了Python基礎(chǔ)詳解之列表復(fù)制,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • 對Python中range()函數(shù)和list的比較

    對Python中range()函數(shù)和list的比較

    下面小編就為大家分享一篇對Python中range()函數(shù)和list的比較,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論