网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月14日漏签0天
机器学习吧 关注:23,050贴子:41,456
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回机器学习吧
>0< 加载中...

tensorflow安装调试总结(持续更新)

  • 只看楼主
  • 收藏

  • 回复
  • 422937495
  • 核心吧友
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这段时间需要部署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安**zip2
6、gcc版本不更新
更新完gcc后需要断开xshell重新连接后再输入gcc -v才显示最新版本(不需要修改环境变量)
7、没有git
yum install git-core
要是不能联网有没有git都一样,所有包都需要手动下载
8、安**inutils
从以下目录下载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、安**azel(大坑)
下载地址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、关于手动离线安**azel
不建议完全手动安**azel,全程有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


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回机器学习吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示