Untitled

From Tacky Madrill, 3 Months ago, written in Plain Text, viewed 52 times.
URL http://codebin.org/view/17fc8aa2 Embed
Download Paste or View Raw
  1. import pandas as pd
  2. from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
  3. from tensorflow.keras.models import Sequential
  4. from tensorflow.keras.optimizers import Adam
  5. from tensorflow.keras.preprocessing.image import ImageDataGenerator
  6. from tensorflow.keras.applications.resnet import ResNet50
  7.  
  8.  
  9.  
  10.  
  11.  
  12. def load_train(path):
  13.     dataframe = pd.read_csv(path + '/labels.csv')
  14.     train_datagen = ImageDataGenerator(validation_split=0.25,
  15.                                        rescale=1. / 255)
  16.  
  17.     train_datagen_flow = train_datagen.flow_from_dataframe(
  18.         dataframe,
  19.         directory=path + '/final_files',
  20.         x_col='file_name',
  21.         y_col='real_age',
  22.         target_size=(150, 150),
  23.         batch_size=16,
  24.         class_mode='raw',
  25.         subset='training',
  26.         seed=12345)
  27.  
  28.     return train_datagen_flow
  29.  
  30. def load_test(path):
  31.     dataframe = pd.read_csv(path + '/labels.csv')
  32.     train_datagen = ImageDataGenerator(validation_split=0.25,
  33.                                        rescale=1. / 255)
  34.  
  35.     test_datagen_flow = test_datagen.flow_from_dataframe(
  36.         dataframe,
  37.         directory=path + '/final_files',
  38.         x_col='file_name',
  39.         y_col='real_age',
  40.         target_size=(150, 150),
  41.         batch_size=16,
  42.         class_mode='raw',
  43.         subset='validation',
  44.         seed=12345)
  45.  
  46.     return test_datagen_flow
  47.  
  48. def create_model(input_shape):
  49.     backbone = ResNet50(input_shape=input_shape,
  50.                     weights='imagenet',
  51.                     include_top=False)
  52.     model = Sequential()
  53.     model.add(backbone)
  54.     model.add(GlobalAveragePooling2D())
  55.     model.add(Dense(1, activation='relu'))
  56.  
  57.     optimizer = Adam(lr=0.00001)
  58.     model.compile(optimizer=optimizer, loss='mse', metrics=['mae'])
  59.     return model
  60.  
  61.  
  62. def train_model(model, train_data, test_data, batch_size=None, epochs=20, steps_per_epoch=None, validation_steps=None):
  63.     test_gen_flow = test_data
  64.     if steps_per_epoch is None:
  65.         steps_per_epoch = len(train_data)
  66.     if validation_steps is None:
  67.         validation_steps = len(test_gen_flow)
  68.     model.fit(train_data,
  69.               validation_data=test_data,
  70.               batch_size=batch_size, epochs=epochs,
  71.               steps_per_epoch=steps_per_epoch,
  72.               validation_steps=validation_steps,
  73.               verbose=2, shuffle=True)
  74.  
  75.     return model

Reply to "Untitled"

Here you can reply to the paste above