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/

Tensorflow速成学习笔记——一
Tensorflow速成学习笔记——一

ps:本次使用的是Anaconda3-5.0.0-Linux-x86_64.sh

二、Anaconda,安装

进入文件目录:

bash ./Anaconda3-5.0.0-Linux-x86_64.sh

回车

Tensorflow速成学习笔记——一
.
.
.

全程 yes +回车 ,默认安装在home目录下

三、Anaconda,环境变量

1.检查环境变量,没有则添加

查看命令

sudo gedit ~/.bashrc

Tensorflow速成学习笔记——一
检查末尾是否已经添加如下变量,没有则添加

export PATH="/home/用户名/anaconda3/bin:$PATH"

Tensorflow速成学习笔记——一

需要重启系统,不然找不到命令

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

创建成功

Tensorflow速成学习笔记——一

**环境

source activate flappbird

Tensorflow速成学习笔记——一

四、tensorflow安装

给 flappbird 环境安装tensorflow

conda install -n flappbird -c https://conda.anaconda.org/jjhelmus tensorflow

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行

Tensorflow速成学习笔记——一

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

Tensorflow速成学习笔记——一

3、配置环境:

将Pycharm设置为桌面启动:

启动Pycharm后执行如下操作:

Tensorflow速成学习笔记——一

选择Create Desktop Entry,

Tensorflow速成学习笔记——一

选ok,

Tensorflow速成学习笔记——一

拖到启动项即可。


重点。。。。。。。。。。。。。。。。。。。。。

pycharm配置Anaconda下Python环境:

Tensorflow速成学习笔记——一

选Setting,

Tensorflow速成学习笔记——一

点击右上角设置按钮,点击Add,

Tensorflow速成学习笔记——一

路径选择:/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解决方法

在运行Python程序时,一句import tensorflow出现错误:

Tensorflow速成学习笔记——一
参考文章:http://blog.****.net/zx714311728/article/details/69628836,http://blog.****.net/xiaolong2w/article/details/23915171
这两篇文章的思路是一样的,感觉跟我的问题是一样的,但是对里面的路径不太清楚,尝试了很多次才搞懂。
下面会对路径和方法进行说明:
1.
查看动态库
strings /home/gaoliying/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6 | grep CXXABI
(the path after the "strings" is the path where the problem appears, look the first picture.)
结果如下:
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
发现最高版本只有1.3.7,没有1.3.9的。
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

第一篇笔记就到这里了,下次再更!