Tensorflow速成学习笔记——一
首先,需要一个anaconda并安装tensorflow,具体安装方法如下:
原文章地址【深度学习】Ubuntu16.04+Anaconda安装+换源+环境创建+tensorflow安装
Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。
ps:也可以去官网下载 https://www.anaconda.com/download/
ps:本次使用的是Anaconda3-5.0.0-Linux-x86_64.sh
二、Anaconda,安装
进入文件目录:
bash ./Anaconda3-5.0.0-Linux-x86_64.sh
回车
.
.
.
全程 yes +回车 ,默认安装在home目录下
三、Anaconda,环境变量
1.检查环境变量,没有则添加
查看命令
sudo gedit ~/.bashrc
检查末尾是否已经添加如下变量,没有则添加
export PATH="/home/用户名/anaconda3/bin:$PATH"
需要重启系统,不然找不到命令
2.打开控制台 ,更换清华源(墙太高)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
3.创建一个名flappbird 的环境
conda create -n flappbird python=3.6
创建成功
**环境
source activate flappbird
四、tensorflow安装
给 flappbird 环境安装tensorflow
conda install -n flappbird -c https://conda.anaconda.org/jjhelmus tensorflow
五、遇到的错误+解决办法
1.如果换源之后任然无法创建环境,并且报网络连接的错误:
报错如下:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.continuum.io/pkgs/main/linux-64/repodata.json.bz2>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
ConnectionError(MaxRetryError("HTTPSConnectionPool(host='repo.continuum.io', port=443): Max retries exceeded with url: /pkgs/main/linux-64/repodata.json.bz2 (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fd5d462df28>: Failed to establish a new connection: [Errno 101] Network is unreachable',))",),)
解决办法:
打开源文件
vim ~/.condarc
删除defaults行
2.如果安装文件夹出现一把小锁,运行命令报错
报错如下
Traceback (most recent call last):
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/exceptions.py", line 640, in conda_exception_handler
return_value = func(*args, **kwargs)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/cli/main.py", line 140, in _main
exit_code = args.func(args, p)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/cli/main_create.py", line 68, in execute
install(args, parser, 'create')
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/cli/install.py", line 231, in install
unknown=index_args['unknown'], prefix=prefix)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/index.py", line 101, in get_index
index = fetch_index(channel_priority_map, use_cache=use_cache)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/index.py", line 120, in fetch_index
repodatas = collect_all_repodata(use_cache, tasks)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/repodata.py", line 75, in collect_all_repodata
repodatas = _collect_repodatas_serial(use_cache, tasks)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/repodata.py", line 485, in _collect_repodatas_serial
for url, schan, pri in tasks]
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/repodata.py", line 485, in <listcomp>
for url, schan, pri in tasks]
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/repodata.py", line 115, in func
res = f(*args, **kwargs)
File "/home/joahluo/Anaconda/lib/python3.6/site-packages/conda/core/repodata.py", line 473, in fetch_repodata
with open(cache_path, 'w') as fo:
PermissionError: [Errno 13] Permission denied: '/home/joahluo/Anaconda/pkgs/cache/09e2740c.json'
解决办法:
运行如下命令,赋予权限
sudo chmod -R 777 Anaconda
ps:其中Anaconda是我的安装的文件夹名字
然后再在pycharm中导入刚配好的tensorflow
原文章地址Linux下Pycharm、Anaconda环境配置
1、下载PyCharm:https://www.jetbrains.com/pycharm/download/#section=linux
下载完成后将压缩文件解压,然后打开终端执行:
cd downloads/pycharm-2018.1/bin
bash pycharm.sh
启动pycharm后需要注册,选择License server**,然后填入:http://artemis.my.to,然后点Activate**即可
2、下载Anaconda:https://repo.continuum.io/archive/index.html
下载完成后将压缩文件解压,然后打开终端执行:
cd downloads
bash Anaconda2-5.0.1-Linux-x86_64.sh
3、配置环境:
将Pycharm设置为桌面启动:
启动Pycharm后执行如下操作:
选择Create Desktop Entry,
选ok,
拖到启动项即可。
重点。。。。。。。。。。。。。。。。。。。。。
pycharm配置Anaconda下Python环境:
选Setting,
点击右上角设置按钮,点击Add,
路径选择:/home/python/anaconda2/bin/python
即可。
再次提醒一下,我因为是要用tensorflow(上文引用博客中flappbird的配置)所以不能用/home/anaconda2/bin/python,而是改成/home/anaconda3/envs/tensorflow(按照那一篇博文安装的要改成flappbird)/bin/python这样才能找到。
安装完之后,我还遇到了一个很神奇的问题,就是在import的时候会提示libstdc++.so文件有错
找了一下,解决博文如下Ubuntu…/libstdc++.so.6: version `CXXABI_1.3.9’ not found解决方法
参考文章:http://blog.****.net/zx714311728/article/details/69628836,http://blog.****.net/xiaolong2w/article/details/23915171
这两篇文章的思路是一样的,感觉跟我的问题是一样的,但是对里面的路径不太清楚,尝试了很多次才搞懂。
下面会对路径和方法进行说明:
1.查看动态库
(the path after the "strings" is the path where the problem appears, look the first picture.)strings /home/gaoliying/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6 | grep CXXABI
结果如下:发现最高版本只有1.3.7,没有1.3.9的。CXXABI_1.3 CXXABI_1.3.1 CXXABI_1.3.2 CXXABI_1.3.3 CXXABI_1.3.4 CXXABI_1.3.5 CXXABI_1.3.6 CXXABI_1.3.7 CXXABI_TM_1
2.执行以下命令ls -l /home/gaoliying/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6
结果:lrwxrwxrwx 1 gaoliying gaoliying 19 11月 1 15:43 /home/gaoliying/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6 -> libstdc++.so.6.0.19
3. 执行以下命令,查找编译gcc
时生成的最新动态库:出现:find / -name "libstdc++.so.*"
find: `/run/user/1000/gvfs': 权限不够 /home/gaoliying/anaconda3/lib/libstdc++.so.6 /home/gaoliying/anaconda3/lib/libstdc++.so.6.0.19 /home/gaoliying/anaconda3/lib/libstdc++.so.6.0.24 /home/gaoliying/anaconda3/lib/libstdc++.so.6.0.19-gdb.py /home/gaoliying/anaconda3/pkgs/libstdcxx-ng-7.2.0-h24385c6_1/lib/libstdc++.so.6 /home/gaoliying/anaconda3/pkgs/libstdcxx-ng-7.2.0-h24385c6_1/lib/libstdc++.so.6.0.24 /home/gaoliying/anaconda3/pkgs/libstdcxx-ng-7.2.0-h24385c6_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6 /home/gaoliying/anaconda3/pkgs/libstdcxx-ng-7.2.0-h24385c6_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 /home/gaoliying/anaconda3/pkgs/gcc-4.8.5-7/lib/libstdc++.so.6 /home/gaoliying/anaconda3/pkgs/gcc-4.8.5-7/lib/libstdc++.so.6.0.19 /home/gaoliying/anaconda3/pkgs/gcc-4.8.5-7/lib/libstdc++.so.6.0.19-gdb.py /home/gaoliying/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6 /home/gaoliying/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
一下子出来了好多,对照参考链接,完全不懂下面怎么办了。试了好多次,终于明白了,下面给出正确方法。最新库:6.0.24,最新目录:/home/gaoliying/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/(在路径中出现gnu的是要找的目录)
4.将上面的最新目录复制到出现问题的目录下:cp /home/gaoliying/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 /home/gaoliying/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6
(参考链接中只写了/usr/lib,这样看不懂,一开始也写了这个路径,发现库还是没变,原来此处是将出现问题的地方替换掉)
5. 将libstdc++.so.6连接到libstdc++.so.6.0.24上去:
cd /usr/lib rm -rf libstdc++.so.6 ln -s libstdc++.so.6.24 libstdc++.so.6
6. 默认动态库升级完成。重新运行以下命令检查动态库:
strings /home/gaoliying/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6 | grep CXXABI
结果如下:可以看到确实是连接到新的动态库上去了。完成!CXXABI_1.3 CXXABI_1.3.1 CXXABI_1.3.2 CXXABI_1.3.3 CXXABI_1.3.4 CXXABI_1.3.5 CXXABI_1.3.6 CXXABI_1.3.7 CXXABI_1.3.8 CXXABI_1.3.9 CXXABI_1.3.10 CXXABI_1.3.11 CXXABI_TM_1 CXXABI_FLOAT128 CXXABI_1.3 CXXABI_1.3.11 CXXABI_1.3.2 CXXABI_1.3.6 CXXABI_FLOAT128 CXXABI_1.3.9 CXXABI_1.3.1 CXXABI_1.3.5 CXXABI_1.3.8 CXXABI_1.3.4 CXXABI_TM_1 CXXABI_1.3.7 CXXABI_1.3.10 CXXABI_1.3.3
提醒一下,上面的博文最后有点小错误,ln -s libstdc++.so.6.24 libstdc++.so.6这句命令中,应改为 libstdc++.so.6.0.24
第一篇笔记就到这里了,下次再更!