leo861 commited on
Commit
350b2c3
·
verified ·
1 Parent(s): 601fb3d

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +26 -56
app.py CHANGED
@@ -5,6 +5,7 @@ from flask_socketio import SocketIO
5
  import joblib
6
  import torch
7
  import numpy as np
 
8
 
9
  # Configure logging
10
  logging.basicConfig(level=logging.INFO)
@@ -13,69 +14,38 @@ logger = logging.getLogger(__name__)
13
  app = Flask(__name__)
14
  socketio = SocketIO(app, cors_allowed_origins="*")
15
 
16
- # Create necessary directories
17
- def create_directories():
18
- directories = [
19
- 'heart/models',
20
- 'models'
21
- ]
22
- for directory in directories:
23
- try:
24
- os.makedirs(directory, exist_ok=True)
25
- logger.info(f"Created directory: {directory}")
26
- except Exception as e:
27
- logger.warning(f"Failed to create directory {directory}: {str(e)}")
28
-
29
  # Load models
30
  def load_models():
31
  global heart_model, autoencoder
32
  heart_model = None
33
  autoencoder = None
34
 
35
- # Create directories first
36
- create_directories()
37
-
38
- # Define possible model paths
39
- model_paths = [
40
- os.path.join('heart', 'models', 'heart_model.joblib'),
41
- os.path.join(os.path.dirname(__file__), 'heart', 'models', 'heart_model.joblib'),
42
- os.path.join('/app', 'heart', 'models', 'heart_model.joblib')
43
- ]
44
-
45
- # Try loading heart model
46
- for path in model_paths:
47
- try:
48
- logger.info(f"Attempting to load heart model from {path}")
49
- if os.path.exists(path):
50
- heart_model = joblib.load(path)
51
- logger.info("Heart model loaded successfully")
52
- break
53
- else:
54
- logger.warning(f"Model file not found at {path}")
55
- except Exception as e:
56
- logger.warning(f"Failed to load heart model from {path}: {str(e)}")
57
- continue
58
-
59
- # Try loading autoencoder
60
- autoencoder_paths = [
61
- os.path.join('models', 'best_model.pth'),
62
- os.path.join(os.path.dirname(__file__), 'models', 'best_model.pth'),
63
- os.path.join('/app', 'models', 'best_model.pth')
64
- ]
65
 
66
- for path in autoencoder_paths:
67
- try:
68
- logger.info(f"Attempting to load autoencoder from {path}")
69
- if os.path.exists(path):
70
- autoencoder = torch.load(path)
71
- autoencoder.eval()
72
- logger.info("Autoencoder model loaded successfully")
73
- break
74
- else:
75
- logger.warning(f"Model file not found at {path}")
76
- except Exception as e:
77
- logger.warning(f"Failed to load autoencoder from {path}: {str(e)}")
78
- continue
79
 
80
  # Load models on startup
81
  logger.info("Loading trained models...")
 
5
  import joblib
6
  import torch
7
  import numpy as np
8
+ from huggingface_hub import hf_hub_download
9
 
10
  # Configure logging
11
  logging.basicConfig(level=logging.INFO)
 
14
  app = Flask(__name__)
15
  socketio = SocketIO(app, cors_allowed_origins="*")
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  # Load models
18
  def load_models():
19
  global heart_model, autoencoder
20
  heart_model = None
21
  autoencoder = None
22
 
23
+ try:
24
+ # Download and load heart model
25
+ logger.info("Downloading heart model from Hugging Face Hub...")
26
+ heart_model_path = hf_hub_download(
27
+ repo_id="leo861/app",
28
+ filename="heart/models/heart_model.joblib",
29
+ cache_dir="models"
30
+ )
31
+ heart_model = joblib.load(heart_model_path)
32
+ logger.info("Heart model loaded successfully")
33
+ except Exception as e:
34
+ logger.error(f"Failed to load heart model: {str(e)}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
+ try:
37
+ # Download and load autoencoder
38
+ logger.info("Downloading autoencoder from Hugging Face Hub...")
39
+ autoencoder_path = hf_hub_download(
40
+ repo_id="leo861/app",
41
+ filename="models/best_model.pth",
42
+ cache_dir="models"
43
+ )
44
+ autoencoder = torch.load(autoencoder_path)
45
+ autoencoder.eval()
46
+ logger.info("Autoencoder model loaded successfully")
47
+ except Exception as e:
48
+ logger.error(f"Failed to load autoencoder: {str(e)}")
49
 
50
  # Load models on startup
51
  logger.info("Loading trained models...")