我试图了解 pytorch 如何更好地工作。通常,在定义神经网络类时,在init () 构造函数中,人们会写 self.sigmoid = nn.Sigmoid(),这样在forward()方法中就可以多次调用 sigmoid 函数,而不必重新实例化 nn。每次都是 Sigmoid()。
但为什么 nn.Sigmoid 不只是一个方法,而不是一个类呢?
另外,我很好奇如何将 torch.nn 中的“nn”称为(包?库?)。
谢谢!
Sigmoid 既可以作为模块torch.nn.Sigmoid也可以作为函数使用torch.sigmoid。两者是等价的:模块只是函数的包装器。
该模块的存在主要是出于历史原因:PyTorch 基于 Lua torch7 包。在torch7中,所有可微神经网络函数都作为模块实现。该模块还可以用于torch.nn.Sequential具有简单前馈结构的网络块中。
除此之外,使用模块形式相对于函数形式没有任何优势。
in代表“神经网络” nn。torch.nn
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |