Note ≣ | TFRecord 형태의 전처리
TFRecord 형태가 항상 장점만 있는 것은 아닙니다. 아무래도 이진 데이터 형태로 미리 변환하다 보니 학습 프로세스 도중 일반적으로 사용하는 전처리를 적용하는 것이 쉽지 않다는 단점이 있습니다. 사용할 수 있는 전처리는 텐서플로에서 제공하는 API에 한해서만 가능합니다.
한 가지 방법은, 한 번에 해도 되는 전처리는 TFRecord를 생성하기 전에 일괄 적용하는 것입니다. 하지만 이 방법 또한 학습 상황에 따라 다이나믹하게 전처리를 적용하는 것은 불가능합니다. 또 다른 방법으로는 텐서플로 API를 활용해 전처리 코드를 직접 설계하는 것입니다. 이 때문에 TPU를 활용하는 컴페티션에서는 참가한 캐글러들이 텐서플로 API로 여러 전처리 코드를 구현하려고 노력하는 모습을 종종 볼 수 있습니다.
다음은 주어진 데이터셋을 TFRecord로 변환하는 과정을 나타낸 코드입니다. TFRecord 변환 과정은 TPU 학습과는 별개로 진행하는 것이 좋습니다. 그래서 새로 캐글 노트북을 생성해 TFRecord를 만들 것을 권장합니다. 이후 만들어진 TFRecord 데이터를 학습 노트북에 불러와 모델 학습을 진행할 것입니다.