import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rotation_range=20, # 20도내에서 랜덤하게 회전
width_shift_range=0.2, #가로 이동 20%만큼 랜덤하게 생성
height_shift_range=0.2, #세로 이동 20%만큼 랜덤하게 생성
horizontal_flip=True) #가로축으로 반전 랜덤하게 생성
result = next(iter(datagen.flow((train_x, train_y))))
x, y = result
plt.imshow(x[0, :, :, 0], 'gray')
plt.show()
# 클래스로 분류된 dir를 사용해야 한다
train_dir = "../../datasets/mnist_png/training"
input_shape = (28, 28, 1)
batch_size = 32
datagen.flow_from_directory(
train_dir,
target_size=input_shape[:2],# 이미지 크기를 어떻게 불러올지
batch_size=batch_size,
color_mode='grayscale',#rgb, rgba
)
x, y = next(iter(datagen.flow((train_x, train_y))))
print(x.shape) #(32, 32, 32, 3)
print(y.shape) #(32, 10)
import pandas as pd
train_data = pd.read_csv("../../datasets/cifar/train_dataset.csv")
datagen.flow_from_dataframe(
train_data,
x_col="path",
y_col="class_name",
target_size=(32, 32),
color_mode="rgb",
class_model="categorical",
batch_size=32
)
x, y = next(iter(datagen.flow((train_x, train_y))))
Reference
1) 제로베이스 데이터스쿨 강의자료