| import traceback | |
| from pathlib import Path | |
| log_path = Path('inference_log.txt') | |
| with log_path.open('w', encoding='utf-8') as f: | |
| def log(*args, **kwargs): | |
| print(*args, file=f, **kwargs) | |
| f.flush() | |
| try: | |
| log('Starting inference log') | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image | |
| model_path = 'saved_model_age_regressor' | |
| img_path = Path('data/UTKFace/53_1_1_20170110122449716.jpg.chip.jpg') | |
| log('Model path:', model_path) | |
| log('Image path:', str(img_path)) | |
| log('Attempting to load model with compile=False...') | |
| m = tf.keras.models.load_model(model_path, compile=False) | |
| log('Loaded model type:', type(m)) | |
| try: | |
| m.summary(print_fn=lambda *a, **k: log(*a, **k)) | |
| except Exception as e: | |
| log('model.summary failed:', e) | |
| img = Image.open(img_path).convert('RGB').resize((224,224)) | |
| arr = np.array(img, dtype=np.float32)/255.0 | |
| x = np.expand_dims(arr, 0) | |
| log('Input shape:', x.shape) | |
| log('Running predict...') | |
| pred = m.predict(x) | |
| log('Raw prediction output:', pred, 'shape:', getattr(pred, 'shape', None)) | |
| try: | |
| log('Predicted age:', float(pred.flatten()[0])) | |
| except Exception as e: | |
| log('Error converting prediction to float:', e) | |
| log('Inference finished successfully') | |
| except Exception: | |
| traceback.print_exc(file=f) | |
| log('Inference script caught exception') | |