M1芯片Mac运行含Tensorflow的Python应用时出现非法硬件指令错误
解决方案
检查Tensorflow安装是否为M1原生适配版本
pip默认安装的Tensorflow可能未针对Apple Silicon优化,建议通过conda-forge安装适配版本:- 卸载现有Tensorflow:
pip uninstall tensorflow -y - 安装原生ARM版本的Miniforge3(若未安装)
- 创建独立环境:
conda create -n tf_env python=3.9 - 激活环境:
conda activate tf_env - 安装适配Tensorflow:
conda install -c conda-forge tensorflow
- 卸载现有Tensorflow:
验证并启用Metal加速支持
运行以下代码确认GPU设备是否被识别:import tensorflow as tf print(tf.config.list_physical_devices('GPU'))若未输出Metal相关设备,手动启用:
visible_devices = tf.config.list_physical_devices('Metal') tf.config.set_visible_devices(visible_devices[0], 'GPU')排查.h5模型的架构兼容性
旧版x86架构训练的.h5模型可能引发指令集冲突:- 将.h5模型转换为SavedModel格式:
from tensorflow.keras.models import load_model model = load_model('your_model.h5') model.save('saved_model_dir') - 加载转换后的模型:
model = tf.keras.models.load_model('saved_model_dir')
- 将.h5模型转换为SavedModel格式:
确认Python环境的ARM原生性
执行命令验证:python -c "import platform; print(platform.machine())",输出需为arm64。若显示x86_64,说明使用了Rosetta转译,需卸载后重新安装原生ARM版本的Python。尝试降级Tensorflow版本
部分新版本在M1上存在兼容性bug,可降级至2.11.x版本:pip uninstall tensorflow -y pip install tensorflow==2.11.0
内容的提问来源于stack exchange,提问作者ILE2091
相关产品推荐
相关产品推荐

