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) | |