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)