# Torch 的几个损失函数

1.  L1Loss

Input:    X、Y可以是任意形状的输入，X与Y的 shape相同。

Output: 标量

2. MSELoss

Input:  x, y 任意具有相同shape的tensor。

Output: 计算均方差

3. CrossEntropyLoss

Input: X--> (N, C)， N是样本个数， C是类别个数； Y --> （N），Y表示target， Y的元素在 [0， C-1）中，即类别的索引

Output: 标量，适用于多分类模型

4.NLLLoss

input:  X --> (batch_size, num_classes), Y --> （batch_size）1D list (属于某一类的index)

output: (batch_size)

Y --> (batch_size, d1, d2, ..., dk)

5. PoissonNLLLoss

input :  X --> (batch_size, num_classes), Y --> (batch_size, num_classes)

6. KLDivLoss

input: X -->(N, *), Y -->(N, *)

7. BCELoss

Input: X --> (N, *), Y --> (N, *), X 需要经过sigmoid, Y元素的值只能是０或１的float值

8. BCEWithLogitsLoss

9. MarginRankingLoss

10. HingeEmbeddingLoss

input: X-->(N, *), Y --> (N, *) Y中的元素只能为1或-1

output: 依据size_average值得来

11. MultiLabelMarginLoss

input : x --> (N, c), y --> (N, c)其中y是 LongTensor, 且其元素为类别的index

12. torch.nn.SmoothL1Loss

Input: x --> (N, *),  y --> (N, *)

13. SoftMarginLoss

input : x --> (n, c), y --> (n, c)其中y的元素为1或-1

14. MultiLabelSoftMarginLoss

15. CosineEmbeddingLoss

16. MultiMarginLoss

17. TripletMarginLoss

http://pytorch.org/docs/master/nn.html#tripletmarginloss