每周碎片知识16

1️⃣[Softmax]

在使用softmax的时候,要非常注意softmax的行为。应尽量控制softmax前元素的规模,否则容易出现one-hot的情况,导致训练困难。

同时,对全-inf做softmax是未定义的,因此也会出现问题:


2️⃣[slice]

在对tensor或array操作时,如果需要取某维的slice:

1
2
3
4
import torch
a = torch.rand(2,5)
a[:,1:3] # 取第1列到第2列的slice
a[:][1:3] # wrong,获得的是第1行到第2行的slice

原因是,a[:][1:3]是先做a[:]操作,获得了全部元素,然后再做[1:3]操作,也即获得第1行到第2行的元素。