1.起因

  • 测试深度学习的项目,方向的论文代码是tensorflow1、python3,cuda主要用的是cuda10
  • 我的机器显卡是3060的(Y9000P);然后租的机器是3090的,借的机器是A100的,显卡太新,跑不了研究方向的很多项目(很长一段时间我都在抑郁,我的显卡不赖呀,竟然跑不起来代码,都想换课题了)

2.尝试

(1)在3060的机器上安装cuda 10(拿到机器后的本能反应)

  • 查看电脑显卡:
  • 查看显卡驱动是否正常,(cmd后输入):nvidia-smi
  • 如果不正常,装驱动
  • 正常,查看cuda版本:nvcc -V
  • 如果cuda版本符合项目需求,ok;
  • 如果cuda版本不符合项目需求,查自己的显卡支持的cuda版本有哪些,非常重要,查看自己的3060, 3090是否支持cuda10, 不然装cuda10白忙)
    答:RTX3060支持的cuda版本最低是11.1,不支持cuda10.0
  • 找一个能支持项目cuda版本的机器
  • 再次nvidia-smi看驱动,是否装驱动
  • nvcc -V看cuda版本
  • 如果cuda版本符合项目需求,皆大欢喜
  • 如果cuda版本不符合项目需求,卸载现有的cuda
  • 重新装cuda,参考链接:https://blog.csdn.net/sinat_36721621/article/details/115326307
    选择版本:https://developer.nvidia.com/cuda-toolkit-archive
  • 开始conda搭建自己的环境

(2)tensorflow1的项目使用tensorflow2环境跑

(可以,但是需要改,会报以下几种错误,一般import tensorflow.compat.v1 as tf代替 import tensorflow as tf 可解决);

  • tf.placeholder() is not compatible with eager execution.
    (解决办法:在程序的开始加:tf.compat.v1.disable_eager_execution())
  • module ‘tensorflow’ has no attribute ‘…’ (解决办法:import
    tensorflow.compat.v1 as tf代替 import tensorflow as tf )
  • TypeError: batch_to_space_v2() got an unexpected keyword argument
    ‘block_size’ (解决办法:import tensorflow.compat.v1 as tf代替 import
    tensorflow as tf )
  • Not creating XLA devices, tf_xla_enable_xla_devices not set (可暂时性的忽视)

(3)换项目,读代码,读项目中的issues

(非常有用,对环境搭不起来有启发性作用,能避免踩别人踩过的坑。)

(4)开始认真看报错:

  • libcudart.so.8.0: cannot open shared object file: No such file or
    directory (说明我的cuda版本不合适,项目要cuda8, 我的却是cuda11.7; 或在tensorflow的版本不合适)
  • errors_impl.NotFoundError: libcudart.so.8.0 (同上)
    (5)租老的机器或者服务器一键换镜像

感觉原作者写得简直就是我的内心写照,什么时候才能解决完这各种各样的问题呀
参考链接:参考的博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