728x90 ๐ป Programming/AI & ML17 [pytorch]Box operator๋ก Bounding Box ์ฝ๊ฒ ๋ค๋ฃจ๊ธฐ torchvision.ops torchvision.ops ์์๋ computer vision ๊ด๋ จ ๊ฐ์ข operator ๋ค์ ์ ๊ณตํ๋๋ฐ, ๊ทธ์ค์์ Bounding Box๋ฅผ ๋ค๋ฃจ๋ Box Operators๋ฅผ ์๊ฐํ๋ค. Detection ๊ด๋ จ ์ฝ๋๋ฅผ ๋ง์ง๋ค๋ณด๋ฉด bounding box๋ฅผ ๋ค๋ฃฐ ์ผ์ด ๋ง์๋ฐ, torchvision.ops ์์๋ bactch ๋จ์๋ก ์ฐ์ฐ์ด ๊ฐ๋ฅํ ๊ฐ์ข ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค. * box ๋ฉด์ , box๊ฐ์ iou, box format ๋ณ๊ฒฝ, clip ๋ฑ ์ํ ๊ฐ๋ฅ ํ ์คํธ box 3๊ฐ๋ฅผ ์ ์ํ๊ณ ์์ ์ดํด๋ณธ box operator ๊ธฐ๋ฅ๋ค์ ํ ์คํธ import numpy as np import cv2 import torch from torchvision.ops import * # boxes .. 2023. 3. 17. [pytorch] Dataloader์ 'collate_fn'์ ์ฌ์ฉํ ์ด๋ฏธ์ง ํจ๋ฉ. ๊ฐ๋ณ ์ฌ์ด์ฆ์ ์ด๋ฏธ์ง๋ฅผ batch๋ก ๋ฌถ์ด Dataloader์ ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ. Pytorch์ Dataloader๋ ์ธ๋ฑ์ค์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํด์ฃผ๋ dataset, ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ์ปจํธ๋กคํ๋ sampler์ batch๋ก ๋ฌถ์ธ ๋ฐ์ดํฐ๋ฅผ batch๋ก ๋ฌถ์ ๋ ํ์ํ ํจ์๋ฅผ ์ ์ํ๋ collate_fn ๋ฑ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง๋ค. ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ํ์ต ๋๋ ์ธํผ๋ฐ์ค ํ๋ค๋ณด๋ฉด ๊ฐ๋ณ ์ฌ์ด์ฆ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ์ ์ฃผ์ ํด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ, ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ํน์ ์ฌ์ด์ฆ(e.g. 224x224)๋ก ์ด๋ฏธ์ง๋ฅผ ๋ฆฌ์ฌ์ด์ฆํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๊ทธ๋์ ์ผ๋ฐ์ ์ผ๋ก ํผ๋ธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ณ ์๊ฐ์์ด transforms.Resize() ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด๋ ์ฌ์ด์ฆ๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค. ํ์ง๋ง, ์ค์ ํ๊ฒฝ์์ ์ผ๊ด๋ ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง์ ์ฌ์ฉํ๋.. 2023. 3. 3. [HuggingFace] Swin Transformer ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ ํ์ต ํํ ๋ฆฌ์ผ ์ต๊ทผ์ ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ผ์ด ์๊ฒจ ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ์ธ HuggingFace ๋ฅผ ์ฌ์ฉํด๋ดค๋ค. HuggingFace์ transformers๋ ๋ค์ํ ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ ๊ณตํ๊ณ ์์ฒด ํ์ต/ํ๊ฐ API๋ฅผ ์ ๊ณตํ๋ค. ๋ํ ํ๊น ํ์ด์ค ๋ชจ๋ธ์ Pytorch, Tensorflow ํ์ต/ํ๊ฐ ์ฝ๋์๋ ๊ทธ๋๋ก ์ ์ฉํ ์ ์์๋งํผ ํธํ์ฑ์ด ์ข๋ค๊ณ ์๋ ค์ ธ ์๋ค. ๊ทธ๋์ pytorch ํ์ต ์ฝ๋์ ๋ชจ๋ธ๋ง ํ๊น ํ์ด์ค์ ํธ๋์คํฌ๋จธ๋ก ๋ฐ๊ฟ์ ํ์ต์ํค๋ฉด ๋๋๊น ๊ฐ๋จํ๊ฒ ๊ตฌ๋ ์๊ฐํ์ง๋ง... ์๊ฐ๋ณด๋ค ๊ณ ๋ คํด์ผํ ์ ๋ค์ด ์์ด์ ํํ ๋ฆฌ์ผ๋ก ์ ๋ฆฌํด ๋ณธ๋ค. HuggingFace Vision Model ์ฌ์ฉ ๋ฐฉ๋ฒ ๋ฐ์ดํฐ์ ์ค๋น Vision Transformer(ViT) ๊ธฐ๋ฐ์ ์ด๋ฏธ์ง ํธ๋์คํฌ๋จธ ๋ชจ๋ธ๋ค์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์์ ๊ฐ์ด ํจ์น๋ก .. 2023. 1. 11. [ONNX] pytorch ๋ชจ๋ธ์ ONNX๋ก ๋ณํํ๊ณ ์คํํ๊ธฐ ONNX (Open Neural Network eXchange) ONNX๋ ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ์ ํํํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์คํ ํฌ๋งท์ผ๋ก ONNX ๋ฐํ์์ ์ฌ๋ฌ ๋ค์ํ ํ๋ซํผ๊ณผ ํ๋์จ์ด(์๋์ฐ, ๋ฆฌ๋ ์ค, ๋งฅ์ ๋น๋กฏํ ํ๋ซํผ ๋ฟ๋ง ์๋๋ผ CPU, GPU ๋ฑ์ ํ๋์จ์ด)์์ ํจ์จ์ ์ธ ์ถ๋ก ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ๋๋ฌธ์ ๋ค์ํ ํ๋ ์์ํฌ์์ ์ฐ๊ณ๊ฐ ํ์ํ ๋ ONNX๋ฅผ ์ฌ์ฉํ๋ค. (pytorch ↔๏ธ tensorflow ↔๏ธ caffe2 ↔๏ธ MXNet ↔๏ธ ...) *์ฐธ๊ณ https://pytorch.org/docs/stable/onnx.html https://tutorials.pytorch.kr/advanced/super_resolution_with_onnxruntime.html ONNX ์์ 1. Pytorch ๋ชจ๋ธ.. 2022. 12. 21. [pytorch] Mixed Precision ์ฌ์ฉ ๋ฐฉ๋ฒ | torch.amp | torch.autocast | ๋ชจ๋ธ ํ์ต ์๋๋ฅผ ๋์ด๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ Mixed Precision ์ผ๋ฐ์ ์ธ neural network์์๋ 32-bit floating point(FP32) precision์ ์ด์ฉํ์ฌ ํ์ต์ ์ํค๋๋ฐ, ์ต์ ํ๋์จ์ด์์๋ lower precision(FP16) ๊ณ์ฐ์ด ์ง์๋๋ฉด์ ์๋์์ ์ด์ ์ ์ป์ ์ ์๋ค. ํ์ง๋ง FP16์ผ๋ก precision์ ์ค์ด๋ฉด ์๋ฅผ ํํํ๋ ๋ฒ์๊ฐ ์ค์ด๋ค์ด ํ์ต ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค. Mixed Precision์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ ํ์ต ๊ณผ์ ์์ ๋ถ๋์์์ ์ฐ์ฐ์ ์ ๋ฐ๋๋ฅผ ํผํฉํ์ฌ ์ฌ์ฉํ๋ ๊ธฐ์ ๋ก, ํ์ต ์๋๋ฅผ ๋์ด๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๋ ๋ฐ ๋์์ ์ค๋ค. Mixed Precision์ ๋๊ฐ FP32(32๋นํธ ๋ถ๋์์์ )์ FP16(16๋นํธ ๋ถ๋์์์ )์ ์กฐํฉํ์ฌ ์ฌ์ฉํ๋ฉฐ, ๊ฐ์ค์น์ ๊ทธ๋๋์ธํธ๋ FP16๋ก ์ ์ฅํ.. 2022. 12. 20. [pytorch] pytorch ๋ชจ๋ธ ๋ก๋ ์ค Missing key(s) in state_dict ์๋ฌ pytorch๋ก ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ๋ Missing key(s) in state_dict ๋ผ๋ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋ค. ๋๋ถ๋ถ ๋ฅ๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ถ๋ฌ์จ ๋ชจ๋ธ ์จ์ดํธ์ ํค๊ฐ์ด ๋ง์ง ์์์ ๋ฐ์ํ๋ ์ค๋ฅ์ธ๋ฐ, ๋ชจ๋ธ๊ณผ ๋ชจ๋ธ ์จ์ดํธ๊ฐ ์๋ก ์ง์ด ์๋ ๊ฒฝ์ฐ์ ๋ฐ์ํ๊ณ ๊ฐํน ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ํด๋น ์๋ฌ๊ฐ ๋ฐ์ํด์ ์ฐ๋ฆฌ๋ฅผ ๊ดด๋กญํ๋ค... ใ ๊ทธ ๋ ์๋์ ๊ฐ์ด torch.load๋ก ๋ชจ๋ธ์ state dict๋ฅผ ๋ถ๋ฌ์ค๊ณ ๋๋ฒ๊น ์ ํด์ state dict์ ํค๊ฐ์ ํ์ธํด๋ณด๋ฉด ์ ํํ๊ฒ ๋ฌธ์ ๋ฅผ ํ์ ํ ์ ์๋ค. model_path = './model.pth' model_state_dict = torch.load(model_path) ์ ์ฒซ ๋ฒ์งธ ์บก์ฒ๋ฅผ ๋ณด๋ฉด ๋ชจ๋ธ state dict์ ๋ชจ๋ธ ์จ์ดํธ.. 2022. 12. 15. ์ด์ 1 2 3 ๋ค์ 728x90