我用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毫秒的时间。
eval()
将网络切换到评估模式了吗? - Jan Ca