最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch框架之one_hot編碼函數(shù)解讀

 更新時(shí)間:2023年02月01日 09:28:42   作者:NULL not error  
這篇文章主要介紹了Pytorch框架之one_hot編碼函數(shù)解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Pytorch one_hot編碼函數(shù)解讀

one_hot編碼定義

在一個(gè)給定的向量中,按照設(shè)定的最值–可以是向量中包含的最大值(作為最高分類(lèi)數(shù)),有也可以是自定義的最大值,設(shè)計(jì)one_hot編碼的長(zhǎng)度:最大值+1【詳見(jiàn)舉的例子吧】。

然后按照最大值創(chuàng)建一個(gè)1*(最大值+1)的維度大小的全零零向量:[0, 0, 0, …] => 共最大值+1對(duì)應(yīng)的個(gè)數(shù)

接著按照向量中的值,從第0位開(kāi)始索引,將向量中值對(duì)應(yīng)的位置設(shè)置為1,其他保持為0.

eg:

假設(shè)設(shè)定one_hot長(zhǎng)度為4(最大值) –

且當(dāng)前向量中值為1對(duì)應(yīng)的one_hot編碼:

[0, 1, 0, 0]

當(dāng)前向量中值為2對(duì)應(yīng)的one_hot編碼:

[0, 0, 1, 0]

eg:

假設(shè)設(shè)定one_hot長(zhǎng)度為6(等價(jià)最大值+1) –

且當(dāng)前向量中值為4對(duì)應(yīng)的one_hot編碼:

[0, 0, 0, 0, 1, 0]

當(dāng)前向量中值為2對(duì)應(yīng)的one_hot編碼:

[0, 0, 1, 0, 0, 0]

eg:

targets = [4, 1, 0, 3] => max_value=4=>one_hot的長(zhǎng)度為(4+1)

假設(shè)設(shè)定one_hot長(zhǎng)度為5(最大值) –

且當(dāng)前向量中值為4對(duì)應(yīng)的one_hot編碼:

[0, 0, 0, 0, 1]

當(dāng)前向量中值為1對(duì)應(yīng)的one_hot編碼:

[0, 1, 0, 0, 0]

Pytorch中one_hot轉(zhuǎn)換

import torch

targets = torch.tensor([5, 3, 2, 1])

targets_to_one_hot = torch.nn.functional.one_hot(targets) ? # 默認(rèn)按照targets其中的最大值+1作為one_hot編碼的長(zhǎng)度
# result:?
# tensor(
# [0, 0, 0, 0, 0, 1],
# [0, 0, 0, 1, 0, 0],
# [0, 0, 1, 0, 0, 0],
# [0, 1, 0, 0, 0, 0]
#)

targets_to_one_hot = torch.nn.functional.one_hot(targets, num_classes=7) ?3# 指定one_hot編碼長(zhǎng)度為7
# result:?
# tensor(
# [0, 0, 0, 0, 0, 1, 0],
# [0, 0, 0, 1, 0, 0, 0],
# [0, 0, 1, 0, 0, 0, 0],
# [0, 1, 0, 0, 0, 0, 0]
#)

總結(jié):one_hot編碼主要用于分類(lèi)時(shí),作為一個(gè)類(lèi)別的編碼–方便判別與相關(guān)計(jì)算;

1. 如同類(lèi)別數(shù)統(tǒng)計(jì),只需要將one_hot編碼相加得到一個(gè)一維向量就知道了一批數(shù)據(jù)中所有類(lèi)別的預(yù)測(cè)或真實(shí)的分布情況;

2. 相比于預(yù)測(cè)出具體的類(lèi)別數(shù)–43等,用向量可以使用向量相關(guān)的算法進(jìn)行時(shí)間上的優(yōu)化等等

Pytorch變量類(lèi)型轉(zhuǎn)換及one_hot編碼表示

生成張量

y = torch.empty(3, dtype=torch.long).random_(5)

y = torch.Tensor(2,3).random_(10)

y = torch.randn(3,4).random_(10)

查看類(lèi)型

y.type
y.dtype

類(lèi)型轉(zhuǎn)化

tensor.long()/int()/float()
long(),int(),float() 實(shí)現(xiàn)類(lèi)型的轉(zhuǎn)化

One_hot編碼表示

def one_hot(y):
? ? '''
? ? y: (N)的一維tensor,值為每個(gè)樣本的類(lèi)別
? ? out:
? ? ? ? y_onehot: 轉(zhuǎn)換為one_hot 編碼格式
? ? '''
? ? y = y.view(-1, 1)
? ? # y_onehot = torch.FloatTensor(3, 5)
? ? # y_onehot.zero_()

? ? y_onehot = torch.zeros(3,5) ?# 等價(jià)于上面
? ? y_onehot.scatter_(1, y, 1)
? ? return y_onehot

y = torch.empty(3, dtype=torch.long).random_(5) #標(biāo)簽

res = one_hot(y) ?# 轉(zhuǎn)化為One_hot類(lèi)型

# One_hot類(lèi)型標(biāo)簽轉(zhuǎn)化為整數(shù)型列表的兩種方法

h = torch.argmax(res,dim=1)
_,h1 = res.max(dim=1)

expand()函數(shù)

這個(gè)函數(shù)的作用就是對(duì)指定的維度進(jìn)行數(shù)值大小的改變。只能改變維大小為1的維,否則就會(huì)報(bào)錯(cuò)。不改變的維可以傳入-1或者原來(lái)的數(shù)值。

