婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Pytorch中Softmax和LogSoftmax的使用詳解

Pytorch中Softmax和LogSoftmax的使用詳解

熱門(mén)標(biāo)簽:商家地圖標(biāo)注海報(bào) 地圖標(biāo)注自己和別人標(biāo)注區(qū)別 南陽(yáng)打電話(huà)機(jī)器人 孝感營(yíng)銷(xiāo)電話(huà)機(jī)器人效果怎么樣 ai電銷(xiāo)機(jī)器人的優(yōu)勢(shì) 打電話(huà)機(jī)器人營(yíng)銷(xiāo) 騰訊地圖標(biāo)注沒(méi)法顯示 海外網(wǎng)吧地圖標(biāo)注注冊(cè) 聊城語(yǔ)音外呼系統(tǒng)

一、函數(shù)解釋

1.Softmax函數(shù)常用的用法是指定參數(shù)dim就可以:

(1)dim=0:對(duì)每一列的所有元素進(jìn)行softmax運(yùn)算,并使得每一列所有元素和為1。

(2)dim=1:對(duì)每一行的所有元素進(jìn)行softmax運(yùn)算,并使得每一行所有元素和為1。

class Softmax(Module):
    r"""Applies the Softmax function to an n-dimensional input Tensor
    rescaling them so that the elements of the n-dimensional output Tensor
    lie in the range [0,1] and sum to 1.
    Softmax is defined as:
    .. math::
        \text{Softmax}(x_{i}) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}
    Shape:
        - Input: :math:`(*)` where `*` means, any number of additional
          dimensions
        - Output: :math:`(*)`, same shape as the input
    Returns:
        a Tensor of the same dimension and shape as the input with
        values in the range [0, 1]
    Arguments:
        dim (int): A dimension along which Softmax will be computed (so every slice
            along dim will sum to 1).
    .. note::
        This module doesn't work directly with NLLLoss,
        which expects the Log to be computed between the Softmax and itself.
        Use `LogSoftmax` instead (it's faster and has better numerical properties).
    Examples::
        >>> m = nn.Softmax(dim=1)
        >>> input = torch.randn(2, 3)
        >>> output = m(input)
    """
    __constants__ = ['dim']
 
    def __init__(self, dim=None):
        super(Softmax, self).__init__()
        self.dim = dim
 
    def __setstate__(self, state):
        self.__dict__.update(state)
        if not hasattr(self, 'dim'):
            self.dim = None
 
    def forward(self, input):
        return F.softmax(input, self.dim, _stacklevel=5)
 
    def extra_repr(self):
        return 'dim={dim}'.format(dim=self.dim)

2.LogSoftmax其實(shí)就是對(duì)softmax的結(jié)果進(jìn)行l(wèi)og,即Log(Softmax(x))

class LogSoftmax(Module):
    r"""Applies the :math:`\log(\text{Softmax}(x))` function to an n-dimensional
    input Tensor. The LogSoftmax formulation can be simplified as:
    .. math::
        \text{LogSoftmax}(x_{i}) = \log\left(\frac{\exp(x_i) }{ \sum_j \exp(x_j)} \right)
    Shape:
        - Input: :math:`(*)` where `*` means, any number of additional
          dimensions
        - Output: :math:`(*)`, same shape as the input
    Arguments:
        dim (int): A dimension along which LogSoftmax will be computed.
    Returns:
        a Tensor of the same dimension and shape as the input with
        values in the range [-inf, 0)
    Examples::
        >>> m = nn.LogSoftmax()
        >>> input = torch.randn(2, 3)
        >>> output = m(input)
    """
    __constants__ = ['dim']
 
    def __init__(self, dim=None):
        super(LogSoftmax, self).__init__()
        self.dim = dim
 
    def __setstate__(self, state):
        self.__dict__.update(state)
        if not hasattr(self, 'dim'):
            self.dim = None
 
    def forward(self, input):
        return F.log_softmax(input, self.dim, _stacklevel=5)

二、代碼示例

輸入代碼

import torch
import torch.nn as nn
import numpy as np
 
batch_size = 4
class_num = 6
inputs = torch.randn(batch_size, class_num)
for i in range(batch_size):
    for j in range(class_num):
        inputs[i][j] = (i + 1) * (j + 1)
 
