Spaces:
Runtime error
Runtime error
| import argparse | |
| import sys | |
| from pathlib import Path | |
| import numpy as np | |
| import tensorflow as tf | |
| from PIL import Image | |
| root = Path(__file__).resolve().parents[1] | |
| sys.path.append(str(root)) | |
| from src.models import get_model | |
| def load_image(image_path, target_size=(224, 224)): | |
| image = Image.open(image_path).convert('RGB') | |
| image = image.resize(target_size) | |
| image_array = np.asarray(image, dtype=np.float32) | |
| return image_array | |
| def parse_args(): | |
| parser = argparse.ArgumentParser(description='Run prediction on a single MRI image') | |
| parser.add_argument('--model', choices=['cnn', 'transfer', 'vit'], default='cnn') | |
| parser.add_argument('--weights', required=True) | |
| parser.add_argument('--image', required=True) | |
| return parser.parse_args() | |
| def main(): | |
| args = parse_args() | |
| model = get_model(args.model, transfer_weights=None) | |
| model.load_weights(args.weights) | |
| image = load_image(args.image) | |
| prediction = model.predict(np.expand_dims(image, axis=0), verbose=0)[0][0] | |
| class_label = 'tumor' if prediction >= 0.5 else 'no_tumor' | |
| print(f'Image: {args.image}') | |
| print(f'Probability tumor: {prediction:.4f}') | |
| print(f'Predicted class: {class_label}') | |
| if __name__ == '__main__': | |
| main() | |