/p4-opt-2-GTS

p4-mod-p4-opt-2-gts created by GitHub Classroom

Primary LanguagePython

πŸŽ‰ p4-opt-2-GTS πŸŽ‰

About

λ§Œμ•½ μƒˆλ‘œμš΄ κ²½λŸ‰ν™” ꡬ쑰의 λͺ¨λΈμ„ μ°Ύμ•„λ‚΄μ„œ μ„œλΉ„μŠ€κΉŒμ§€ 해보고 μ‹ΆμœΌμ‹œλ‹€λ©΄, 우리 ν”Œλž«νΌμ„ μ‚¬μš©ν•΄λ³΄μ„Έμš”.

File Struct

$> tree -d
.
β”œβ”€β”€ configs
β”‚   └── model
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ augmentation
β”‚   β”œβ”€β”€ modules
β”‚   β”œβ”€β”€ utils
β”‚   β”œβ”€β”€ custom_dataset.py
β”‚   β”œβ”€β”€ dataloader.py
β”‚   β”œβ”€β”€ decomp.py
β”‚   β”œβ”€β”€ loss.py
β”‚   β”œβ”€β”€ model.py
β”‚   β”œβ”€β”€ network_prune.py
β”‚   β”œβ”€β”€ trainer.py
β”‚   └── vbmf.py
β”œβ”€β”€ model_decomp.py
β”œβ”€β”€ model_search.py
β”œβ”€β”€ requirement.txt
└── torch2tflite.py   

Requirements

  • Pytorch
  • TorchVision
  • optuna
  • ....

How to use?

1. model_search.py

NASλ₯Ό 톡해 κ²½λŸ‰ν™” λͺ¨λΈμ„ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

κ²½λŸ‰ν™” λͺ¨λΈμ„ μ°ΎκΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” λͺ¨λ“ˆλ“€

module_table

ν•„μš”ν•œ Args

Args μš”μ†Œ μ„€λͺ…
METRIC λͺ¨λΈμ˜ μ„±λŠ₯을 ν‰κ°€ν•˜λŠ” μ§€ν‘œμž…λ‹ˆλ‹€. [F1, ACC]
LIMIT_MACS μ°Ύκ³ μžν•˜λŠ” λͺ¨λΈμ˜ MACS에 μ œν•œμ„ κ±Έμ–΄ μ€λ‹ˆλ‹€.
image_size 타깃이 λ˜λŠ” λ°μ΄ν„°μ˜ 이미지 μ‚¬μ΄μ¦ˆλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
batch_size dataloader의 λ°°μΉ˜μ‚¬μ΄μ¦ˆλ₯Ό μ§€μ •ν•΄μ€λ‹ˆλ‹€.
CLASSES λΆ„λ₯˜ν•˜κ³ μžν•˜λŠ” λ°μ΄ν„°μ˜ 클래슀 수λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
MAX_DEPTH μ°Ύκ³ μžν•˜λŠ” λͺ¨λΈμ˜ μ΅œλŒ€ 깊이λ₯Ό μ§€μ •ν•΄μ£Όμ„Έμš”.
data_type 데이터 μœ ν˜•μ„ μ§€μ •ν•΄μ€λ‹ˆλ‹€. [CIFAR10, CIFAR100, CUSTOM]
data_root 데이터가 μ €μž₯된 디렉터리 경둜λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
Trial λͺ©ν‘œ 아킀텍쳐λ₯Ό μ°ΎκΈ° μœ„ν•΄ λͺ‡λ²ˆμ˜ Trial을 ν•  것인지 μ§€μ •ν•©λ‹ˆλ‹€.
prun_type 아킀텍쳐λ₯Ό 찾을 λ•Œ μ–΄λ–€μ‹μœΌλ‘œ λͺ¨λΈμ„ μ„ λ³„ν•˜μ—¬ 가지고 μ˜¬κ²ƒμΈμ§€ μ •ν•΄μ€λ‹ˆλ‹€. [0.μ‚¬μš©μ•ˆν•¨, 1.optuna에 λ‚΄μž₯된 prunerλ₯Ό μ‚¬μš©, 2. custom]
auto_augment μ˜€ν†  μ–΄κ·Έλ©˜ν…Œμ΄μ…˜μ„ μ‚¬μš©ν• μ§€μ— λŒ€ν•œ μ—¬λΆ€λ₯Ό μ•Œλ €μ€λ‹ˆλ‹€.

2. model_decomp.py

NASλ₯Ό 톡해 찾은 λͺ¨λΈμ„ μ’€ 더 κ°€λ³κ²Œ ν•΄μ£ΌκΈ° μœ„ν•΄ decomposition단계λ₯Ό κ±°μΉ©λ‹ˆλ‹€.

3. torch2tflite.py

Pytorchλͺ¨λΈμ„ λ‹€μ–‘ν•œ ν”Œλž«νΌμ—μ„œ μ„œλΉ„μŠ€ ν•˜κΈ°μœ„ν•΄ μ—¬λŸ¬ ν”Œλž«νΌμœΌλ‘œ λ³€ν™˜ν•΄μ£ΌλŠ” μž‘μ—…μ„ ν•΄μ€λ‹ˆλ‹€.
convert_model

Project with this platform

ν•΄λ‹Ή ν”„λ‘œμ νŠΈλ₯Ό 톡해 GTSNetμ΄λΌλŠ” λͺ¨λΈμ„ μ°Ύμ•„ ν•™μŠ΅μ‹œν‚¨ν›„ μ—¬λŸ¬ ν”„λ‘œμ νŠΈμ— μ μš©μ„ ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

About Other Branches

1. Pruning