print("inputs:", inputs)

得到大小batch_size為4,類(lèi)別數(shù)為6的向量(可以理解為經(jīng)過(guò)最后一層得到)

tensor([[ 1., 2., 3., 4., 5., 6.],
[ 2., 4., 6., 8., 10., 12.],
[ 3., 6., 9., 12., 15., 18.],
[ 4., 8., 12., 16., 20., 24.]])

接著我們對(duì)該向量每一行進(jìn)行Softmax

Softmax = nn.Softmax(dim=1)
probs = Softmax(inputs)
print("probs:\n", probs)

得到

tensor([[4.2698e-03, 1.1606e-02, 3.1550e-02, 8.5761e-02, 2.3312e-01, 6.3369e-01],
[3.9256e-05, 2.9006e-04, 2.1433e-03, 1.5837e-02, 1.1702e-01, 8.6467e-01],
[2.9067e-07, 5.8383e-06, 1.1727e-04, 2.3553e-03, 4.7308e-02, 9.5021e-01],
[2.0234e-09, 1.1047e-07, 6.0317e-06, 3.2932e-04, 1.7980e-02, 9.8168e-01]])

此外,我們對(duì)該向量每一行進(jìn)行LogSoftmax

LogSoftmax = nn.LogSoftmax(dim=1)
log_probs = LogSoftmax(inputs)
print("log_probs:\n", log_probs)

得到

tensor([[-5.4562e+00, -4.4562e+00, -3.4562e+00, -2.4562e+00, -1.4562e+00, -4.5619e-01],
[-1.0145e+01, -8.1454e+00, -6.1454e+00, -4.1454e+00, -2.1454e+00, -1.4541e-01],
[-1.5051e+01, -1.2051e+01, -9.0511e+00, -6.0511e+00, -3.0511e+00, -5.1069e-02],
[-2.0018e+01, -1.6018e+01, -1.2018e+01, -8.0185e+00, -4.0185e+00, -1.8485e-02]])

驗(yàn)證每一行元素和是否為1

# probs_sum in dim=1
probs_sum = [0 for i in range(batch_size)]
 
for i in range(batch_size):
    for j in range(class_num):
        probs_sum[i] += probs[i][j]
    print(i, "row probs sum:", probs_sum[i])

得到每一行的和,看到確實(shí)為1

0 row probs sum: tensor(1.)
1 row probs sum: tensor(1.0000)
2 row probs sum: tensor(1.)
3 row probs sum: tensor(1.)

驗(yàn)證LogSoftmax是對(duì)Softmax的結(jié)果進(jìn)行Log

# to numpy
np_probs = probs.data.numpy()
print("numpy probs:\n", np_probs)
 
# np.log()
log_np_probs = np.log(np_probs)
print("log numpy probs:\n", log_np_probs)

得到

numpy probs:
[[4.26977826e-03 1.16064614e-02 3.15496325e-02 8.57607946e-02 2.33122006e-01 6.33691311e-01]
[3.92559559e-05 2.90064461e-04 2.14330270e-03 1.58369839e-02 1.17020354e-01 8.64669979e-01]
[2.90672347e-07 5.83831024e-06 1.17265590e-04 2.35534250e-03 4.73083146e-02 9.50212955e-01]
[2.02340233e-09 1.10474026e-07 6.03167746e-06 3.29318427e-04 1.79801770e-02 9.81684387e-01]]
log numpy probs:
[[-5.4561934e+00 -4.4561934e+00 -3.4561934e+00 -2.4561932e+00 -1.4561933e+00 -4.5619333e-01]
[-1.0145408e+01 -8.1454077e+00 -6.1454072e+00 -4.1454072e+00 -2.1454074e+00 -1.4540738e-01]
[-1.5051069e+01 -1.2051069e+01 -9.0510693e+00 -6.0510693e+00 -3.0510693e+00 -5.1069155e-02]
[-2.0018486e+01 -1.6018486e+01 -1.2018485e+01 -8.0184851e+00 -4.0184855e+00 -1.8485421e-02]]

驗(yàn)證完畢

三、整體代碼

import torch
import torch.nn as nn
import numpy as np
 
batch_size = 4
class_num = 6
inputs = torch.randn(batch_size, class_num)
for i in range(batch_size):
    for j in range(class_num):
        inputs[i][j] = (i + 1) * (j + 1)
 
