centos安装tensorflow

安装tensorflow的过程中遇到了很多大大小小的问题,下面总结一些自己的安装流程,也算是对自己在这方面的一个总结。

centos安装常用插件

yum -y install zip unzip vim git lrzsz wget gcc gcc-c++ python-devel java

安装jdk8

  • 使用java -version,如果你之前已经安装了JAVA1.6或1.7的版本,请执行下列命令,将它们卸载。
    • yum remove java
  • 下载jdk相对应的版本
  • 通过rpm -ivh name.rpm进行安装

python安装pip

安装bazel

  • 下载bazel源码

  • 方式一(推荐):
    (1)直接下载bazel的对应的版本,这里对应的版本为0.4.5,详情参考
    (2)cd bazel
    (3)./compile.sh
    (4)将执行路径/root/bazel-0.4.5-dist/output/ 添加到 $PATH 环境变量中

    • export BAZELHOME=/root/bazel-0.4.5-dist/output(这个路径安装完之后会有提示)
    • export PATH=$PATH:$BAZELHOME
  • 方式二:
    (1)git clone https://github.com/bazelbuild/bazel.git
    (2)cd bazel
    (3)git checkout tags/0.1.0
    (4)./compile.sh
    (5)将执行路径/root/bazel-0.4.5-dist/output/ 添加到 $PATH 环境变量中

    • export BAZELHOME=/root/bazel-0.4.5-dist/output
    • export PATH=$PATH:$BAZELHOME
  • 按esc再按shift+:输入wq写入,然后source /etc/profile生效

  • bazel -h 查看bazel信息

  • 安装遇到的问题

  • Cannot find gcc, either correct your path or set the CC environment variable.(通过yum install gcc进行安装)

  • ERROR: /root/Configuration/bazel-0.4.5-dist/src/main/tools/BUILD:3:1: undeclared inclusion(s) in rule '//src/main/tools:process-wrapper'(通过pip install process-wrapper安装)

  • which: no git in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin(通过yum install git安 装)

  • gcc: error trying to exec 'cc1plus': execvp: No such file or directory(通过yum install gcc-c++ 安装,安装过程中包含一个重要的库libstdc++-devel-4.8.5-11.el7.x86_64.rpm)

  • /usr/local/aiconfiguration/bazel-0.4.5/src/BUILD:129:1: Executing genrule //src:embedded_tools failed: bash failed: error executing command (cd /tmp/bazel_xujO1WJE/out/execroot/bazel-0.4.5 &&
    exec env - \PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    src/create_embedded_tools.sh: line 85: zip: command not found(这里需要特别注意,最后一句是关键,提示zip没有发现,通过yum install zip解决)

安装numpy、scipy、Pillow(进入python通过help('name')查看,如果没有则安装)

pip install numpy || pip install scipy || pip install pillow

支持GPU(工具包下载安装)

  • Cuda Toolkit安装
  • 下载对应的型号
  • rpm -i name.rpm
  • sudo yum clean all
  • sudo yum install cuda
  • 安装遇到的问题
    需要安装dkms:(1)下载dkms文件 (2)执行:rpm -Uvh dkms-2.2.0.3-31.1.noarch.rpm
  • Cudnn安装
    -下载 Cudnn Toolkit
    • tar xvzf cudnn-6.5-linux-x64-v2.tgz
    • cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/include
    • cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64

安装NVIDIA驱动

  • 下载对应的驱动版本,注意版本、平台和硬件型号,例如.run包
  • 通过sh name.run命令进行安装
  • 安装遇到的问题
  • ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured; on Red Hat Linux systems, for example, be sure you have the 'kernel-source' or 'kernel-devel' RPM installed. If you know the correct kernel source files are installed, you may specify the kernel source path with the '--kernel-source-path' command line option
  • present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA graphics device(s), or no NVIDIA GPU installed in this system is supported by this NVIDIA Linux graphics driver release.Please see the log entries 'Kernel module load error' and 'Kernel messages' at the end of the file '/var/log/nvidia-installer.log' for more information.
  • 解决方法
  • 这个问题是因为通过yum安装kernel-devel的版本号问题,如果通过yum install kernel-devel安装可能造成版本不支持,如果出现了上 述问题,可以通过yum -y install kernel-devel "kernel-devel-uname-r == $(uname -r)"命令进行安装。
  • 如果通过第一个步骤重新运行sh name.run还会提示“you may specify the kernel source path with the '--kernel-source- path'”,那么你可以通过sh name.run -kernel-source-path=/usr/src/kernels/新装的kernel-devel版本号(通过uname -r查询)进行安装

