CoolFace
Apppublic

Osele1/sonic-clusters

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
export_models.py108 linesDownload Raw Back to root
1"""2Copy trained models from Phase 3 notebook to FastAPI backend.3This script copies the pickle files saved by Phase3_Modelling_and_Testing.ipynb4"""5 6import shutil7from pathlib import Path8import pandas as pd9import numpy as np10import json11 12print("๐ŸŽต Copying trained models from Phase 3 for FastAPI backend...")13print("="*60)14 15# Paths16phase3_models_dir = Path('../Project Phase 3/models')17backend_models_dir = Path('backend/models')18backend_data_dir = Path('backend/data')19 20# Check if models exist21if not phase3_models_dir.exists():22    print(f"โŒ Error: Models directory not found at {phase3_models_dir}")23    print("   Please run Phase3_Modelling_and_Testing.ipynb first to train and save the models.")24    exit(1)25 26# Create backend directories27backend_models_dir.mkdir(parents=True, exist_ok=True)28backend_data_dir.mkdir(parents=True, exist_ok=True)29 30print("\n๐Ÿ“ฆ Copying model files...")31 32# Copy model files33model_files = [34    'preprocessor.pkl',35    'kmeans_model.pkl',36    'hierarchical_model.pkl',37    'dbscan_model.pkl',38    'pca_transformer.pkl'39]40 41for filename in model_files:42    src = phase3_models_dir / filename43    dst = backend_models_dir / filename44    if src.exists():45        shutil.copy2(src, dst)46        print(f"โœ“ Copied: {filename}")47    else:48        print(f"โš ๏ธ  Warning: {filename} not found in {phase3_models_dir}")49 50# Copy data files51data_files = [52    'feature_matrix.npy',53    'kmeans_centroids.npy'54]55 56print("\n๐Ÿ“Š Copying data files...")57for filename in data_files:58    src = phase3_models_dir / filename59    dst = backend_data_dir / filename60    if src.exists():61        shutil.copy2(src, dst)62        print(f"โœ“ Copied: {filename}")63    else:64        print(f"โš ๏ธ  Warning: {filename} not found in {phase3_models_dir}")65 66# Copy metadata files67metadata_files = [68    'metadata.json',69    'feature_info.json'70]71 72print("\n๐Ÿ“ Copying metadata files...")73for filename in metadata_files:74    src = phase3_models_dir / filename75    dst = backend_data_dir / filename76    if src.exists():77        shutil.copy2(src, dst)78        print(f"โœ“ Copied: {filename}")79    else:80        print(f"โš ๏ธ  Warning: {filename} not found in {phase3_models_dir}")81 82# Copy or create dataset with cluster assignments83print("\n๐Ÿ’พ Checking dataset with cluster assignments...")84cluster_csv = Path('../Project Phase 3/phase3_cluster_assignments.csv')85if cluster_csv.exists():86    # Copy the CSV file87    dst_csv = backend_data_dir / 'songs_with_clusters.csv'88    shutil.copy2(cluster_csv, dst_csv)89    print(f"โœ“ Copied: songs_with_clusters.csv ({len(pd.read_csv(dst_csv)):,} songs)")90else:91    print(f"โš ๏ธ  Warning: {cluster_csv} not found")92 93print("\n" + "="*60)94print("โœ… Model export complete!")95print("="*60)96print("\nExported files:")97print("  ๐Ÿ“ฆ backend/models/preprocessor.pkl")98print("  ๐Ÿ“ฆ backend/models/kmeans_model.pkl")99print("  ๐Ÿ“ฆ backend/models/hierarchical_model.pkl")100print("  ๐Ÿ“ฆ backend/models/dbscan_model.pkl")101print("  ๐Ÿ“ฆ backend/models/pca_transformer.pkl")102print("  ๐Ÿ“Š backend/data/feature_matrix.npy")103print("  ๐Ÿ“Š backend/data/kmeans_centroids.npy")104print("  ๐Ÿ“Š backend/data/songs_with_clusters.csv")105print("  ๐Ÿ“ backend/data/metadata.json")106print("  ๐Ÿ“ backend/data/feature_info.json")107print("\nNext step: Start the backend server with 'python -m backend.main'")108