print("inputs:", inputs)
Softmax = nn.Softmax(dim=1)
probs = Softmax(inputs)
print("probs:\n", probs)
 
LogSoftmax = nn.LogSoftmax(dim=1)
log_probs = LogSoftmax(inputs)
print("log_probs:\n", log_probs)
 
# probs_sum in dim=1
probs_sum = [0 for i in range(batch_size)]
 
for i in range(batch_size):
    for j in range(class_num):
        probs_sum[i] += probs[i][j]
    print(i, "row probs sum:", probs_sum[i])
 
# to numpy
np_probs = probs.data.numpy()
print("numpy probs:\n", np_probs)
 
# np.log()
log_np_probs = np.log(np_probs)
print("log numpy probs:\n", log_np_probs)

基于pytorch softmax,logsoftmax 表達(dá)

import torch
import numpy as np
input = torch.autograd.Variable(torch.rand(1, 3))

print(input)
print('softmax={}'.format(torch.nn.functional.softmax(input, dim=1)))
print('logsoftmax={}'.format(np.log(torch.nn.functional.softmax(input, dim=1))))

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

您可能感興趣的文章:
  • PyTorch的SoftMax交叉熵?fù)p失和梯度用法
  • 淺談pytorch中torch.max和F.softmax函數(shù)的維度解釋
  • PyTorch: Softmax多分類(lèi)實(shí)戰(zhàn)操作

