C++ c++;调用python pytorch模型,结果会不同吗?

C++ c++;调用python pytorch模型,结果会不同吗?,c++,pytorch,C++,Pytorch,我有一个经过训练的pytorch模型,我使用以下方法保存它: tsm = torch.jit.trace(mlp, torch.rand(1, num_features).double()) tsm.save('model.pt') print(mlp(np.array([[0.2] * num_features]))) 我用C++加载,用相同的数据转发-> [0.2 ] *NUMIX特性,代码如下:< /P> #include <iostream> #include <me

我有一个经过训练的pytorch模型,我使用以下方法保存它:

tsm = torch.jit.trace(mlp, torch.rand(1, num_features).double())
tsm.save('model.pt')
print(mlp(np.array([[0.2] * num_features])))

我用C++加载,用相同的数据转发-> [0.2 ] *NUMIX特性,代码如下:< /P>

#include <iostream>
#include <memory>
#include <torch/script.h> // One-stop header.
#include <torch/custom_class.h>

int main(int argc, const char* argv[]) {
  if (argc != 2) {
    std::cerr << "usage: example-app <path-to-exported-script-module>\n";
    return -1; 
  }

  torch::jit::script::Module module = torch::jit::load(argv[1]);

  std::vector<torch::jit::IValue> inputs;
  // std::vector<double> inputs;                                                                                                                                                                                                            
  // inputs.push_back(torch::ones({1, 51}));
  std::vector<double> v(51, 0.2);
  torch::Tensor data = torch::from_blob(v.data(), {1, 51});
  inputs.push_back(data);

  // at::Tensor output = module.forward(inputs).toTensor();
  // std::cout << output.slice(/*dim=*/1, /*start=*/0, /*end=*/5) << '\n';
  auto t = module.forward(inputs).toTensor();
  std::cout << t.sizes() << std::endl;
  std::cout << module.forward(inputs).toTensor()[0][0].item<double>();//.toDouble() << std::endl;
}
#包括
#包括
#包括//一站式标题。
#包括
int main(int argc,const char*argv[]{
如果(argc!=2){
标准:cerr