01-15 00:15
벤치마킹
Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 주차넉넉
- 양양솔비치아침
- 중학교입학수학문제
- DFS
- 싱가폴중학교수학문제
- 검색완료
- python#
- 영통외식
- 홍시스무디
- 가족소고기외식
- 당근마켓중고차
- 결항
- 사진에서 글자추출
- 파이썬
- 결항전문
- 영통역소고기
- 푸르지오포레피스
- 편도수술
- 커피쏟음
- 영통칠프로칠백식당
- 양양솔비치 뷔페
- 양양솔비치조식
- 아이혼자다녀옴
- 사진문자추출하기
- 종이캐리어
- 커피
- 사진문자추출
- 양양솔비치세프스키친
- 고마워다음
- 에어아시아
Archives
- Today
- Total
너와나의 관심사
pytorch model 을 Android 에서 동작 본문
Pytorch pth Model 을 Android 에서 동작 시킬려면 c++과 연동되는 pt 모델
torch.jit.save API 를 통해서 모델 변환이 필요하다.
import torch
import torchvision
model = torchvision.models.resnet18(pretrained=True)
model.eval()
example = torch.rand(1, 3, 224, 224)
traced_script_module = torch.jit.trace(model, example)
traced_script_module.save("app/src/main/assets/model.pt")5. Loading TorchScript Module
Module module = Module.load(assetFilePath(this, "model.pt"));
Tensor outputTensor = module.forward(IValue.from(inputTensor)).toTensor();
float[] scores = outputTensor.getDataAsFloatArray();
torch.jit.save(torchscript_model_optimized, "cartoon_test2.pt")
하지만 여기서 중요한 포인트는 model.eval() 로 inference 모드로 변환이 안될때가 있다.
이때는 아래 예제 처럼 처리해주자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import torch from models.generator import Generator from torch.utils.mobile_optimizer import optimize_for_mobile device = torch.device('cpu') ModelName = "trained_netG.pth" example_input = torch.rand(1, 3, 452, 340, dtype=torch.float) model2 = Generator().to(device) model2.load_state_dict(torch.load(ModelName, map_location=device)) model2.eval() script_module = torch.jit.trace(model2.forward, example_input) torchscript_model_optimized = optimize_for_mobile(script_module) torch.jit.save(torchscript_model_optimized, "cartoon_test2.pt") script_module.save('cartoon_test.pt') loaded_model = torch.jit.load("cartoon_test.pt") loaded_model.eval() loaded_model.save('cartoon_test3.pt') | cs |
Comments