gpt4 book ai didi

python-3.x - PyTorch 中的 nn.functional() 与 nn.sequential() 之间是否存在计算效率差异

转载 作者:行者123 更新时间:2023-12-04 14:53:57 24 4
gpt4 key购买 nike

以下是使用 PyTorch 中的 nn.functional() 模块的前馈网络

import torch.nn as nn
import torch.nn.functional as F

class newNetwork(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 64)
self.fc3 = nn.Linear(64,10)

def forward(self,x):
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = F.softmax(self.fc3(x))
return x

model = newNetwork()
model

以下是使用 nn.sequential() 模块构建相同事物的相同前馈。两者有什么区别,我什么时候用一个而不是另一个?
input_size = 784
hidden_sizes = [128, 64]
output_size = 10

构建前馈网络
 model = nn.Sequential(nn.Linear(input_size, hidden_sizes[0]),
nn.ReLU(),
nn.Linear(hidden_sizes[0], hidden_sizes[1]),
nn.ReLU(),
nn.Linear(hidden_sizes[1], output_size),
nn.Softmax(dim=1))
print(model)

最佳答案

两者没有区别。后者可以说更简洁,更容易编写,以及像 ReLU 这样的纯(即无状态)函数的“客观”版本的原因。和 Sigmoid是允许它们在像 nn.Sequential 这样的结构中使用.

关于python-3.x - PyTorch 中的 nn.functional() 与 nn.sequential() 之间是否存在计算效率差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com