pytorch笔记(一)

1.torch.clamp(input, min, max, out=None) → Tensor
将输入的input张量每个元素的夹紧到区间[min, max],并返回得到一个新张量。

操作定义如下:

      | min, if x_i < min
y_i = | x_i, if min <= x_i <= max
      | max, if x_i > max
  • input (Tensor) – 输入张量
  • min (Number) – 限制范围下限
  • max (Number) – 限制范围上限
  • out (Tensor, optional) – 输出张量

>>> a = torch.randn(4)
>>> a

 1.3869
 0.3912
-0.8634
-0.5468
[torch.FloatTensor of size 4]

>>> torch.clamp(a, min=-0.5, max=0.5)

 0.5000
 0.3912
-0.5000
-0.5000
[torch.FloatTensor of size 4]

2.pytorch中的expand函数

>>> import torch
>>> a=torch.tensor([[2],[3],[4]])
>>> print(a.size())
torch.Size([3, 1])
>>> a.expand(3,2)
tensor([[2, 2],
        [3, 3],
        [4, 4]])
>>> a
tensor([[2],
        [3],
        [4]])

扩大tensor不需要分配新内存,只是仅仅新建一个tensor的视图。

3.cosine_similarity 余弦相似度

 

输出范围是[-1, 1]之间,相似度越大,越接近1,相似度越小,越接近-1。

4.pytoch中的topk()

沿给定dim维度返回输入张量input中 k 个最大值。
如果不指定dim,则默认为input的最后一维。
如果为largest为 False ,则返回最小的 k 个值。

返回一个元组 (values,indices),其中indices是原始输入张量input中测元素下标。
如果设定布尔值sorted 为_True_,将会确保返回的 k 个值被排序。

参数:

input (Tensor) – 输入张量
    k (int) – “top-k”中的k
    dim (int, optional) – 排序的维
    largest (bool, optional) – 布尔值,控制返回最大或最小值
    sorted (bool, optional) – 布尔值,控制返回值是否排序
    out (tuple, optional) – 可选输出张量 (Tensor, LongTensor) output buffer
 

>>> x = torch.arange(1., 6.) 
>>> x 
tensor([ 1.,  2.,  3.,  4.,  5.]) 
>>> torch.topk(x, 3) 
(tensor([ 5.,  4.,  3.]), tensor([ 4,  3,  2])) 

import torch
output = torch.tensor([[-5.4783, 0.2298],
                           [-4.2573, -0.4794],
                           [-0.1070, -5.1511],
                           [-0.1785, -4.3339]])


maxk = max((1,))  # 取top1准确率,若取top1和top5准确率改为max((1,5))
_, pred = output.topk(maxk, 1, True, True)

# 输出
_
tensor([[ 0.2298],
        [-0.4794],
        [-0.1070],
        [-0.1785]])

pred
tensor([[1],
        [1],
        [0],
        [0]])

_是top1的值,pred是最大值的索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值