모델 save 시 score 확인 추가
배치 사이즈 오류 수정
This commit is contained in:
jung-geun
2023-10-18 16:40:52 +09:00
parent eb8daffdea
commit 6c6aa221f8
4 changed files with 76 additions and 31 deletions

View File

@@ -21,6 +21,7 @@ if gpus:
def get_data():
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
print(f"y_train : {y_train[0]} | y_test : {y_test[0]}")
x_train, x_test = x_train / 255.0, x_test / 255.0
x_train = x_train.reshape((60000, 28, 28, 1))
@@ -36,9 +37,9 @@ class _batch_generator:
def __init__(self, x, y, batch_size: int = 32):
self.batch_size = batch_size
self.index = 0
dataset = tf.data.Dataset.from_tensor_slices((x, y))
self.dataset = list(dataset.batch(batch_size))
self.max_index = len(dataset) // batch_size
self.x = x
self.y = y
self.setBatchSize(batch_size)
def next(self):
self.index += 1
@@ -46,18 +47,50 @@ class _batch_generator:
self.index = 0
return self.dataset[self.index][0], self.dataset[self.index][1]
def getMaxIndex(self):
return self.max_index
def getIndex(self):
return self.index
def setIndex(self, index):
self.index = index
def getBatchSize(self):
return self.batch_size
def setBatchSize(self, batch_size):
self.batch_size = batch_size
self.dataset = list(
tf.data.Dataset.from_tensor_slices(
(self.x, self.y)).batch(batch_size)
)
self.max_index = len(self.dataset)
def getDataset(self):
return self.dataset
# BEGIN: 5f8d9bcejpp
from keras.applications.resnet50 import ResNet50
def make_model():
model = ResNet50(weights=None, input_shape=(28, 28, 1), classes=10)
model = Sequential()
model.add(
Conv2D(32, kernel_size=(5, 5), activation="relu",
input_shape=(28, 28, 1))
)
model.add(MaxPooling2D(pool_size=(3, 3)))
model.add(Conv2D(64, kernel_size=(3, 3), activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256, activation="relu"))
model.add(Dense(10, activation="softmax"))
return model
# END: 5f8d9bcejpp
model = make_model()
x_train, y_train, x_test, y_test = get_data()
print(x_train.shape)
y_train = tf.one_hot(y_train, 10)
y_test = tf.one_hot(y_test, 10)
@@ -67,13 +100,14 @@ model.compile(optimizer="adam", loss="mse", metrics=["accuracy"])
count = 0
while count < 50:
while count < 100:
x_batch, y_batch = dataset.next()
count += 1
print("Training model...")
model.fit(x_batch, y_batch, epochs=1, batch_size=1, verbose=1)
print(count)
print(f"Max index : {dataset.getMaxIndex()}")
print("Evaluating model...")
model.evaluate(x_test, y_test, verbose=2)