安装tensorflow[注意命令源码下划线]

  • 通过tensorflow源码安装

  • 方式一(推荐):
    (1)直接下载tensorflow的对应的版本,这里对应的版本为1.0.1(Source code(tar.gz))
    (2)cd tensorflow
    (3)./configure
    (4)bazel build --config=cuda //tensorflow/tools/pip_package:build_pip_package(with CPU-only support:--config=opt or with GPU support:--config=cuda)
    (5)bazel-bin/tensorflow/tools/pip_package/build_pip_package
    /tmp/tensorflow_pkg(执行完这一句会输入一个路径,这个路径里面包含了一个生成的.whl文件)
    (6)pip install /tmp/tensorflow_pkg/tensorflow-1.0.1-*.whl

  • 方式二:
    (1)git clone https://github.com/tensorflow/tensorflow
    (2)cd tensorflow
    (3)git checkout r1.0
    (4)./configure
    (5)bazel build --config=opt
    //tensorflow/tools/pip_package:build_pip_package(with CPU-only support:--config=opt or with GPU support:--config=cuda)
    (6))bazel-bin/tensorflow/tools/pip_package/build_pip_package
    /tmp/tensorflow_pkg(执行完这一句会输入一个路径,这个路径里面包含了一个生成的.whl文件)
    (7)pip install /tmp/tensorflow_pkg/tensorflow-1.0.1-*.whl

  • 进入python,通过help('tensorflow')查看相应信息

  • 安装需要注意的问题(支持GPU)

    • 用configure脚本来配置环境信息的时候需要填[y/n]的时候需要注意了,因为默认是填n的。
    • 注意TensorFlow的./configure 设置bazel option
      Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: --config=cuda
    • Dou you wish to build Tensorflow with GPU support?[y/n]这个需要填y,默认是填n
    • Do you wish to build TensorFlow with OpenCL support? [y/N] 如果这个选择了y就会出现选择clang、clang++的默认路径,同 时也会出现Please specify the location where ComputeCpp for SYCL 1.2 is installed. [Default is /usr/local/ computecpp]: Invalid SYCL 1.2 library path. /usr/local/computecpp/lib/libComputeCpp.so cannot be found问题, openCL和cuda没有什么直接的联系,所以这个选项可以设置为n。
    • Please specify the location where CUDA 7.0 toolkit is installed. Refer toREADME.md for more details. [default is: /usr/local/cuda]:这个路径根据cuda安装的路径来设置
    • Please specify the location where CUDNN 6.5 V2 library is installed. Refer toREADME.md for more details. [default is: /usr/local/cuda]: 这个路径根据cuda安装的路径来设置
    • Please specify a list of comma-separated Cuda compute capabilities you want to build with.
      You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
      Please note that each additional compute capability significantly increases your build time and binary size [Default is: "3.5,5.2"]: 6.1(这个值是要根据自己设备的,可参考中的CUDA-Enabled GeForce Products)

测试Tensorflow

  • 进入python
    输入import tensorflow as tf
    输入hello = tf.constant('Hello, TensorFlow!')
    输入sess = tf.Session()
    输入print sess.run(hello)
    输出Hello, TensorFlow!
    输入a = tf.constant(10)
    输入b = tf.constant(32)
    输入print sess.run(a+b)
    输出42

  • 可能遇到的问题
    提示:failed call to cuInit: CUDA_ERROR_UNKNOWN driver does not appear to be running on this host (localhost.localdomain): /proc/driver/nvidia/version does not exist,这个是因为源码安装的时候选择了GPU支持 ,所以需要安装NVIDIA驱动,具体安装流程请看本教程的NVIDIA驱动安装模块。

安装ffmpeg

  • 方式一(ffmpeg源码安装,推荐)

    • 下载相对应的版本
    • ./configure --prefix=/usr [设置安装路径]
    • make
    • make install
    • 配置环境变量
      (1)export FFMPEG=/usr/local/aiconfiguration/ffmpeg/bin
      (2)export PATH=$PATH:$FFMPEG
    • 通过ffmpeg -version查看版本信息
  • 方式二

  • yum install ffmpeg

  • 查看ffmpeg详细信息:yum info ffmpeg(版本比较旧2.6)

  • 方式二安装遇到的问题:
    yum install ffmpeg没有匹配 ffmpeg 的软件包

    (1)安装EPEL Release

    • 因为安装需要使用其他的repo源,所以需要EPEL支持yum install -y epel-release
    • 如果出现缺少Code提示,通过rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7安装
    • 查看是否安装成功 yum repolist

    (2)安装Nux-Dextop源

卸载tensorflow

  • 通过源码安装的卸载方法
    • pip uninstall tensorflow
    • 把tensorflow的源码文件夹移除

卸载numpy、scipy、Pillow

pip uninstall numpy || pip uninstall scipy || pip uninstall pillow

卸载bazel

  • bazel通过源码安装的卸载方法
    • 把bazel的源码文件夹移除
    • 把在/etc/profile里设置的环境变量移除,保存之后通过source /etc/profile生效

卸载ffmpeg

  • 移除源码安装的文件夹(路径根据./configure --prefix=/usr [设置安装路径]这个设置)
  • 移除ffmpeg解压出来的文件夹
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 摘要:机器学习预计将成为下一个互联网风口,学好机器学习,可以找到一个更加有前途的职位。 选择一个好的机器学习的框架...
    marvinxu阅读 2,021评论 0 1
  • 1. 介绍 首先让我们来看看TensorFlow! 但是在我们开始之前,我们先来看看Python API中的Ten...
    JasonJe阅读 11,725评论 1 32
  • 网址 下载与安装 你可以使用我们提供的 Pip, Docker, Virtualenv, Anaconda 或 源...
    九七学姐阅读 4,740评论 3 11
  • 1c8b: 回顾与概述 这篇文章详细介绍了Tensorflow的安装和校验安装是否成功的教程,涵盖了在Ubuntu...
    darkie阅读 3,196评论 0 4
  • 夏日总是那么漫长 在那忙碌的学习时光 我们总会忙里偷闲 在教室的一隅之地 享受着属于我们的小快乐 打发着漫长的夏日
    因为我是雨辰啊阅读 227评论 0 0