Pytorch中torch.nn.functional与torch.nn的区别
相同之处:
- 两者都继承于nn.Module
- nn.x与nn.functional.x的实际功能相同,比如nn.Conv3d和nn.functional.conv3d都是进行3d卷积
- 运行效率几乎相同
不同之处:
- nn.x是nn.functional.x的类封装,nn.functional.x是具体的函数接口,nn.functional.x直接传入参数调用,nn.x需要先实例化再传参调用
- nn.x除了具有nn.functional.x功能之外,还具有nn.Module相关的属性和方法,比如:train(),eval()等
- nn.x能很好的与nn.Sequential结合使用,而nn.functional.x无法与nn.Sequential结合使用
- nn.x不需要自定义和管理weight,而nn.functional.x需自定义weight,作为传入的参数
torch.nn.functional中同样有torch.nn中类似的卷积层,池化层,激活层,Dropout层,线性层、损失函数以及多GPU训练、分布式训练函数等,具体用法可以参考文档。
文章出处登录后可见!
已经登录?立即刷新