پسوند pth معمولاً برای ذخیره مدلهای PyTorch در پایتون استفاده میشود و شما میتوانید با استفاده از PyTorch C++ API از این مدلها در C++ استفاده کنید. در اینجا خلاصه ای از مراحلی است که باید برای استفاده از یک مدل PyTorch با پسوند pt در C++ انجام دهید:
1-لود مدل در پایتون: می توانید مدل را با استفاده از تابع ()torch.load بارگذاری کنید که یک شی مدل PyTorch را برمی گرداند.
2-Serialize the model: می توانید از تابع ()torch.jit.save برای سریال سازی مدل استفاده کنید که مدل را به فرمتی تبدیل می کند که می تواند در C++ بارگذاری شود. این همچنین مدل را به عنوان فایل با پسوند pt. در دیسک ذخیره می کند.
3-لود مدل در C++: برای بارگذاری مدل سریال در C++ می توانید از تابع torch::jit::load استفاده کنید. این یک torch::jit::script::Module: ماژول را برمی گرداند که می توانید از آن برای انجام محاسبات رو به جلو روی ورودی های خود استفاده کنید.
4-ورودی ها را در C++ آماده کنید: باید تانسورهایی را در C++ با ابعاد ورودی هایی که مدل روی آن آموزش داده شده ایجاد کنید و به مدل منتقل کنید.
5-انجام محاسبات فوروارد: می توانید از متد ()forward شی مشعل::jit::script::Module برای انجام محاسبات رو به جلو روی ورودی ها و دریافت خروجی استفاده کنید.
6-خروجی را پردازش کنید: می توانید از تانسورهای خروجی در C++ برای دریافت نتایج و پردازش بیشتر استفاده کنید.
کد پایتون برای ذخیره مدل:
import torch
# load the model
model = torch.load("model.pth")
# serialize the model
torch.jit.save(model, "model.pt")
کد C++ برای بارگیری و استفاده از مدل:
#include <torch/script.h>
int main() {
// load the model
torch::jit::script::Module model = torch::jit::load("model.pt");
// prepare inputs
std::vector<torch::jit::IValue> inputs;
inputs.push_back(torch::ones({1, 3, 224, 224}));
// perform forward computation
auto output = model.forward(inputs).toTensor();
// process output
std::cout << output << std::endl;
return 0;
}