Head vs breakz

[인공지능] - Hyperas 본문

Head/인공지능

[인공지능] - Hyperas

headbreakz 2020. 2. 14. 16:53

Hyperas

1.설치

pip insatll hyperas

2.실행

from hyperas.distributions import uniform


#dropout에서 uniform {{}}로 표기해서 사용한다.
def create_model(x_train,y_train,x_test,y_test):
    model=Sequential()
    model.add(Dense( , input_shape( , )))
    model.add(Activation('relu'))
    model.add(Dropout({{uniform(0,1)}}))
  • 추가 실행
from hyperas.distributions import uniform,choice
from hyperas import optim

def create_model(x_train,y_train,x_test,y_test):
    model=Sequential()
    model.add(Dense( , input_shape( , )))
    model.add(Activation('relu'))
    #dropout값을 uniform 값으로 
    model.add(Dropout({{uniform(0,1)}}))
    #Dense 값을 여러 값
    model.add(Dense([[choice([ , , ])]]))
    #활성화 함수를 여러값
    model.add(Activation({{choice['relu','sigmoid']}}))    
model.compile(loss='',metrics=[''],
              optomizer={{choice(['adam','Radam','sgd'])}})
if __name__ == '__main__':
    best_run, best_model = optim.minimize(model=create_model,
                                          data=data,
                                          algo=tpe.suggest,
                                          max_evals=,
                                          trials=Trials())

hyperas를 사용하여 모델을 만들고 학습을 시킬 경우, 입력한 값에 따라서 best 모델과 best 실행 값을 보여준다. 위에 코드에는 나타나 있지 않지만, hyperas github에 확인해보면, layer를 추가하는 부분이 있다.

현재 아직 데이터를 입력하여 실행을 시켜보지 않았지만, 기존에 노가다식으로 모델의 값을 바꾸었던 부분이 이를 통해 한번에 해결 될 것 같다.

대규모로 자동화하여 최적화를 진행하면 검증 세트가 과적합이 발생한다. 검증 데이터를 바탕으로 학습하기 때문에 검증데이터에 맞춰 학습을 한다.

.


참고&도움

github-maxpumperla/hyperas

Comments