浅谈torch.nn库和torch.nn.functional库

## 浅谈torch.nn库和torch.nn.functional库

这两个库很类似,都涵盖了神经网络的各层操作,只是用法有点不同,比如在损失函数Loss中实现交叉熵

- nn库

```py

import torch

import torch.nn as nn

Loss = nn.BCELoss()

a = torch.ones(2,2)

b = torch.ones(2,2)

c = Loss(a,b)

```

- nn.functional库

```py

import torch

import torch.nn.functional as nn

a = torch.ones(2,2)

b = torch.ones(2,2)

c = nn.binary_cross_entropy(a,b)

```

>c的结果都一样为0,即两个分布高度相似

总结一下,两个库都可以实现神经网络的各层运算。其他包括卷积、池化、padding、激活(非线性层)、线性层、正则化层、其他损失函数Loss,两者都可以实现

不过nn.functional毕竟只是nn的子库,nn的功能要多一些,还可以实现如Sequential()这种将多个层弄到一个序列这样复杂的操作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容