0% found this document useful (0 votes)
6 views4 pages

Flask Deep Learning Price Predictor

This document outlines a Flask application that uses a deep learning model for predicting selling prices based on user input. It includes the definition of a neural network model, functions for loading encoders and the model, preprocessing data, and handling user input through a web interface. The application also integrates ngrok for exposing the local server to the internet.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views4 pages

Flask Deep Learning Price Predictor

This document outlines a Flask application that uses a deep learning model for predicting selling prices based on user input. It includes the definition of a neural network model, functions for loading encoders and the model, preprocessing data, and handling user input through a web interface. The application also integrates ngrok for exposing the local server to the internet.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

from flask import Flask, render_template, request

from pyngrok import ngrok

import pandas as pd

import joblib

import torch

from [Link] import DataLoader, TensorDataset

import numpy as np

import [Link] as nn

# Définition du modèle

class DeepRegressor([Link]):

def _init_(self, input_size):

super(DeepRegressor, self)._init_()

self.fc1 = [Link](input_size, 64)

self.fc2 = [Link](64, 64)

self.fc3 = [Link](64, 1)

def forward(self, x):

x = [Link](self.fc1(x))

x = [Link](self.fc2(x))

x = self.fc3(x)

return x

# Charger les label encoders et le modèle

def load_label_encoders(file_path):

# Charger les label encoders à partir du fichier

label_encoders = [Link](file_path)

return label_encoders

def load_model(file_path):

# Charger le modèle entier à partir du fichier


model = [Link](file_path, map_location=[Link]('cpu'))

return model

def preprocess_data(data, label_encoders):

# Créer une copie des données

processed_data = [Link]()

# Encoder les données catégoriques

for column, label_encoder in label_encoders.items():

if column in processed_data.columns:

# Vérifier les valeurs inconnues

unknown_labels = set(processed_data[column]) - set(label_encoder.classes_)

if unknown_labels:

raise ValueError(f"Unknown labels found in column '{column}': {unknown_labels}")

processed_data[column] = label_encoder.transform(processed_data[column])

return processed_data

def predict_selling_price(data, label_encoders, model):

# Prétraiter les données

processed_data = preprocess_data(data, label_encoders)

# Convertir les données en tenseurs PyTorch

X_test = [Link](processed_data.[Link](np.float32))

# Passer les données au modèle pour prédiction

with torch.no_grad():

[Link]()

predictions = model(X_test).numpy()

return predictions
def get_input_from_user(columns, label_encoders):

# Créer un dictionnaire pour stocker les données saisies par l'utilisateur

input_data = {}

# Demander à l'utilisateur de saisir les données pour chaque colonne

for column in columns:

if column in label_encoders:

label_encoder = label_encoders[column]

options = list(label_encoder.classes_)

input_data[column] = render_template('[Link]', options=options, column=column)

else:

input_data[column] = render_template('[Link]', column=column)

return input_data

# Créer une instance de l'application Flask

app = Flask(_name_)

# Charger les label encoders et le modèle

label_encoders = load_label_encoders('label_encoders.pkl')

model = load_model('modele_regresseur.pth')

# Définir une route pour afficher le formulaire

@[Link]('/', methods=['GET', 'POST'])

def index():

if [Link] == 'GET':

columns = pd.read_csv('dataset_encoded.csv').drop('sellingprice', axis=1).columns

input_fields = get_input_from_user(columns, label_encoders)

return render_template('[Link]', input_fields=input_fields)

elif [Link] == 'POST':


try:

data = {}

for key, value in [Link]():

data[key] = [value]

test_data = [Link](data)

return f"Predicted price : {predictions[0][0]} €"

except Exception as e:

return str(e)

# Démarrer l'application Flask

if _name_ == '_main_':

# Ouvrir un tunnel ngrok sur le port 5000

public_url = [Link](5000)

print(" * ngrok tunnel \"{}\" -> \"[Link]

# Exécuter l'application Flask sur le port 5000

[Link](port=5000)

You might also like