標(biāo)簽:牡丹江 六盤(pán)水 聊城 楊凌 迪慶 揚(yáng)州 撫州 南寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pytorch中Softmax和LogSoftmax的使用詳解》,本文關(guān)鍵詞  Pytorch,中,Softmax,和,LogSoftmax,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Pytorch中Softmax和LogSoftmax的使用詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Pytorch中Softmax和LogSoftmax的使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久久久夜精品精品免费| 婷婷久久综合九色国产成人| 久久精品一区二区三区av| 91精品国产全国免费观看| 91.成人天堂一区| 制服丝袜日韩国产| 91精品欧美久久久久久动漫| 欧美日韩的一区二区| 制服.丝袜.亚洲.另类.中文| 欧美一区二区日韩一区二区| 91精品国产高清一区二区三区蜜臀| 欧美日韩成人综合在线一区二区| 欧美日韩精品一区二区天天拍小说 | 日韩午夜中文字幕| 欧美一区二区国产| 精品不卡在线视频| 国产精品视频麻豆| 亚洲综合色噜噜狠狠| 亚洲6080在线| 久久精品av麻豆的观看方式| 激情综合色播激情啊| 国产成人精品www牛牛影视| 成人午夜视频网站| jvid福利写真一区二区三区| 色欧美片视频在线观看| 欧美丰满高潮xxxx喷水动漫| 精品国产一二三区| 国产精品久久综合| 亚洲国产精品久久久久婷婷884| 日日摸夜夜添夜夜添国产精品 | 国产福利电影一区二区三区| 岛国av在线一区| 色八戒一区二区三区| 欧美日韩日日夜夜| 久久久777精品电影网影网 | 免费成人在线播放| 国产成人精品免费一区二区| 色天天综合久久久久综合片| 777午夜精品视频在线播放| 26uuu亚洲综合色欧美| 综合色天天鬼久久鬼色| 婷婷六月综合网| 成人午夜大片免费观看| 欧美日韩午夜在线| 欧美国产在线观看| 五月天一区二区| 成人黄色小视频| 欧美女孩性生活视频| 欧美国产精品中文字幕| 亚洲成人动漫在线免费观看| 黄色小说综合网站| 午夜av一区二区| 国产91精品久久久久久久网曝门 | 亚洲国产高清aⅴ视频| 亚洲国产成人porn| 国产成人aaaa| 欧美另类久久久品| 一色屋精品亚洲香蕉网站| 美女mm1313爽爽久久久蜜臀| aaa欧美日韩| 欧美精品一区二| 日韩精品午夜视频| 色悠悠久久综合| 国产午夜精品久久久久久久| 五月天亚洲精品| 色综合久久六月婷婷中文字幕| 久久看人人爽人人| 日本不卡视频在线| 欧美三日本三级三级在线播放| 国产精品久久久久久久久图文区 | 国产ts人妖一区二区| 777色狠狠一区二区三区| 一区二区视频免费在线观看| 成人午夜在线免费| 精品sm在线观看| 日韩在线观看一区二区| 在线视频一区二区免费| 中文字幕亚洲一区二区va在线| 极品少妇一区二区三区精品视频| 欧美色图免费看| 亚洲精品欧美综合四区| av资源网一区| 国产精品色哟哟| 国产精品一区二区久久精品爱涩| 日韩一区二区麻豆国产| 五月天激情综合网| 欧美日韩亚洲高清一区二区| 一区二区视频在线| 日本丰满少妇一区二区三区| 亚洲精品欧美激情| 色美美综合视频| 一区二区三区在线免费播放| 91丝袜美腿高跟国产极品老师| 国产精品久久三| 波多野结衣亚洲| 亚洲欧洲精品一区二区精品久久久| 国产精品一二一区| 久久精品水蜜桃av综合天堂| 国模一区二区三区白浆| 久久综合视频网| 国产精品一区二区免费不卡| 久久久久国产精品人| 国产精品911| 国产精品网曝门| 99国产精品久久久久| 日韩毛片一二三区| 色婷婷精品大视频在线蜜桃视频| 亚洲欧美一区二区三区久本道91| 色综合一个色综合亚洲| 亚洲综合在线视频| 欧美三级一区二区| 日韩不卡一区二区三区| 欧美刺激午夜性久久久久久久| 国产一区二区三区免费在线观看| 久久久久国产精品人| 成人精品国产一区二区4080| 亚洲同性gay激情无套| 欧美亚洲日本国产| 日本成人在线看| 亚洲精品在线免费观看视频| 粉嫩嫩av羞羞动漫久久久| 1024亚洲合集| 欧美久久一二区| 精彩视频一区二区| 国产精品久久久久久久久免费桃花| 色偷偷久久人人79超碰人人澡 | 欧美午夜理伦三级在线观看| 五月婷婷久久综合| 久久免费美女视频| 91免费观看在线| 日韩在线播放一区二区| 国产校园另类小说区| 在线观看国产日韩| 久草精品在线观看| 中文字幕欧美一区| 日韩一区二区三区视频| 丁香桃色午夜亚洲一区二区三区| 亚洲卡通欧美制服中文| 日韩欧美国产一区二区在线播放| 成人教育av在线| 午夜精品视频在线观看| 久久久激情视频| 欧美情侣在线播放| 成人免费的视频| 奇米综合一区二区三区精品视频 | 岛国一区二区在线观看| 性久久久久久久| 国产精品天美传媒沈樵| 91精品国产欧美日韩| av在线播放不卡| 蜜桃视频一区二区三区| 亚洲欧美经典视频| xf在线a精品一区二区视频网站| 在线一区二区三区四区五区| 精品一区二区成人精品| 亚洲一级电影视频| 欧美国产日本视频| 欧美电视剧在线看免费| 日本高清成人免费播放| 国产白丝精品91爽爽久久| 日韩av在线发布| 亚洲精品大片www| 亚洲国产精品精华液ab| 这里只有精品99re| 91福利视频网站| 成人丝袜18视频在线观看| 久久精品国产一区二区| 亚洲一二三区视频在线观看| 中文字幕一区二区三区色视频| 日韩欧美在线1卡| 欧美日韩精品久久久| 91丨porny丨户外露出| 国产精品亚洲视频| 精久久久久久久久久久| 日韩一区精品字幕| 亚洲成在人线免费| 亚洲欧美色图小说| 国产精品国产自产拍在线| 久久久精品国产免大香伊| 精品国产123| 日韩视频在线永久播放| 欧美日韩国产首页| 在线观看免费一区| 在线观看亚洲精品| 色综合亚洲欧洲| 91香蕉视频在线| 91在线云播放| 91麻豆自制传媒国产之光| 成人av电影在线| 成人国产精品免费| av中文字幕不卡| 91在线观看一区二区| 91一区二区在线| 91麻豆.com| 色琪琪一区二区三区亚洲区| 一本色道a无线码一区v| 色视频成人在线观看免| 色偷偷久久一区二区三区| 91国模大尺度私拍在线视频| 在线看日本不卡|