Spaces:
Sleeping
Sleeping
| import tensorflow as tf | |
| from pathlib import Path | |
| from kidney_classification.entity.config_entity import PrepareBaseModelConfig | |
| from tensorflow.keras.models import Sequential | |
| from tensorflow.keras.layers import Dense, Flatten, BatchNormalization, Dropout | |
| class PrepareBaseModel: | |
| def prepare_full_model(): | |
| VGG_model = Sequential() | |
| pretrained_model = tf.keras.applications.VGG16( | |
| include_top=False, | |
| input_shape=(150, 150, 3), | |
| pooling="max", | |
| classes=4, | |
| weights="imagenet", | |
| ) | |
| VGG_model.add(pretrained_model) | |
| VGG_model.add(Flatten()) | |
| VGG_model.add(Dense(512, activation="relu")) | |
| VGG_model.add(BatchNormalization()) | |
| VGG_model.add(Dropout(0.5)) | |
| VGG_model.add(Dense(4, activation="softmax")) | |
| pretrained_model.trainable = False | |
| VGG_model.compile( | |
| optimizer="adam", | |
| loss="sparse_categorical_crossentropy", | |
| metrics=["accuracy"], | |
| ) | |
| return VGG_model | |
| def update_base_model(self, config: PrepareBaseModelConfig): | |
| full_model = self.prepare_full_model() | |
| full_model.summary() | |
| full_model.save(config.updated_base_model_path) | |
| def save_model(path: Path, model: tf.keras.Model): | |
| model.save(path) | |