五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

Pytorch中Softmax與LogSigmoid的對(duì)比分析

發(fā)布日期:2022-03-18 13:12 | 文章來源:gibhub

Pytorch中Softmax與LogSigmoid的對(duì)比

torch.nn.Softmax

作用:

1、將Softmax函數(shù)應(yīng)用于輸入的n維Tensor,重新改變它們的規(guī)格,使n維輸出張量的元素位于[0,1]范圍內(nèi),并求和為1。

2、返回的Tensor與原Tensor大小相同,值在[0,1]之間。

3、不建議將其與NLLLoss一起使用,可以使用LogSoftmax代替之。

4、Softmax的公式:

參數(shù):

維度,待使用softmax計(jì)算的維度。

例子:

# 隨機(jī)初始化一個(gè)tensor
a = torch.randn(2, 3)
print(a) # 輸出tensor
# 初始化一個(gè)Softmax計(jì)算對(duì)象,在輸入tensor的第2個(gè)維度上進(jìn)行此操作
m = nn.Softmax(dim=1)
# 將a進(jìn)行softmax操作
output = m(a)
print(output) # 輸出tensor
tensor([[ 0.5283,  0.3922, -0.0484],
  [-1.6257, -0.4775,  0.5645]])
tensor([[0.4108, 0.3585, 0.2307],
  [0.0764, 0.2408, 0.6828]])

可以看見的是,無論輸入的tensor中的值為正或?yàn)樨?fù),輸出的tensor中的值均為正值,且加和為1。

當(dāng)m的參數(shù)dim=1時(shí),輸出的tensor將原tensor按照行進(jìn)行softmax操作;當(dāng)m的參數(shù)為dim=0時(shí),輸出的tensor將原tensor按照列進(jìn)行softmax操作。

深度學(xué)習(xí)拓展:

一般來說,Softmax函數(shù)會(huì)用于分類問題上。例如,在VGG等深度神經(jīng)網(wǎng)絡(luò)中,圖像經(jīng)過一系列卷積、池化操作后,我們可以得到它的特征向量,為了進(jìn)一步判斷此圖像中的物體屬于哪個(gè)類別,我們會(huì)將該特征向量變?yōu)椋侯悇e數(shù) * 各類別得分 的形式,為了將得分轉(zhuǎn)換為概率值,我們會(huì)將該向量再經(jīng)過一層Softmax處理。

torch.nn.LogSigmoid

公式:

函數(shù)圖:

可以見得,函數(shù)值在[0, -]之間,輸入值越大函數(shù)值距離0越近,在一定程度上解決了梯度消失問題。

例子:

a = [[ 0.5283,  0.3922, -0.0484],
 [-1.6257, -0.4775,  0.5645]]
a = torch.tensor(a)
lg = nn.LogSigmoid()
lgoutput = lg(a)
print(lgoutput)
tensor([[-0.4635, -0.5162, -0.7176],
  [-1.8053, -0.9601, -0.4502]])

二者比較:

import torch
import torch.nn as nn
# 設(shè)置a為 2*3  的tensor
a = [[ 0.5283,  0.3922, -0.0484],
 [-1.6257, -0.4775,  0.5645]]
a = torch.tensor(a)
print(a)
print('a.mean:', a.mean(1, True)) # 輸出a的 行平均值
m = nn.Softmax(dim=1) # 定義Softmax函數(shù),dim=1表示為按行計(jì)算
lg = nn.LogSigmoid() # 定義LogSigmoid函數(shù)
output = m(a)
print(output)
# 輸出a經(jīng)過Softmax的結(jié)果的行平均值
print('output.mean:', output.mean(1, True)) 
lg_output = lg(a)
print(lg_output)
# 輸出a經(jīng)過LogSigmoid的結(jié)果的行平均值
print('lgouput.mean:', lg_output.mean(1, True)) 
# 結(jié)果:
tensor([[ 0.5283,  0.3922, -0.0484],
  [-1.6257, -0.4775,  0.5645]])
a.mean: tensor(-0.1111)
tensor([[0.4108, 0.3585, 0.2307],
  [0.0764, 0.2408, 0.6828]])
output.mean: tensor([[0.3333], [0.3333]]) # 經(jīng)過Softmax的結(jié)果的行平均值
tensor([[-0.4635, -0.5162, -0.7176],
  [-1.8053, -0.9601, -0.4502]])
lgouput.mean: tensor([[-0.5658], [-1.0719]]) # 經(jīng)過LogSigmoid的結(jié)果的行平均值

由上可知,繼續(xù)考慮分類問題,相同的數(shù)據(jù),經(jīng)過Softmax和LogSigmoid處理后,若取最大概率值對(duì)應(yīng)類別作為分類結(jié)果,那么:

1、第一行數(shù)據(jù)經(jīng)過Softmax后,會(huì)選擇第一個(gè)類別;經(jīng)過LogSigmoid后,會(huì)選擇第一個(gè)。

2、第二行數(shù)據(jù)經(jīng)過Softmax后,會(huì)選擇第三個(gè)類別;經(jīng)過LogSigmoid后,會(huì)選擇第三個(gè)。

3、一般來說,二者在一定程度上區(qū)別不是很大,由于sigmoid函數(shù)存在梯度消失問題,所以被使用的場(chǎng)景不多。

4、但是在多分類問題上,可以嘗試選擇Sigmoid函數(shù)來作為分類函數(shù),因?yàn)镾oftmax在處理多分類問題上,會(huì)更容易出現(xiàn)各項(xiàng)得分十分相近的情況。瓶頸值可以根據(jù)實(shí)際情況定。

nn.Softmax()與nn.LogSoftmax()

nn.Softmax()計(jì)算出來的值,其和為1,也就是輸出的是概率分布,具體公式如下:

這保證輸出值都大于0,在0,1范圍內(nèi)。

而nn.LogSoftmax()公式如下:

由于softmax輸出都是0-1之間的,因此logsofmax輸出的是小于0的數(shù),

softmax求導(dǎo):

logsofmax求導(dǎo):

例子:

import torch.nn as nn
import torch
import numpy as np
layer1=nn.Softmax()
layer2=nn.LogSoftmax()
 
input=np.asarray([2,3])
input=Variable(torch.Tensor(input))
 
output1=layer1(input)
output2=layer2(input)
print('output1:',output1)
print('output2:',output2)

輸出:

output1: Variable containing:
0.2689
0.7311
[torch.FloatTensor of size 2]

output2: Variable containing:
-1.3133
-0.3133
[torch.FloatTensor of size 2]

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

美國服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部