tensorflow安装调试总结(持续更新)
这段时间需要部署tensorflow到linux上,由于堡垒机不能连外网,所以pip、apt-get、wget、git统统不能用,然后就是各种调试了,下面整理了一些遇到的问题和解决方案,供大家参考(CentOS/Python3.4),有什么遗漏的问题还望大家补充。
1、Putty、XShell、SecureCRT、SSH Secure Shell Slient的优缺点 现在大多是用的xshell,因为xshell有一款个人免费的,还是中文界面,对于这种四级都是勉强过的,真心不错。 putty因为太小了,所以常常有很多功能不能满足。 securecrt在功能上跟xshell(XManager中文版网站)差不多,但是securecrt是英文版的还要收费,所以就果断抛弃了 SSH Secure Shell Slient,这款软件使用的不太多,一般使用最多的就是securecrt和xshell了,介于免费的原因,所以推荐使用xshell。
2、查看本机MAC cmd->ipconfig/all->物理地址
3、root身份登录 ssh root@XXX
4、安装gcc 首先需要安装gcc,如果可以联网,可以apt-get install build-essential或yum -y install gcc,如果不能就去这里下载:http://mirrors-usa.go-parts.com/gcc/releases/gcc-4.8.4/gcc-4.8.4.tar.gz 下载下来之后,执行: tar zxvf gcc-4.8.4.tar.gz cd gcc-4.8.4 ./contrib/download_prerequisites ./configure --enable-checking=release --disable-multilib(后面两项option必须加,不加会报错(也可能只是其中一项起作用)) make -j4 make install
5、没有bizp2 如果没有bizip,安装gcc依赖的时候会报错 解决: 运行yum install -y bzip2安装bzip2
6、gcc版本不更新 更新完gcc后需要断开xshell重新连接后再输入gcc -v才显示最新版本(不需要修改环境变量)
7、没有git yum install git-core 要是不能联网有没有git都一样,所有包都需要手动下载
8、安装binutils 从以下目录下载binutils:ftp.gnu.org/gnu/binutils/binutils-2.28.tar.bz2 tar jxvf binutils-2.28.tar.bz2 mkdir binutils-build cd binutils-build ../binutils-2.28/configure make -j4 make install
9、安装bazel(大坑) 下载地址1:git clone https://github.com/bazelbuild/bazel(非常之慢) 下载地址2:git clone https://github.com/CStzdong/bazel 发现报错: INFO: You can skip this first step by providing a path to the bazel binary as second argument: INFO: ./compile.sh compile /path/to/bazel ?? Building Bazel from scratch ERROR: Must specify PROTOC if not bootstrapping from the distribution artifact
-------------------------------------------------------------------------------- NOTE: This failure is likely occuring if you are trying to bootstrap bazel from a developer checkout. Those checkouts do not include the generated output of the protoc compiler (as we prefer not to version generated files).
* To build a developer version of bazel, do
bazel build //src:bazel
* To bootstrap your first bazel binary, please download a dist archive from our release page at https://github.com/bazelbuild/bazel/releases and run compile.sh on the unpacked archive.
The full install instructions to install a release version of bazel can be found at https://docs.bazel.build/install-compile-source.html For a rationale, why the bootstrap process is organized in this way, see https://bazel.build/designs/2016/10/11/distribution-artifact.html 进入错误信息中提到的https://github.com/bazelbuild/bazel/releases网站,选择最近版本的链接,进去后发现有一堆安装包。选择其中的一个直接下载https://github.com/bazelbuild/bazel/releases/download/0.5.3/bazel-0.5.3-installer-linux-x86_64.sh运行安装成功,执行时报错: /usr/local/bin/bazel: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /usr/local/bin/bazel) 这个错误会在下文提到 重新运行./compile.sh 运行到一半报错 再执行一次,发现两次运行./compile.sh出现的错误不一致!疑似安装程序bug 尝试低版本bazel0.5.2,仍出现错误 尝试更低版本0.4.5,下载解压缩运行./compile.sh后安装成功!!! 下载地址:https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.zip 然后执行: mkdir bazel-0.4.5-dist cd bazel-0.4.5-dist unzip ../bazel-0.4.5-dist.zip ./compile.sh cp ./output/bazel /usr/local/bin(复制bazel的Binary文件至/usr/local/bin,使得全局都能找到该文件)
10、关于手动离线安装bazel 不建议完全手动安装bazel,全程有100多个包的依赖,。,,,,,,
11、ERROR: Cannot determine JDK version, please set $JAVA_HOME.\n $JAVAC_VERSION is "javac 1.6.0_25" 安装GCC时如果遇到以上问题,说明java版本过低了(最低需要jdk8) 解决方法:https://jingyan.baidu.com/article/48a42057f238a9a92425042c.html jdk8下载地址:https://pan.baidu.com/s/1kUBT7Vp
12、手动安装numpy和scipy 依赖的包: scipy-0.11.0 numpy-1.6.2 nose-1.2.1 lapack-3.4.2 atlas-3.10.0 参考:http://blog.chinaunix.net/uid-22488454-id-3978860.html
13、pip 如果没有pip,就到PIP官网下载get-pip.py。 参考链接:http://www.jianshu.com/p/81b648b1d572 最后从python官网下载p3安装包就好了 如果公司有自己的镜像,可以修改pip的配置文件: cd ~/.pip/pip.conf(如果没有,就自己建一个;如果不能保存,说明没有.pip目录,需要进入~目录mkdir .pip) 然后加入下面的内容 [global] index-url = XXX trusted-host = pypi.douban.com disable-pip-version-check = true timeout = 120 注:XXX为国内或企业内部镜像,国内用https://pypi.douban.com/simple,公司内部就用自己的。
14、找不到Glibc2.XX(ImportError: /lib64/tls/libc.so.6: version `GLIBC_2.14' not found) glibc是GNU发布的libc库,即c运行库。 glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。 glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。 由此可见,问题的根源是系统不兼容,ubuntu上用的libc 版本较高,而 CentOS 上用的版本太低导致不能执行。。 解决这个问题有三种方法: 第一种:升级Glibc,这个风险非常大,很多时候升完了发现好多东西都不能用了; 第二种:外链Glibc,也就是在其他目录建一个Glibc,然后添加一个环境变量,这个在网上看貌似是可行的,但我这么做的时候依然报错。 第三种:更换linux系统,这个问题很多时候是CentOS安装tf环境时候造成的,可以尝试更换容器
15、查看glibc支持的版本 strings /lib64/libc.so.6 |grep GLIBC_ (结果一般会显示只支持到Glibc2.12)
16、找不到readelf 依据链接http://www.jianshu.com/p/308a4e803c81的说法,先用readelf -s 文件路径|grep GLIBC_2.14查看so里到底哪部分依赖了glibc2.14,发现readelf: command not found,没有readelf命令。。。 (readelf用来显示一个或多个elf格式的目标文件信息) 依据链接http://pkgs.loginroot.com/errors/notFound/readelf,需要添加环境变量:export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
17、直接升级glibc(风险比较大) yum install gcc wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.xz xz -d glibc-2.17.tar.xz tar -xvf glibc-2.17.tar cd glibc-2.17 mkdir build cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make && make install 需要等大概10分钟
18、外链安装Glibc2 下载Glibc2.14: http://ftp.gnu.org/gnu/glibc/或者http://www.gnu.org/software/libc/ 安装: xz -d glibc-2.14.tar.xz tar -xvf glibc-2.14.tar 进入源码目录 建立构建目录,并cd进入构建目录: cd glibc-2.14 mkdir build 配置: ../configure --prefix=/opt/glibc-2.14 编译安装: make -j4 sudo make install 临时修改环境变量: LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
19、外链安装导致的严重后果 安装过程中,因为修改/etc/ld.so.conf文件,ldconfig后导致输入命令后,连最基本的命令也会报错: ls ls: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument 解决方法: 千万不要断开ssh,不然就远程不上去了 vi /etc/profile 加入 export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64 链接完了之后,Glibc2的问题是没有了,但import tensorflow的时候出现 Segmentation fault (core dumped)
20、Segmentation fault (core dumped) 直接强制退出Python了 根据链接https://github.com/tensorflow/tensorflow/issues/8197的解释,原因是gcc的版本过低,更新gcc在前文已经提过了。 还有文章提到是scipy和tensorflow冲突 根据http://blog.csdn.net/shouwangzhelv/article/details/51851155提到的解决方案,重新手工编译了scipy,依然不行。
21、glibc3找不到(version `GLIBCXX_3.4.21' not found) 参考http://blog.csdn.net/rznice/article/details/51090966 其实和找不到glibc2的性质差不多
22、glibc: LD_LIBRARY_PATH shouldn't contain the current directory LD_LIBRARY_PATH不能包含当前目录,需要修改环境变量并重新执行configure echo $LD_LIBRARY_PATH export LD_LIBRARY_PATH= echo $LD_LIBRARY_PATH ./glibc-2.14/configure
23、输入所有命令后都没反应了。。。 因为升级了Glibc,导致系统出问题了,把环境变量改回去就可以了。
24、安装anaconda 参考:http://www.jianshu.com/p/03d757283339 如果机器不能联网,anaconda基本就废掉了。。。
如果不能用ananconda,只好自己下载包然后上传了,单台机器就rz和sz,多台机器之间传文件就scp xxx root@abc:url
BY:YasselBing
tensorflow安装调试总结(持续更新)的更多相关文章
- 关于gpu版本的tensorflow+anaconda+jupyter的一些安装问题(持续更新)
关于anaconda安装,虽然清华镜像站资源很丰富,但是不知道是网络还是运气的问题,用这个路径安装的时候总是出现文件丢失.具体表现可能是anaconda prompt 找不到,conda命令无效等问题 ...
- tensorflow 学习纪录(持续更新)
import tensorflow as tf import numpy as np #tensor = tf.constant([[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8 ...
- Android Studio的安装使用记录[持续更新]
参考资料: Windows环境下Android Studio v1.0安装教程 http://ask.android-studio.org/?/article/9 1. 下载与安装 在http://w ...
- chrome调试技巧--持续更新
1.开始调试:右键审查元素 2.按钮功能: 调出控制台: 切换开发环境全屏还是嵌入: 清空当前显示: 将压缩 js 文件格式化缩进规整的文件: 3.常用页面功能: 查看.编辑(双击)HTML: 查看选 ...
- centos6.4安装使用wine 持续更新中
首先,从wine的官网下载页面http://www.winehq.org/download/可以了解到centos安装wine需要EPEL软件仓库.那么首先安装EPEL软件仓库,从http://mir ...
- 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新
python 中好用的函数,random.sample等,持续更新 random.sample random.sample的函数原型为:random.sample(sequence, k),从指定序列 ...
- Ubuntu14.04+cuda 7.5+cudnn_v4+tensorflow安装
系统环境:Ubuntu14.04 64位.Windows7 64位 双系统 CUDA 版本: 7.5 总结一下,我的安装建议是: 一定要下一份CUDA官方的安装文档,按照它的步骤一步步慢慢来,不可偷懒 ...
- ReactNative开发笔记(持续更新...)
本文均为RN开发过程中遇到的问题.坑点的分析及解决方案,各问题点之间无关联,希望能帮助读者少走弯路,持续更新中... (2019年3月29日更新) 原文链接:http://www.kovli.com/ ...
- python3.4学习笔记(六) 常用快捷键使用技巧,持续更新
python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...
随机推荐
- hdu_1711: Number Sequence【KMP算法】
题目链接 此次插播点笔记 hdu中点击蓝色的"Compilation Error"可以查看自己是为什么CE的 hdu中提交的话,语言选择G++可以使用<bits/stdc++ ...
- 用Node.JS+MongoDB搭建个人博客(安装环境)(一)
Node.JS是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Nod ...
- tensorflow Relu激活函数
1.Relu激活函数 Relu激活函数(The Rectified Linear Unit)表达式为:f(x)=max(0,x). 2.tensorflow实现 #!/usr/bin/env pyth ...
- (转)使用BigDecimal进行精确运算
场景:在进行支付业务的金额计算时,通常采用BigDecimal类型的数据,并没有看到常见的int double类型,所以有必要好好学习下BigDecimal的常用用法. 1 误区 首先我们先来看如下代 ...
- (转)java提高篇(四)-----理解java的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- 30. leetcode 121. Best Time to Buy and Sell Stock
121. Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of ...
- 1.初入GitHub
进入github官网,点击右上角注册按钮. 填写账号名,邮箱和密码 选择免费的公开仓库,点击完成就提示注册成功了. ps:付费一般是给企业用户使用的,用来存放一些不公开的代码.所以是付费的 ...
- 白话ASP.NET MVC之二:Controller激活系统的概览
前文简介:我们抽象类路由规则的对象,RouteBase是路由对象的抽象基类,ASP.NET 的路由系统中有唯一一个从RouteBase继承的路由对象,那就是Route类型了.我们注册了路由对象Rout ...
- 一种更高查询性能的列存储方式MaxMinT 第一部分
简介本文描述了一种列存储方式和对应的查询方法,这种存储方式具有更好的查询性能和更小的存储空间. And查询 本文先用直观的图形方式展示and查询时的方式,这也是算法要解决的问题核心.通常在OLAP数据 ...
- cocoa pods 命令不执行command not found
bogon:~ mrbtios01$ cd Desktop/改版app/lingMoney新改版的 //当出现如下问题时: bogon:lingMoney新改版的 mrbtios01$ vim pod ...