1. 程式人生 > >tensorflow速成學習筆記——一

tensorflow速成學習筆記——一

**

首先,需要一個anaconda並安裝tensorflow,具體安裝方法如下:

Anaconda 是一個用於科學計算的 Python 發行版,支援 Linux, Mac, Windows, 包含了眾多流行的科學計算、資料分析的 Python 包。

列表內容 這裡寫圖片描述

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

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檔案有錯

在執行Python程式時,一句import tensorflow出現錯誤: 參考文章:http://blog.csdn.net/zx714311728/article/details/69628836,http://blog.csdn.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 第一篇筆記就到這裡了,下次再更!