tfrecord 예제

이 전자 필기장에서는 tf를 만들고 구문 분석하고 사용하는 방법을 보여 줍니다. 예제 메시지, 다음 직렬화, 쓰기 및 읽기 tf. .tfrecord 파일과 의 메시지를 예로 들어 보겠습니다. 이제 파일 images.tfrecords가 있습니다. 이제 파일의 레코드를 반복하여 작성한 내용을 다시 읽을 수 있습니다. 사용 사례의 경우 이미지를 재현하기 만하면 필요한 유일한 기능은 원시 이미지 문자열입니다. 위에서 설명한 getters, 즉 example.feature[image_raw`].bytes_list.value[0]를 사용하여 추출할 수 있습니다. 또한 레이블을 사용하여 브리지와 반대로 고양이가 어떤 레코드인지 확인합니다. 다음 예제에서는 이미지를 원시 표현으로 변환하고 복원하며 원본 이미지와 복원된 이미지가 동일한지 확인합니다. 이제 images.tfrecord 파일의 크기는 1.2 MB로 요약된 개별 이미지의 거의 동일한 크기입니다. 일반적으로이 데이터를 저장하고 (디스크에 직렬화하고 쓰기) 파이썬에서 다시 읽으려면 피클 모듈을 사용할 수 있습니다. 예: 이 예제에서 각 TFRecord는 단일 사용자의 영화 등급 및 해당 제안(단일 샘플)을 나타냅니다.

데이터 집합의 모든 사용자에 대한 권장 사항을 작성하는 것은 동일한 프로세스를 따릅니다. 피처 유형(예: 동영상 등급의 플로트)은 데이터 집합의 모든 샘플에서 동일해야 합니다. 이 준수 기준 및 기타 규정은 tf.train.train.example의 프로토콜 버퍼 정의에 정의되어 있습니다. 또한 .tfrecord 파일에서 다시 읽은 이미지가 원본 이미지와 동일한지 확인합니다. 우리는 또한 원시 형식으로 이미지와 함께 이미지의 크기를 작성하는 것을주의하십시오. 이전 섹션에 크기를 저장해야 하는 이유에 대한 예제를 보여 주어 도겠습니다. 다음은 TFRecord 파일에 피처를 기록한 다음 파일을 다시 읽고 구문 분석된 피처를 인쇄하는 전체 예제입니다. 여기에 독자가 TFRecords 파일의 모든 레코드를 제공한다는 점을 제외하고는 디스크에 쓰고 읽는 것은 피클과 매우 유사합니다. 이 예제에서는 파일에 레코드가 하나만 있습니다. 게시물은 트리 부분으로 구성되어 있습니다 : 첫 번째 부분에서는 데이터 집합을 이진 형식으로 변환 할 때와 비슷한 의미에서 numpy를 사용하여 이미지의 원시 데이터 바이트를 얻는 방법을 보여줍니다. 두 번째 파트에서는 계산 그래프를 정의하지 않고 일부 기본 제공 텐서플로우 함수를 사용하여 데이터 집합을 tfrecord 파일로 변환하는 방법을 보여 주었습니다. 세 번째 부분에서는 생성된 이진 파일에서 데이터를 읽기 위한 모델을 정의하고 학습 중에 필요한 임의방식으로 배치하는 방법을 설명합니다.

TFRecords 예제 형식은 세부 사항을 정의합니다: 예제에는 문자열에서 피처 요소로의 맵인 하나의 피쳐가 포함되어 있으며, 이 피처는 각각 Int64List, FloatList 또는 BytesList일 수 있습니다. (참조: example.proto 및 feature.proto) 다음은 이러한 함수의 작동 방식에 대한 몇 가지 예입니다. 다양한 입력 유형과 표준화된 출력 유형을 기록합니다. 함수의 입력 형식이 위에서 설명한 강제 변환 형식 중 하나와 일치하지 않으면 함수는 예외를 발생시게 됩니다(예: _int64_feature(1.0)은 1.0이 부동 부동이므로 대신 _float_feature 함수와 함께 사용해야 합니다. TFRecord의 모든 데이터는 바이트 목록 또는 float 또는 int64 목록으로만 저장되어야 합니다. 생성된 각 데이터 목록 엔터티는 기능 클래스에 의해 래핑되어야 합니다. 다음으로 각 피쳐는 각 피쳐에 할당되는 제목에 해당하는 키와 함께 키 값 쌍으로 저장됩니다. 이러한 제목은 나중에 TFRecord에서 데이터를 추출할 때 사용됩니다.

생성된 사전은 기능 클래스에 입력으로 전달됩니다. 마지막으로 피처 개체는 Example 클래스에 입력으로 전달됩니다. 그런 다음 이 예제 클래스 개체가 TFRecord에 추가됩니다. 위의 절차는 TFRecord에 저장해야 하는 모든 유형의 데이터에 대해 반복됩니다.

Comments

comments