M1芯片Mac下R环境无法初始化keras/tensorflow/torch的问题咨询
M1芯片Mac R环境Python依赖架构不匹配问题修复方案
核心问题根因为R关联的虚拟Python环境中存在x86_64架构依赖,与arm64版R、本地arm64 Python架构冲突,导致dylib库加载失败。
修复步骤
1. 清理旧的残留配置
- 打开R终端运行以下命令,清除已安装的冲突包和旧虚拟环境:
# 移除旧的深度学习相关包 remove.packages(c("tensorflow", "keras", "torch", "reticulate")) # 删除R自动创建的旧miniconda环境,清除所有架构不匹配的依赖 if (dir.exists(reticulate::miniconda_path())) unlink(reticulate::miniconda_path(), recursive = TRUE)
- 完全退出R/RStudio,终端运行
killall RStudio确保所有相关进程关闭。
2. 验证R运行架构
右键应用程序文件夹中的RStudio图标,选择「显示简介」,确认未勾选「使用Rosetta打开」,之后重启RStudio。
3. 重新安装适配arm64的核心依赖包
- 先安装最新版reticulate包,用于R和Python的交互:
install.packages("reticulate", type = "binary")
- 运行以下命令验证关联Python的架构,输出必须为
arm64:
system(paste(reticulate::py_config()$python, "-c \"import platform; print(platform.machine())\""))
若输出为
x86_64,需重复步骤2的操作,确认RStudio未使用Rosetta转译运行。
4. 安装适配M1的tensorflow/keras
install.packages(c("tensorflow", "keras"), type = "binary") # 安装M1专属的metal优化版tensorflow tensorflow::install_tensorflow(version = "metal", conda = "auto") keras::install_keras(conda = "auto")
- 功能验证:
library(tensorflow) tf$constant("Hello") # 正常输出tf.Tensor(b'Hello', shape=(), dtype=string)即为配置成功 library(keras) model <- keras_model_sequential() # 无报错即为keras配置正常
5. 安装适配M1的torch包
install.packages("torch", type = "binary") # 功能验证 library(torch) torch_tensor(1) # 无架构报错即为安装成功
注意事项
- 不要手动修改R自动创建的
r-reticulate虚拟环境内的依赖版本,避免再次出现架构混合问题 - 所有R包安装时优先指定
type = "binary",避免源码编译时拉取x86架构的依赖库
内容的提问来源于stack exchange,提问作者vinceW
相关产品推荐
相关产品推荐

