| 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') |
|
|