神经网络的推理时间较慢

时间:2019-07-12 18:17:52

标签: 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毫秒。

2 个答案:

答案 0 :(得分:1)

您使用了多少数据进行推理?如果只是几个数据点,我认为python和C ++之间的执行时间不会有太大差异。也许尝试更多的数据?

此外,您正在使用的架构非常简单;它可能可以很好地在CPU中运行以进行推断。别忘了提供测试反馈!我也想知道发生了什么。 :)

答案 1 :(得分:0)

Libtorch 确实比 pytorch 慢。