| |
| """ |
| Setup script for Aircraft Classifier Gradio deployment |
| """ |
| import os |
| import sys |
| import subprocess |
| import urllib.request |
| from pathlib import Path |
|
|
| def install_requirements(): |
| """Install required packages""" |
| print("π¦ Installing requirements...") |
| try: |
| subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"]) |
| print("β
Requirements installed successfully") |
| except subprocess.CalledProcessError as e: |
| print(f"β Error installing requirements: {e}") |
| return False |
| return True |
|
|
| def create_models_directory(): |
| """Create models directory if it doesn't exist""" |
| models_dir = Path("models") |
| models_dir.mkdir(exist_ok=True) |
| print(f"π Models directory created: {models_dir}") |
|
|
| def download_sample_model(): |
| """Download or create a placeholder model file""" |
| model_path = Path("models/aircraft_classifier.pth") |
| |
| if not model_path.exists(): |
| print("β οΈ No trained model found.") |
| print("π‘ To use the classifier, you need to:") |
| print(" 1. Run the training notebook: aircraft_classifier.ipynb") |
| print(" 2. Save the trained model to: models/aircraft_classifier.pth") |
| print(" 3. Or the app will use random weights (for demo purposes)") |
|
|
| def check_system(): |
| """Check system requirements""" |
| print("π Checking system requirements...") |
| |
| |
| if sys.version_info < (3, 8): |
| print("β Python 3.8+ is required") |
| return False |
| |
| print(f"β
Python {sys.version.split()[0]}") |
| |
| |
| try: |
| import torch |
| if torch.cuda.is_available(): |
| print(f"β
CUDA available: {torch.cuda.get_device_name(0)}") |
| else: |
| print("β οΈ CUDA not available, using CPU") |
| except ImportError: |
| print("β οΈ PyTorch not installed yet") |
| |
| return True |
|
|
| def main(): |
| """Main setup function""" |
| print("π©οΈ Aircraft Classifier - Setup Script") |
| print("=" * 50) |
| |
| |
| if not check_system(): |
| sys.exit(1) |
| |
| |
| if not install_requirements(): |
| sys.exit(1) |
| |
| |
| create_models_directory() |
| |
| |
| download_sample_model() |
| |
| print("\nπ Setup complete!") |
| print("\nπ To start the Gradio interface:") |
| print(" python app.py") |
| print("\nπ To train the model:") |
| print(" jupyter notebook aircraft_classifier.ipynb") |
|
|
| if __name__ == "__main__": |
| main() |