Skip to content
Snippets Groups Projects
Select Git revision
  • 57fe28e33c434f3975707d21f0db19d90db57f81
  • master default
2 results

house_prices_estimation_example_data.py

Blame
  • house_prices_estimation_example_data.py 1.83 KiB
    # -*- coding: utf-8 -*-
    import set_python_path
    from tensorflow_core.python.keras.engine.input_layer import Input
    from tensorflow_core.python.keras.layers.core import Dense, Dropout
    from tensorflow_core.python.keras.models import Sequential, Model
    from tensorflow_core.python.keras.optimizer_v2.adam import Adam
    
    try:
        from datasets import load_house_dataset_data
        from train_and_evaluation import evaluate_regression_model, train_model
    except:
        from pilula_deep_learning.datasets import load_house_dataset_data
        from pilula_deep_learning.train_and_evaluation import evaluate_regression_model, train_model
    import matplotlib.pyplot as plt
    
    __author__ = 106360
    
    def generate_simple_regression_model(input_shape,weights='',remove_head=False):
        # define the model input
        inputs = Input(shape=(input_shape))
        # loop over the number of filters
    
        x = Dense(16, input_dim=input_shape, activation="relu", name='layer1')(inputs)
        x = Dense(6, activation="relu",name='layer2')(x)
    
        if not remove_head:
            x= Dense(1, activation="sigmoid",name='layer3')(x)
    
        model = Model(inputs,x)
        if weights!='':
            model.load_weights(weights,by_name=True)
    
    
        return model
    
    
    if __name__ == "__main__":
        (trainX,trainX_img, trainY, testX,testX_img,testY), normalizer = load_house_dataset_data(test_size=0.2,random_state=666)
        input_shape = trainX.shape[1]
        model = generate_simple_regression_model(input_shape)
    
        opt = Adam(lr=1e-3, decay=1e-3 / 200)
        model.compile(loss='mean_squared_error',metrics=['mean_absolute_percentage_error','mean_absolute_error','mean_squared_error'], optimizer=opt)
        model.summary()
    
        model = train_model(trainX, trainY, testX, testY,model,show_plot=True,epochs=500,batch_size=32)
        evaluate_regression_model(model,testX,testY,normalizer,show_plot=True)
        model.save('regression_model_data.h5')