Consuming sets of files
여러개의 파일로 분산된 데이터셋을 처리하기 위한 예제이다.
flowers_root = tf.keras.utils.get_file('flower_photos', |
WindowsPath('C:/Users/.../.keras/datasets/flower_photos') |
root 디렉토리는 각 클래스의 디렉토리를 포함하고 있다.
for item in flowers_root.glob("*"): |
sunflowers daisy LICENSE.txt roses tulips dandelion |
각 클래스 디렉토리내 파일의 예제이다.
str(flowers_root/'*/*') list_ds = tf.data.Dataset.list_files(str(flowers_root/'*/*')) for f in list_ds.take(5): print(f.numpy()) |
'C:\\Users\\...\\.keras\\datasets\\flower_photos\\*\\*' b'C:\\Users\\...\\.keras\\datasets\\flower_photos\\daisy\\4724713781_d169f98a35.jpg' b'C:\\Users\\...\\.keras\\datasets\\flower_photos\\dandelion\\8749577087_dc2521615f_n.jpg' b'C:\\Users\\...\\.keras\\datasets\\flower_photos\\tulips\\8520488975_a50d377f91.jpg' b'C:\\Users\\...\\.keras\\datasets\\flower_photos\\daisy\\1392131677_116ec04751.jpg' b'C:\\Users\\...\\.keras\\datasets\\flower_photos\\sunflowers\\5999024446_5721493894.jpg' |
tf.io.read_file 함수를 사용하여 데이터를 로드하고 파일의 경로에서 label을 추출하여 (image, label) 쌍을 반환한다.
def process_path(file_path): for image_raw, label_text in labeled_ds.take(1): |
b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x00H\x00\x00\xff\xdb\x00C\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x03\x02\x02\x02\x02\x02\x04\x03\x03\x02\x03\x05\x04\x05\x05\x05\x04\x04\x04\x05\x06\x07\x06\x05\x05\x07\x06\x04\x04\x06\t\x06\x07\x08\x08\x08\x08\x08\x05\x06\t\n\t\x08\n\x07\x08\x08\x08\xff\xdb\x00C\x01\x01\x01\x01\x02\x02\x02' b'sunflowers' |