[Standalone DL] #11 Lecture - 06 Parameterize

Parameterize

why?

  • 다양한 변수를 한 곳에서 관리하기 위해서
  • hyperparameter이 모델 안에 이미 fix되어 있지 않도록 하기 위해 (변수를 변경했다고 생각했는데 실제 결과가 차이가 없어서 중요하지 않은 변수라고 잘못 착각하게 될 수 있음)
  • re-usability, readability
  • 다양한 실험의 튜닝을 auto hyperparameter optimizer에게 제공하기 위해 !!

Hyperparameter

  • hyperparameter : non-trainable (자동 고정을 하고 출발하는 값들. 레이어 등..)
  • parameter : trainable (loss function - backpropagation ..)

Argparse

import argparse 

parser = argparse.ArgumentParser()
args = parser.parse.args("")

args.num_layer = 5
print(arg.num_layer) # 5 
print(args) # Namespace(num_layer=5)

args.in_dim = 100
print(args) # Namespace(in_dim=100, num_layer=5)

linears = []
for i in range(args.num_layer):
		linears.append(i)
print(linears) #[0,1,2,3,4]

d = vars(args)
print(d, type(d)) # {'num_layer':5, 'in_dim':100} <class 'dict'>

즉, argparse는 딕셔너리 형태로 hyperparameter들을 지정할 수 있는 것