softmax $ tensor

softmax目标:

把线性层的输出都变成>=0,b并且线性层k个分类的输出值加起来等于1

uploading.4e448015.gif正在上传…重新上传取消uploading.4e448015.gif转存失败重新上传取消

import numpy as np
y = np.array([1, 0 ,0])
z = np.array([0.2, 0.1, -0.1])
y_pred = np.exp(z)/np.exp(z).sum()
loss = -y * np.log(y_pred).sum()
print(loss)

Torch

import torch
y = torch.LongTensor([0])
x = torch.Tensor([[0.2, 0.1, -0.1]])
criterion = torch = torch.nn.CrossEntropyLoss()#包含激活,最后一层不需要激活
loss = -criterion(z, y)
print(loss)

tensor :

二维

>>> import torch
>>> torch.randn(2,3)
tensor([[-1.0413,  0.8792,  2.1381],
           [ 0.9541, -2.3019,  0.5490]])
>>>

三维

>>> torch.randn(2,2,3)
tensor([[[ 0.4200,  0.4624,  0.3099],
            [-0.1227,  0.2452,  0.9840]],

           [[-0.8800, -0.5937, -1.4465],
            [ 1.6523, -0.0170, -0.6393]]])
>>>
  • 三维基于二维增加了一维,即(2,2,3)是包含了2个2行三列的矩阵;第一个数字即指包含几个二维矩阵

四维

>>> torch.randn(2,2,2,3)
tensor([[[[-1.1649, -1.1810, -0.3619],
             [-0.8433, -0.4411,  1.8187]],

            [[ 0.4896,  0.4773,  0.0032],
             [ 1.1269,  1.3638,  1.4495]]],

          [[[-0.1959,  0.5646,  0.7001],
            [ 0.6796,  0.1164,  1.6833]],

           [[-0.2674, -0.2411,  1.5875],
            [-0.2804,  1.4775,  0.2448]]]])
>>>
  • 四维基于三维增加了一维,(2,2,2,3)即包含了2个三维的矩阵

参考:pytorch tensor 维度理解.md - logicalsky - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值