a=torch.randn(1,1,3,768)

print(a.shape) #torch.Size([1, 1, 3, 768])
b=a.expand(2,-1,-1,-1)

print(b.shape) #torch.Size([2, 1, 3, 768])

c=a.expand(2,1,3,768)
print(c.shape) #torch.Size([2, 1, 3, 768])

repeat()函數(shù)

沿著指定的維度,對(duì)原來(lái)的tensor進(jìn)行數(shù)據(jù)復(fù)制。這個(gè)函數(shù)和expand()還是有點(diǎn)區(qū)別的。expand()只能對(duì)維度為1的維進(jìn)行擴(kuò)大,而repeat()對(duì)所有的維度可以隨意操作。

a=torch.randn(2,1,768)
print(a)
print(a.shape) #torch.Size([2, 1, 768])
b=a.repeat(1,2,1)
print(b)
print(b.shape) #torch.Size([2, 2, 768])
c=a.repeat(3,3,3)
print(c)
print(c.shape) #torch.Size([6, 3, 2304])

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python?VTK?完成圖像切割

    使用Python?VTK?完成圖像切割

    這篇文章主要介紹了使用Python?VTK?完成圖像切割,文章內(nèi)容基于python的相關(guān)資料展開(kāi)對(duì)主題的詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-04-04
  • python教程之進(jìn)程和線程

    python教程之進(jìn)程和線程

    這篇文章主要為大家介紹了python進(jìn)程和線程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python django實(shí)現(xiàn)簡(jiǎn)單的郵件系統(tǒng)發(fā)送郵件功能

    Python django實(shí)現(xiàn)簡(jiǎn)單的郵件系統(tǒng)發(fā)送郵件功能

    這篇文章主要介紹了Python django實(shí)現(xiàn)簡(jiǎn)單的郵件系統(tǒng)發(fā)送郵件功能,結(jié)合實(shí)例形式分析了django發(fā)送郵件的實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • TensorFlow MNIST手寫(xiě)數(shù)據(jù)集的實(shí)現(xiàn)方法

    TensorFlow MNIST手寫(xiě)數(shù)據(jù)集的實(shí)現(xiàn)方法

    MNIST數(shù)據(jù)集中包含了各種各樣的手寫(xiě)數(shù)字圖片,這篇文章主要介紹了TensorFlow MNIST手寫(xiě)數(shù)據(jù)集的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2020-02-02
  • PyTorch之torch.randn()如何創(chuàng)建正態(tài)分布隨機(jī)數(shù)

    PyTorch之torch.randn()如何創(chuàng)建正態(tài)分布隨機(jī)數(shù)

    這篇文章主要介紹了PyTorch之torch.randn()如何創(chuàng)建正態(tài)分布隨機(jī)數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 使用python對(duì)視頻文件分辨率進(jìn)行分組的實(shí)例代碼

    使用python對(duì)視頻文件分辨率進(jìn)行分組的實(shí)例代碼

    通過(guò)對(duì)視頻的分辨路進(jìn)行分類(lèi)可以在需要的時(shí)候快速找到你想要的視頻分辨率。當(dāng)然人工去分類(lèi)是一種比較費(fèi)時(shí)費(fèi)力的工作,通過(guò)軟件也好,程序也罷都是為了可以提高我們的工作效率。下面通過(guò)代碼給大家分享使用python對(duì)視頻文件分辨率進(jìn)行分組的方法,一起看看吧
    2021-10-10
  • 圖文詳解感知機(jī)算法原理及Python實(shí)現(xiàn)

    圖文詳解感知機(jī)算法原理及Python實(shí)現(xiàn)

    感知機(jī)是二類(lèi)分類(lèi)的線性分類(lèi)模型,其輸入為實(shí)例的特征向量,輸出為實(shí)例的類(lèi)別(取+1和-1二值)。本文將為大家詳細(xì)講講感知機(jī)算法的原理及實(shí)現(xiàn),需要的可以參考一下
    2022-08-08
  • 淺談Python從全局與局部變量到裝飾器的相關(guān)知識(shí)

    淺談Python從全局與局部變量到裝飾器的相關(guān)知識(shí)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python從全局與局部變量到裝飾器的相關(guān)知識(shí)展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 基于python檢查SSL證書(shū)到期情況代碼實(shí)例

    基于python檢查SSL證書(shū)到期情況代碼實(shí)例

    這篇文章主要介紹了基于python檢查SSL證書(shū)到期情況代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 解決python爬蟲(chóng)中有中文的url問(wèn)題

    解決python爬蟲(chóng)中有中文的url問(wèn)題

    今天小編就為大家分享一篇解決python爬蟲(chóng)中有中文的url問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

屏边| 黑龙江省| 通山县| 安仁县| 醴陵市| 莎车县| 福清市| 肇庆市| 芒康县| 东丽区| 龙胜| 万安县| 茂名市| 乐陵市| 海伦市| 宁乡县| 额尔古纳市| 德昌县| 诸城市| 彭泽县| 伽师县| 娄底市| 景东| 宁夏| 佛坪县| 徐州市| 衡阳市| 武威市| 黑水县| 陇西县| 青阳县| 大邑县| 同德县| 滁州市| 资溪县| 义马市| 三亚市| 沐川县| 任丘市| 黄梅县| 兴义市|