numpy와 tensor와의 관계
tensor : 호환성이 낮지만 gpu나 tensorflow 내부의 기능을 극대화 가능함
numpy : 호환성이 좋지만 tensorflow 기능을 극대화 하지 못함. tensorflow 외 pytorch에서도 사용 가능함
# numpy 기반 cifar10 데이터셋
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data()
# 방법1 : 데이터셋 전체를 기반으로 데이터를 만들어줌
tf.data.Dataset.from_tensors(X_train)
tf.data.Dataset.from_tensors((X_train, y_train))
# 방법2 : 데이터 1개를 기반으로 만들어 줌 -> ML에 더 적합함
tf.data.Dataset.from_tensor_slices(X_train)
tf.data.Dataset.from_tensor_slices((X_train, y_train))
Tensorflow 2 튜토리얼에서 전문가를 활용 방법을 보면 아래와 같이 코드 예시가 나온다
# Tensorflow2 quichstart for expert
train_ds = tf.data.Dataset.from_tensor_slices(
(x_train, y_train)).shuffle(10000).batch(32)
test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)
튜토리얼을 따라 아래와 같이 Cifar10 데이터를 Tenosr data로 변해서 돌리면 다음과 같다.
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.cifar10.load_data()
input_ = tf.keras.Input((32, 32, 3))
X_train = X_train / 255
X_test = X_test / 255
train = tf.data.Dataset.from_tensor_slices((X_train, y_train)).batch(32)
y_train = tf.keras.utils.to_categorical(y_train)
x = tf.keras.layers.Conv2D(32, 3)(input_)
x = tf.keras.layers.ReLU()(x)
x = tf.keras.layers.MaxPool2D(2)(x)
x = tf.keras.layers.Conv2D(64, 3)(x)
x = tf.keras.layers.ReLU()(x)
x = tf.keras.layers.Conv2D(64, 3)(x)x = tf.keras.layers.ReLU()(x)
x = tf.keras.layers.Flatten()(x)
x = tf.keras.layers.Dense(1024)(x)
x = tf.keras.layers.Dense(10, activation='softmax')(x)
model = tf.keras.models.Model(input_, x)
model.summary()
model.compile(loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True),
optimizer='adam',
metrics=['accuracy'])
history = model.fit(train, epochs=10)
pd.DataFrame(history.history).plot.line()
728x90
'공부하는삶 > CV' 카테고리의 다른 글
Bag of Tricks for Image Classification with Convolutional Neural Networks (0) | 2023.08.29 |
---|---|
[CS231n] Lecture 7 | Training Neural Networks II (0) | 2023.08.29 |
Transfer Learning (0) | 2023.08.29 |
Data Pipeline (feat. Augmentation) (0) | 2023.08.29 |
Python Image 처리 (0) | 2023.08.29 |
WSL2 설치하기 (0) | 2021.03.26 |