安装TensorFlow GPU遇异常:__cuda版本不符及YAML解析错误
解决TensorFlow GPU安装中的conda虚拟包版本不符与YAML解析错误
我来帮你搞定这两个头疼的问题,逐个分析解决:
1. 虚拟包__cuda=11.0与实际CUDA 10.0不符的问题
这个情况其实很常见:conda的虚拟包__cuda是根据你的NVIDIA驱动支持的最高CUDA版本检测的,而非你手动安装的CUDA Toolkit版本。你的GTX 970搭配的Game Ready驱动大概率支持到CUDA 11.x,所以conda会显示__cuda=11.0,但这不会影响你使用CUDA 10.0——只要在环境里明确指定对应版本的CUDA和cuDNN即可。
2. Conda创建环境时的AttributeError: 'str' object has no attribute 'copy'错误
这个报错的核心是你的tensorflow-gpu.yml文件格式有问题,导致conda解析失败:
- 你重复写了
- pip项,且没有把pip专属的包(比如bayesian-optimization、gym)正确嵌套在pip:下面,conda把这些包当成普通字符串处理,触发了拷贝操作的错误。 - 最后一行
- kaggle的内容是未完成的输入,属于语法错误。
修复后的YAML文件示例
把你的yaml文件改成下面的格式,注意缩进和pip依赖的写法:
name: tensorflow dependencies: - python=3.7 - pip=19.0 - jupyter - tensorflow-gpu=2.0 - cudatoolkit=10.0 # 明确指定与你安装的Toolkit匹配的CUDA版本 - cudnn=7.4.1 # 对应CUDA 10.0的cuDNN版本 - scikit-learn - scipy - pandas - pandas-datareader - matplotlib - pillow - tqdm - requests - h5py - pyyaml - flask - boto3 - pip: - bayesian-optimization - gym - kaggle
后续操作步骤
- 保存修复后的yaml文件。
- 如果之前创建环境失败有残留,先清理:
conda env remove -n tensorflow。 - 重新执行创建命令:
conda env create -v -f tensorflow-gpu.yml。
这样既能通过明确指定CUDA版本解决虚拟包显示不符的问题,也能修复yaml解析错误,顺利创建TensorFlow GPU环境。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

