AI-GrandChallenge / round-1

14 stars 11 forks source link

[track 2] keras에서 bind_model #107

Closed symoon94 closed 4 years ago

symoon94 commented 4 years ago

session: t0048/tr-2/198

  1. #Keras 예제 참조하여 다음과 같은 방식으로 코드 작성해서 그동안 저장한 여러 weight 값들 바꿔가면서 submit을 몇번해봤는데 recorded score 값이 소숫점까지 항상 같게 나와서 혹시 nsml의 default 모델이 불러와지고 있던건지 궁금해서 코드 첨부합니다. bind_model과 main을 이런식으로 작성하면 working하는게 맞는지요?
def bind_model(model):
    def load(save_folder, **kwargs):
        model = keras.models.load_model(os.path.join(save_folder, 'test.h5'))  

    def save(save_folder, **kwargs):
        model.save(os.path.join(save_folder, 'test.h5'))  

    def infer(data_path, **kwargs):
        return inference(model, data_path)

    nsml.bind(save=save, load=load, infer=infer)

main() 안에는 다음과 같이 작성하였습니다.

    WEIGHT_FILE = "test.h5"

    model = tf.keras.models.load_model(WEIGHT_FILE)
    logger.info(f"Model Summary\n{model.summary()}")

    nu.bind_model(model)
    nsml.save('example')

    if args.pause:
        nsml.paused(scope=locals())

    if args.mode == 'test':
        nsml.load('example', session=args.sess_name)

    logger.info("FINAL Model Summary")
    logger.info(f"{model.summary()}")