Как экспортировать модель Pytorch в файл (Python) и загрузить ее (Libtorch C ++) с помощью TorchScript?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как экспортировать модель Pytorch в файл (Python) и загрузить ее (Libtorch C ++) с помощью TorchScript?

Сообщение Anonymous »

Я борюсь с (DE) сериализацией данных pytorch . Я хотел бы сохранить мою модель в файле PT (H) после обучения ее с помощью pytorch (с помощью графического процессора). Затем я хотел бы загрузить эту сериализованную модель в контексте C ++ (используя libtorch ). В настоящее время я просто экспериментирую с базовыми функциями экспорта/импорта, чтобы получить его.
Код приведен ниже. Я получаю следующую ошибку: < /p>

Код: Выделить всё

Error loading model
Unrecognized data format
Exception raised from load at C:\actions-runner\_work\pytorch\pytorch\builder\windows\pytorch\torch\csrc\jit\serialization\import.cpp:449 (most recent call first):
00007FFBB1FFDA2200007FFBB1FFD9C0 c10.dll!c10::Error::Error [ @ ]
00007FFBB1FFD43E00007FFBB1FFD3F0 c10.dll!c10::detail::torchCheckFail [ @ ]
00007FFB4B87B54700007FFB4B87B4E0 torch_cpu.dll!torch::jit::load [ @ ]
00007FFB4B87B42A00007FFB4B87B380 torch_cpu.dll!torch::jit::load [ @ ]
00007FF6089A737A00007FF6089A7210 pytroch_load_model.exe!main [c:\users\USER\projects\cmake dx cuda pytorch\cmake_integration_examples\pytorch\src\pytroch_load_model.cpp @ 19]
00007FF6089D8A9400007FF6089D8A60 pytroch_load_model.exe!invoke_main [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 79]
00007FF6089D893E00007FF6089D8810 pytroch_load_model.exe!__scrt_common_main_seh [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288]
00007FF6089D87FE00007FF6089D87F0 pytroch_load_model.exe!__scrt_common_main [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 331]
00007FF6089D8B2900007FF6089D8B20 pytroch_load_model.exe!mainCRTStartup [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17]
00007FFBDF8C703400007FFBDF8C7020 KERNEL32.DLL!BaseThreadInitThunk [ @ ]
00007FFBDFBA265100007FFBDFBA2630 ntdll.dll!RtlUserThreadStart [ @ ]
Вот код:
python (pytorch):

Код: Выделить всё

import torch
import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x

class TestModel(nn.Module):
def __init__(self):
super(TestModel, self).__init__()
self.x = 2

def forward(self):
return self.x

test_net = torch.jit.script(Net())
test_module = torch.jit.script(TestModel())
torch.jit.save(test_net, 'test_net.pt')
torch.jit.save(test_module, 'test_module.pt')
c ++ (libtorch)

Код: Выделить всё

#include 
#include 
#include 

int main(int argc, const char* argv[]) {
if (argc != 2) {
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/74057587/how-to-export-pytorch-model-to-file-python-and-load-it-libtorch-c-using-to[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»