더북(TheBook)

Note ≣ | 미리 전처리해둔 테스트 데이터로 제출

사실 일반적인 Code Competition은 앞서 설명한 이유로 미리 전처리한 테스트 셋을 사용할 수 없습니다. 하지만 Jigsaw 대회는 예외로 미리 전처리해둔 테스트 데이터로도 제출해볼 수 있습니다. 그 이유는 7.4.8절의 마지막 부분에 Note로 설명하고 있는 ‘2단계 컴페티션’과 관련이 있습니다.

다음 코드는 TFRecord 파일로 만들어진 테스트 셋을 텐서플로 데이터셋으로 만드는 코드입니다. TFRecord 파일을 만들 때 테스트 셋 또한 변환하는 코드를 추가해뒀으므로, 그대로 따라 했다면 test.tfrecord도 만들어져 있을 것입니다. 현재 솔루션에는 사용하지 않지만 이 코드로도 똑같이 모델 추론이 가능합니다. 혹시라도 필요한 경우가 있을 수 있어 추가합니다.

# 추가 코드: 테스트 tfrecord tf.data 변환
def read_non_labeled_tfrecord(example, max_len=220):
    NON_LABELED_TFREC_FORMAT = {
        # tf.string means bytestring
        "input_ids": tf.io.FixedLenFeature([], tf.string),  
        "attention_mask": tf.io.FixedLenFeature([], tf.string),
    }
    example = tf.io.parse_single_example(example, NON_LABELED_TFREC_FORMAT)
    input_ids = tf.io.decode_raw(example["input_ids"], tf.uint16)
    input_ids = tf.cast(input_ids, tf.int32)
    input_ids = tf.reshape(input_ids, [max_len])
    attention_mask = tf.io.decode_raw(example["attention_mask"], tf.bool)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.