python - 神经网络的推理时间慢

标签 python machine-learning pytorch libtorch

我在 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/

相关文章:

python - 如何使用 argparse 取回选项字符串?

validation - 如何分割训练和测试数据 - Tensorflow 上的 Keras

python - Tensorflow 将预测值转换为二进制

python - 运行时错误 : cuDNN error: CUDNN_STATUS_NOT_INITIALIZED using pytorch

pytorch - 如何计算pytorch中BCEWithLogitsLoss的不平衡权重

python - 如何使相等数字参数出现的键值

python - numpy 的 fromfile count 参数如何工作?

python - 当尝试设置运行计划时,类立即调用方法。函数没有发生

python - 训练 pytorch RNN 时损失并没有减少

python - Pytorch 句子数据加载器