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

PyTorch中topk函數(shù)的用法詳解

 更新時(shí)間:2020年01月02日 16:32:26   作者:咆哮的阿杰  
今天小編就為大家分享一篇PyTorch中topk函數(shù)的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

聽名字就知道這個(gè)函數(shù)是用來求tensor中某個(gè)dim的前k大或者前k小的值以及對(duì)應(yīng)的index。

用法

torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)

input:一個(gè)tensor數(shù)據(jù)

k:指明是得到前k個(gè)數(shù)據(jù)以及其index

dim: 指定在哪個(gè)維度上排序, 默認(rèn)是最后一個(gè)維度

largest:如果為True,按照大到小排序; 如果為False,按照小到大排序

sorted:返回的結(jié)果按照順序返回

out:可缺省,不要

topk最常用的場(chǎng)合就是求一個(gè)樣本被網(wǎng)絡(luò)認(rèn)為前k個(gè)最可能屬于的類別。我們就用這個(gè)場(chǎng)景為例,說明函數(shù)的使用方法。

假設(shè)一個(gè),N是樣本數(shù)目,一般等于batch size, D是類別數(shù)目。我們想知道每個(gè)樣本的最可能屬于的那個(gè)類別,其實(shí)可以用torch.max得到。如果要使用topk,則k應(yīng)該設(shè)置為1。

import torch

pred = torch.randn((4, 5))
print(pred)
values, indices = pred.topk(1, dim=1, largest=True, sorted=True)
print(indices)
# 用max得到的結(jié)果,設(shè)置keepdim為True,避免降維。因?yàn)閠opk函數(shù)返回的index不降維,shape和輸入一致。
_, indices_max = pred.max(dim=1, keepdim=True)

print(indices_max == indices)
# pred
tensor([[-0.1480, -0.9819, -0.3364, 0.7912, -0.3263],
    [-0.8013, -0.9083, 0.7973, 0.1458, -0.9156],
    [-0.2334, -0.0142, -0.5493, 0.0673, 0.8185],
    [-0.4075, -0.1097, 0.8193, -0.2352, -0.9273]])
# indices, shape為 【4,1】,
tensor([[3],  #【0,0】代表 第一個(gè)樣本最可能屬于第一類別
    [2],  # 【1, 0】代表第二個(gè)樣本最可能屬于第二類別
    [4],
    [2]])
# indices_max等于indices
tensor([[True],
    [True],
    [True],
    [True]])

現(xiàn)在在嘗試一下k=2

import torch

pred = torch.randn((4, 5))
print(pred)
values, indices = pred.topk(2, dim=1, largest=True, sorted=True) # k=2
print(indices)
# pred
tensor([[-0.2203, -0.7538, 1.8789, 0.4451, -0.2526],
    [-0.0413, 0.6366, 1.1155, 0.3484, 0.0395],
    [ 0.0365, 0.5158, 1.1067, -0.9276, -0.2124],
    [ 0.6232, 0.9912, -0.8562, 0.0148, 1.6413]])
# indices
tensor([[2, 3],
    [2, 1],
    [2, 1],
    [4, 1]])

可以發(fā)現(xiàn)indices的shape變成了【4, k】,k=2。

其中indices[0] = [2,3]。其意義是說明第一個(gè)樣本的前兩個(gè)最大概率對(duì)應(yīng)的類別分別是第3類和第4類。

大家可以自行print一下values。可以發(fā)現(xiàn)values的shape和indices的shape是一樣的。indices描述了在values中對(duì)應(yīng)的值在pred中的位置。

以上這篇PyTorch中topk函數(shù)的用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python的Flask框架應(yīng)用程序?qū)崿F(xiàn)使用QQ賬號(hào)登錄的方法

    Python的Flask框架應(yīng)用程序?qū)崿F(xiàn)使用QQ賬號(hào)登錄的方法

    利用QQ開放平臺(tái)的API使用QQ賬號(hào)登錄是現(xiàn)在很多網(wǎng)站都具備的功能,而對(duì)于Flask框架來說則有Flask-OAuthlib這個(gè)現(xiàn)成的輪子,這里我們就來看一下Python的Flask框架應(yīng)用程序?qū)崿F(xiàn)使用QQ賬號(hào)登錄的方法
    2016-06-06
  • Python爬蟲基礎(chǔ)之初次使用scrapy爬蟲實(shí)例

    Python爬蟲基礎(chǔ)之初次使用scrapy爬蟲實(shí)例

    今天給大家?guī)淼氖顷P(guān)于Python爬蟲的相關(guān)知識(shí),文章圍繞著Python scrapy展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python多線程編程方式分析示例詳解

    python多線程編程方式分析示例詳解

    本文介紹一下有關(guān)Python多線程的相關(guān)應(yīng)用技巧,線程相對(duì)進(jìn)程來說是"輕量級(jí)"的,操作系統(tǒng)用較少的資源創(chuàng)建和管理線程。程序中的線程在相同的內(nèi)存空間中執(zhí)行,并共享許多相同的資源,下面看使用方法
    2013-12-12
  • Python內(nèi)置函數(shù)map()的具體使用

    Python內(nèi)置函數(shù)map()的具體使用

    Python中的map()函數(shù)是一個(gè)高效的內(nèi)置函數(shù),用于將指定函數(shù)應(yīng)用于序列的每個(gè)元素,通過接收一個(gè)函數(shù)和一個(gè)或多個(gè)序列,本文就來詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2024-09-09
  • python中字符串變二維數(shù)組的實(shí)例講解

    python中字符串變二維數(shù)組的實(shí)例講解

    下面小編就為大家分享一篇python中字符串變二維數(shù)組的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法實(shí)例分析

    Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法實(shí)例分析

    這篇文章主要介紹了Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法,結(jié)合實(shí)例形式分析了Python os模塊、sys模塊及shutil模塊針對(duì)文件、路徑等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • python opencv角點(diǎn)檢測(cè)連線功能的實(shí)現(xiàn)代碼

    python opencv角點(diǎn)檢測(cè)連線功能的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python opencv角點(diǎn)檢測(cè)連線功能的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python統(tǒng)計(jì)序列和文件中元素的頻度

    Python統(tǒng)計(jì)序列和文件中元素的頻度

    這篇文章主要介紹了Python統(tǒng)計(jì)序列和文件中元素的頻度,文章基于python的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04
  • 九步學(xué)會(huì)Python裝飾器

    九步學(xué)會(huì)Python裝飾器

    這篇文章主要介紹了Python裝飾器的用法,以實(shí)例形式較為詳細(xì)的介紹了Python裝飾器的使用方法,需要的朋友可以參考下
    2015-05-05
  • Python+Mysql實(shí)現(xiàn)登錄注冊(cè)完整代碼示例

    Python+Mysql實(shí)現(xiàn)登錄注冊(cè)完整代碼示例

    在開發(fā)中用戶注冊(cè)和登錄是常見的功能需求,這篇文章主要給大家介紹了關(guān)于Python+Mysql實(shí)現(xiàn)登錄注冊(cè)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03

最新評(píng)論