Exemplo n.º 1
0
        # 정확도와 손실 출력
        print('accuracy :', history.history['acc'][-1])
        print('loss :', history.history['loss'][-1])

        # 문장 예측 테스트
        # (3 박 4일 놀러 가고 싶다) -> (여행 은 언제나 좋죠)
        input_encoder = x_encoder[2].reshape(1, x_encoder[2].shape[0])
        input_decoder = x_decoder[2].reshape(1, x_decoder[2].shape[0])
        results = model.predict([input_encoder, input_decoder])

        # 결과의 원핫인코딩 형식을 인덱스로 변환
        # 1축을 기준으로 가장 높은 값의 위치를 구함
        indexs = np.argmax(results[0], 1)

        # 인덱스를 문장으로 변환
        sentence = preprocessor.convert_index_to_text(indexs, index_to_word)
        print(sentence)
        print()

    # User Warning을 사라지게 하기 위해서 추가한 코드
    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

    # 직접 추가한 코드
    # 기존의 코드는 예측 모델을 일회용으로 사용하기에 저장하지 않았습니다.
    # 해당 챗봇은 모델을 계속 사용하기에 예측 모델을 저장하는 코드입니다.
    # 훈련 & 예측 모델 저장

    model.save('./model/train_model.h5')
    encoder_model.save('./model/encoder_model.h5')
    decoder_model.save('./model/decoder_model.h5')