我在 Pytorch 中编写了一个简单的全连接神经网络。我保存了模型并使用 LibTorch 在 C++ 中加载它,但我的推理时间对于我的应用程序领域来说非常慢。现在的推理时间约为 10 毫秒。这是正常现象还是我做错了什么?
我首先只测量了 python 上的推理时间。然后为了让它更快,我在 C++ 上加载了网络,但它没有帮助。
这是网络代码
class network(nn.Module):
def __init__(self):
super(network,self).__init__()
input_nodes = 362
hidden_nodes1 = 50
hidden_nodes2 = 30
output_nodes = 1
self.fc1 = nn.Linear(input_nodes,hidden_nodes1)
nn.init.xavier_uniform_(self.fc1.weight)
self.bn1 = nn.BatchNorm1d(num_features=hidden_nodes1)
self.fc2 = nn.Linear(hidden_nodes1,hidden_nodes2)
nn.init.xavier_uniform_(self.fc2.weight)
self.bn2 = nn.BatchNorm1d(num_features = hidden_nodes2)
self.fc3 = nn.Linear(hidden_nodes2,output_nodes)
nn.init.xavier_uniform_(self.fc3.weight)
self.out_act = nn.Sigmoid();
def forward(self,X):
X = F.relu(self.bn1(self.fc1(X)))
X = self.fc2(X)
X = F.dropout2d(X,p=0.3)
X = F.relu(X)
X = self.fc3(X)
out = self.out_act(X)
return out
我希望推理大约需要 0.01 毫秒。
最佳答案
您使用了多少数据进行推理?如果只是几个数据点,我觉得python和C++在执行时间上不会有太大的差别。也许尝试使用更多数据?
此外,您使用的架构很简单;它可能可以很好地在 CPU 中运行以进行推理。不要忘记在测试中提供反馈!我也想知道发生了什么。 :)
关于python - 神经网络的推理时间慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57012213/