R Markdown运行TensorFlow代码报错,寻求解决方案
解决R Markdown编织TensorFlow/Keras模型时的执行终止问题
问题分析
你遇到的cudart64_110.dll找不到的警告本身可以忽略(如果你的机器没有GPU),但编织时执行终止的核心原因通常是R Markdown的运行环境与R脚本不一致,或是TensorFlow默认尝试GPU资源导致的冲突。以下是具体解决步骤:
强制TensorFlow使用CPU模式
在R Markdown的代码块开头添加环境变量设置,避免TensorFlow尝试加载GPU相关库:# 加载前先强制CPU模式 Sys.setenv(TENSORFLOW_CPU_ONLY = "1") library(tensorflow) library(keras) # 可选:明确禁用GPU可见性 tf$config$set_visible_devices(list(), 'GPU')对齐R脚本与R Markdown的运行环境
在R脚本和R Markdown中分别运行sessionInfo(),对比两者的R版本、tensorflow/keras版本、依赖库路径是否一致。如果R Markdown使用了不同的环境,需要切换到与脚本相同的环境:- 若使用
renv,确保R Markdown激活了对应的项目环境; - 手动指定库路径:
.libPaths("你的R脚本使用的库路径")。
- 若使用
重新安装适配的TensorFlow版本
如果不需要GPU支持,直接安装CPU版TensorFlow:install_tensorflow(method = "conda", version = "cpu")若需要GPU,确保CUDA(对应cudart64_110.dll需要CUDA 11.0)和cuDNN版本与TensorFlow版本匹配,再重新安装GPU版。
统一工作目录
R Markdown编织时默认工作目录是文件所在路径,而R脚本可能使用其他目录,导致数据/模型路径错误。可以在R Markdown开头设置工作目录:setwd(dirname(rstudioapi::getSourceEditorContext()$path))或使用
here包管理路径,避免相对路径混乱。
内容的提问来源于stack exchange,提问作者Pete S
相关产品推荐
相关产品推荐

