Advertisement
gagarin_1982

Untitled

Jan 22nd, 2025
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. import numpy as np
  2. from keras.layers import Dense, GlobalAveragePooling2D
  3. from keras.models import Sequential
  4. from keras.optimizers import SGD
  5. from tensorflow.keras.preprocessing.image import ImageDataGenerator
  6. from tensorflow.keras.applications import ResNet50
  7.  
  8. def load_train(path):
  9. datagen = ImageDataGenerator(rescale=1/255)
  10.  
  11. train_datagen_flow = datagen.flow_from_directory(
  12. path,
  13. target_size=(150, 150),
  14. class_mode='sparse',
  15.  
  16. seed=12345)
  17.  
  18. return train_datagen_flow
  19.  
  20. def create_model(input_shape):
  21. backbone = ResNet50(input_shape=(150, 150, 3), weights='/datasets/keras_models/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5', include_top=False)
  22.  
  23.  
  24.  
  25. model = Sequential()
  26. model.add(backbone)
  27. model.add(GlobalAveragePooling2D())
  28. model.add(Dense(12, activation='softmax'))
  29.  
  30. model.compile(optimizer=adam(learning_rate=0.1),
  31. loss='sparse_categorical_crossentropy',
  32. metrics=['acc'])
  33.  
  34. return model
  35.  
  36. def train_model(model, train_datagen_flow, test_data, batch_size=None, epochs=10, steps_per_epoch=None, validation_steps=None):
  37. model.fit(train_datagen_flow,
  38. validation_data=test_data,
  39. batch_size=batch_size, epochs=epochs,
  40. steps_per_epoch=steps_per_epoch,
  41. validation_steps=validation_steps,
  42. verbose=2)
  43.  
  44. return model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement