使用 TensorFlow 2.0 -gpu (包括问题录)

Table of Contents

 简介

遇到的问题录

配置GPU资源使用

加载keras.datasets.imdb.load_data()时报错


 

  •  简介

  • TensorFlow是目前深度学习的框架,与Keras、Pytorch合称为深度学习三大框架。
  • 是一个开放源代码软件库,用于进行高性能数值计算。
  • 数据流图  Data Flow Graph  数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
  • MNIST   是一个入门级的计算机视觉数据集,它包含各种手写数字图片,也包含每一张图片对应的标签。
  • Softmax Regression   一个简单的数学模型
  • VirtualEnv   用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响。虚拟环境是在Python解释器上的一个私有复制,你可以在一个隔绝的环境下安装packages,不会影响到你系统中全局的Python解释器。虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题。为每个应用程序创建一个虚拟环境可以确保应用程序只能访问它们自己使用的包,从而全局解释器只作为一个源且依然整洁干净去更多的虚拟环境。另一个好处是,虚拟环境不需要管理员权限。
  • 给python3安装pip
  • 遇到的问题录

  1. 在Jupyter notebook中编写的代码,训练卷积网络时,遇到如下问题

    1. 浏览器端报错为

      UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]
      
    2.  终端报错为(cc:338)

      E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
      E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
    3. 【环境配置】操作系统Ubuntu 18.04.2 LTS;显卡2080驱动430.14;Python版本python 3.6.7;cuda 10.0 + cudnn 7.6.0 + tf-gpu 2.0

    4. 原因推测:

      1. 可能是显卡内存不足

      2. 也可能是因为RTX显卡不兼容它出生前的接口有关。

    5. 问题解决:

      1. 卸载原来安装的 cudnn7.6.0 (安装是 deb 格式的)

      2. 重新安装  cudnn7.6.0 (安装的是 tar 格式的文件)

      3. 重新设置了 ~/.bashrc 文件中的环境变量配置

        
        export LD_LIBRARY_PATH=<解压tar文件生成cuda文件的路径>/cuda/lib64:$LD_LIBRARY_PATH
        1. (增加了cudnn7.6.0 解压后 /cuda/lib64 的路径)

      4. 在代码中添加了:(参考: https://blog.csdn.net/pkuyjxu/article/details/89402298)

        from tensorflow.compat.v1 import ConfigProto
        
        from tensorflow.compat.v1 import InteractiveSession
        
        
        config = ConfigProto()
        
        config.gpu_options.allow_growth = True
        
        session = InteractiveSession(config=config)
        1. 更多可参考:https://github.com/tensorflow/tensorflow/issues/24496#

  2. 配置GPU资源使用

    1. https://blog.csdn.net/dcrmg/article/details/79091941

  3. 加载keras.datasets.imdb.load_data()时报错

    1. 原因分析: 可能是 numpy的版本不匹配,重新安装numpy的版本 $ pip install numpy==1.16.2

    2. 检测 numpy 的版本信息 $ import numpy as np       $ print(np.__version__)

  4.  

  5.  

  6.  

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章