关于一些criterion

1.PyTorch 中的亦混 loss

    Pytorch 中提供了很多类型的 loss (Criterion),如 l1, l2, crossentropy 等。同时,同一种 criterion 可 能被包含在不同的功能模块下,如 torch.nn,torch.nn.functional 等。

    1.1 F.xx 和 nn.xx (xx 表示某 criterion 如 cross_entropy 等)在使用时的区别

      即nn.xx是包装好的类,F.xx是可以直接调用的函数,具体参照pytorch-nn.xx与nn.functional.xx的区别——googler_offer的文章。

    1.2 具体区别

        1.2.1 传入参数

            nn.Xxx 需要先实例化并传入参数,然后以函数调用的方式调用实例化的对象并传入输入数据。

            nn.functional.xxx同时传入输入数据和weight, bias等其他参数 。

        1.2.2 数学形式

            完全相同

        1.2.3 作用目的

            nn.Xxx继承于nn.Module, 能够很好的与nn.Sequential结合使用, 而nn.functional.xxx无法与nn.Sequential结合使用。

            nn.Xxx不需要你自己定义和管理weight;而nn.functional.xxx需要你自己定义weight,每次调用的时候都需要手动传入weight, 不利于代码复用。

 

2.常用的criterion

    来源:pytorch常用损失函数criterion———DLung

    

 

3.softmax的求导以及代码

  卷积神经网络系列之softmax loss对输入的求导推导

  代码:https://github.com/passional/cv_tool/blob/main/softmax.py

 

 

        

posted @ 2022-03-20 14:14  Dr_Zhou  阅读(727)  评论(0)    收藏  举报