Hello,
I’m trying to train a silly regression model to predict people’s ages using photos. I know that’s not the best approach, but that’s not the point. The point is, even though the entire image dataset is just 185 MBs, it doesn’t fit into the GPU’s memory on Colab. I’m loading the dataset in the wrong way. Here is the code:
my_list = os.listdir('UTKFace')
len(my_list) #23708
random.shuffle(my_list)
ages = []
for i in range(10000):
s = my_list[i]
s = s.split('_')[0]
ages.append(s)
ages_np = np.array(ages)
ages_np = ages_np.astype(np.float16)
faces = []
for i in range(10000):
image = cv2.imread("UTKFace/" + my_list[i])
image = cv2.resize(image, (200, 200))
faces.append(image)
faces_np = np.array(faces)
del faces
faces_np = faces_np / 255.0
faces_np = faces_np.astype(np.float16)
inputs= Input(shape=(200,200,3))
x = Conv2D(8, kernel_size=(3, 3), activation='relu',padding='SAME')(inputs)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Conv2D(4, kernel_size=(3, 3), activation='relu',padding='SAME')(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Flatten()(x)
x = Dense(units=4, activation='relu')(x)
output = Dense(units=1)(x)
model= Model(inputs=inputs, outputs=output)
model.compile(
optimizer='rmsprop',
loss='mse',
metrics=['mae'])
history = model.fit(faces_np, ages_np, batch_size=4, epochs=1000, validation_split=0.1)
What’s wrong with my approach? Thank you so much!