当前位置: 代码迷 >> 综合 >> 五步学会tensorflow安装(附笔者安装及跑代码过程中出现的错误及解决方案)
  详细解决方案

五步学会tensorflow安装(附笔者安装及跑代码过程中出现的错误及解决方案)

热度:57   发布时间:2023-09-21 19:50:37.0
## Ubuntu14.04 中安装tensorflow教程 ##
安装准备:下载好三个文件cuda_8.0.27_linux.run、cudnn-8.0-linux-x64-v5.1.10、tensorflow_gpu-1.1.0rc1-cp27-none-linux_x86_64.whl
一、安装cuda
 
1  sudo apt-get update   
然后在软件和更新->附加驱动,选择NVIDIA,当前最新版本是375.39
检查是否启用成功,终端输入nvidia-smi
    
2  sudo sh cuda_8.0.27_linux.run  
这一步在询问是否安装该包提供的NVIDIA驱动时No,其他都选择yes
 
3  环境变量配置,编辑/etc/profile  or  ~/.bashrc  
   export PATH=/usr/local/cuda-8.0/bin:$PATH  
   export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
   (记得source一下)source /etc/profile  或者  source ~/.bashrc
4  sudo ldconfig
 
5  默认会把nvidia的例子解压到主文件夹下面
   终端输入cd NVIDIA_CUDA-8.0_Samples
   make
   此时NVIDIA_CUDA-8.0_Samples目录下多了一个bin文件夹
    
6  测试
   cd NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
   ./deviceQuery
   此时看到./deviceQuery Starting...和一些具体信息,就表示cuda安装成功
    
说明:安装完cuda后,在安装路径下会有一个cuda文件夹,一个cuda-8.0文件夹,可以把cuda文件夹当做是一个备份
 
 
二、cudnn
解压下载的cudnn,然后拷贝文件:
    sudo cp cudnn-8.0-linux-x64-v5.0/cuda/include/cudnn.h /usr/local/cuda-8.0/include
    sudo cp cudnn-8.0-linux-x64-v5.0/cuda/lib64/lib* /usr/local/cuda-8.0/lib64
    符号链接文件重新建立
    sudo ln -sf /usr/local/cuda-8.0/lib64/libcudnn.so.5.1.10 /usr/local/cuda-8.0/lib64/libcudnn.so.5   
    sudo ln -sf /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/cuda-8.0/lib64/libcudnn.so  
    sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*
 
说明:安装完cuda和cudnn后,需要安装与NVIDIA相关联的一个库 :sudo apt-get install libcupti-dev
 
 
三、安装Tensorflow
 
1   安装依赖sudo apt-get install python-pip python-dev
     
      
2   tensorflow1.1版本还需要的依赖要求如下:
     numpy>=1.11.0
     six>=1.10.0
     protobuf>=3.2.0
     werkzeug>=0.11.10
     html5lib==0.9999999
     markdown==2.2.0
     bleach==1.5.0
     wheel>=0.26
     mock>=2.0.2
     scipy>=0.15.1
    把下载的tensorflow_gpu-1.1.0rc1-cp27-none-linux_x86_64.whl文件放在主文件夹下面,然后
     sudo pip install tensorflow_gpu-1.1.0rc1-cp27-none-linux_x86_64.whl
    会联网自动下载上述相关依赖包,网络不好的时候会安装失败,多试几次!或者自己提前手动安装好依赖包
 
 
四、 安装完成测试代码如下,输出Hello, TensorFlow!
 
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
 
 
五  跑代码过程中的错误
1、config.py 修改data_path、output_path
 
修改:
data_path = "/home/zhb/GalaxyGAN_python/images_blur"
output_path = "/home/zhb/GalaxyGAN_python/train_result"
 
2、model.py  
错误提示:
d1 = tf.concat(3, [tf.nn.dropout(batch_norm(d1, "d1"), 0.5), e7])
_AssertCompatible(dtype.name, repr(mismatch), type(mismatch).__name__))
TypeError: Expected int32, got list containing Tensors of type '_Message' instead.
 
修改:
d1 = tf.concat([tf.nn.dropout(batch_norm(d1, "d1"), 0.5), e7],3),将下面几行类似错误继续改过来;
第29行将前面两个参数移到后面去,与上述错误一致。
 
3、model.py
错误提示:
pos_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(pos, tf.ones_like(pos)))
"named arguments (labels=..., logits=..., ...)" % name)
ValueError: Only call `sigmoid_cross_entropy_with_logits` with named arguments (labels=..., logits=..., ...)
 
修改:
pos_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=pos, logits=tf.ones_like(pos)))
 
 
 
4.cudnn5.0不兼容
错误提示:
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5110 (compatibility version 5100).  If using a binary install, upgrade your CuDNN library to match.  If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:665] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
 
修改:安装cudnn5.1覆盖5.0。步骤参照二
 
5.图片拼接:
错误提示:
train.py (line 79)
image = np.concatenate((gen_img, cond), axis=1).astype(np.int)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
 
原因:gen_img, cond这两张图的高度不一致,无法进行拼接。
修改:调用resize函数改变gen_img, cond这两张图中任意一张图片的高度,使其与另外一张图片高度一致。
注:2和3都是由于tensorflow版本的问题,其API被改动。
  相关解决方案