tensorflow2.0深度學習開發環境搭建(ubuntu/win10)

Table of Contents

前言:

一、 tensorflow2.0深度學習開發環境搭建

1.安裝Anaconda進行開發環境管理

2. 安裝tensorflow2.0預覽版


前言:

瞭解到tensorflow2.0的大幅度調整後,剛上手的tensorflow1+也沒有心情繼續學習了,同事也轉向學習新出的pytorch1.0了,但tensorflow完善的生態及goolge大牛的背景,依舊沒有放棄tensorflow。之前學習時一直沒有記錄,掉過的坑,踩過的雷時間一久,依舊還是猝不及防,所以這一次決心通過博客記錄這個學習歷程,也希望可以幫助到其他學習者。

學習記錄:

1. tensorflow2.0深度學習開發環境搭建(ubuntu/win10)

2. 項目實戰1:TF2.0+LetNet-5構建Fasion MNSIT分類器

3. 項目實戰2:TF2.0+AlexNet構建Fasion MNSIT分類器

4. 項目實戰3:TF2.0+VGG-16構建Fasion MNIST分類器

5. 項目實戰4:TF2.0+ResNet構建Fasion MNIST分類器

5. 項目實戰5:TF2.0+mobilieNet構建Fasion MNIST分類器

 

一、 tensorflow2.0深度學習開發環境搭建

本方案通過anaconda對開發環境進行管理,通過conda創建tensorflow開發環境:anaconda+tensorflow+cuda10.0+cudnn7.5.1+jupyter notebook。

1.安裝Anaconda進行開發環境管理

1.1 Anaconda簡述

Anaconda 是 Python 的一個開源發行版本。anaconda 裏面集成了很多關於 python 科學計算的第三方庫,主要面向科學計算且安裝方便,而 python 是一個編譯器,如果不使用 anaconda,那麼安裝起來會比較痛苦,各個庫之間的依賴性就很難連接的很好。Anaconda 提供一個管理工具 conda ,可以把 conda 看作是 pip + virtualenv +PVM (Python Version Manager) + 一些必要的底層庫,也就是一個更完整也更大的集成管理工具。在我看來主要優點是預裝了很多第三方庫,而且Anaconda中增加了conda install命令,安裝新package格外方便,還自帶Spyder IDE 和Jupyter Notebook等開發工具,是初學者不再需要在開發環境上花太多功夫;同時爲避免太多額外的的開發包被安裝,增加系統內存消耗,也可以選擇Miniconda,Miniconda只包括python與conda,而其餘的庫件可以通過手動安裝。

1.2 Anaconda下載及安裝方法

1.2.1 Anaconda安裝

ubuntu系統下:

    (1)下載鏈接:https://www.anaconda.com/distribution/,下載自己所需的安裝包

    (2)進入保存目錄,打開命令行輸入:bash ~/Anaconda3-2019.03-Linux-x86_64.sh

    (3)在安裝過程中需要通過ENTER鍵跳過提示,注意在提示選擇時鍵入“yes”,直至安裝完成

win10系統下:

    (1)下載鏈接:https://www.anaconda.com/distribution/,下載自己所需的.exe安裝包,雙擊進行安裝即可

  (2)將anaconda添加至環境變量

1.2.2 Miniconda安裝

(1)下載鏈接:https://conda.io/en/latest/miniconda.html

(2)安裝方法與Anaconda安裝方法相同

2. 安裝tensorflow2.0預覽版

2.1 更換軟件源:避免下載速度過慢或無法下載

    ubuntu系統(此處選用清華源)

step1:命令行執行以下指令
vim ~/.condarc

step2:在文件中添加以下內容
channels:
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: true

    win10系統:命令行執行以下指令

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

# 設置搜索時顯示通道地址
conda config --set show_channel_urls yes

2.1安裝或更新NVIDIA驅動

(已安裝nvidia驅動的可略過!,版本不是cuda10.0相應的,後期可能出現一下錯誤輸出:)

Status: CUDA driver version is insufficient for CUDA runtime version

本方案計劃安裝gpu版本的tensorflow2.0,cuda版本需要大於cuda-10.0,需要安裝相應的nvidia驅動,具體步驟爲:

(1)首先去官網上查看適合你GPU驅動的版本號,如1050Ti對應的最新驅動爲418.56。查詢網址:https://www.nvidia.cn/Download/index.aspx?lang=cn

(2) (ubuntu)打開終端,分別執行以下命令:

sudo apt-get remove --purge nvidia*  (卸載:若已安裝過驅動需要先卸載)

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

sudo apt-get install nvidia-418

sudo apt-get install mesa-common-dev

sudo apt-get install freeglut3-dev

(3) 執行完上述後,重啓(reboot)

(4) 查看nvidia驅動是否安裝成功,打開終端輸入:nvidia-smi或nvidia-settings,若成功可得到以下信息。

!!!此後步驟與系統無關!!!

2.3創建tensorlfow開發環境(環境名稱:tf2)

#step1:利用conda創建一個tensorflow的開發環境:打開命令行,輸入(tensorflow與python3.5兼容比較好):
conda create -n tf2 python=3.5   (刪除環境:conda remove -n tensorflow --all)

#step2:激活tensorflow2.0的開發環境(tf2)
conda activate tf2

#step3:對於GPU版的安裝,爲保證不論原始linux環境是什麼樣的都可以安裝
conda install cudatoolkit=10 cudnn=7.3

#step4:安裝tensorflow2.0預覽版
pip install tf-nightly-gpu-2.0-preview

#如果上訴安裝提示錯誤,可嘗試一下命令
pip install tensorflow-gpu==2.0.0-alpha0

注意事項:

由於tensorflow版本較新(僅支持cuda>10),在gpu版本運行tensorflow工程時,會出現:

Loaded runtime CuDNN library: 7.3.1 but source was compiled with: 7.4.2.

提示cudnn版本過低(需大於7.4.2),而目前conda軟件源中cudnn的最新的版本只有7.3.1(可通過指令:conda search cudnn進行查詢),爲解決這個問題,可去官網下載與cuda相對應最新的cudnn庫文件,並進入通過conda創建的虛擬環境中替換對應的文件,具體操作如下:

(1)cudnn下載網址(需註冊nvidia賬號):https://developer.nvidia.com/cudnn

(2)解壓“cudnn-10.0-linux-x64-v7.5.1.10.tgz”得到cuda文件夾,進入cuda文件夾,並在當前路徑打開命令行

#step1:刪除虛擬環境中舊版本的cudnn庫文件
sudo sudo rm -rf /home/username/anaconda3/envs/tf2/lib/libcudnn*

sudo sudo rm -rf /home/username/anaconda3/envs/tf2/include/cudnn.h

#step2:複製當前版本的cudnn庫文件到虛擬環境中

sudo cp lib64/libcudnn* /home/username/anaconda3/envs/tf2/lib/

sudo cp include/cudnn.h /home/username/anaconda3/envs/tf2/include/

2.4 安裝IDE:jupyter notebook

#step1: Ctr+Alt+T打開命令行,進入虛擬環境
conda activate tf2

#step2:安裝jupyter notebook
conda install jupyter notebook

2.5 安裝opencv

#step1: Ctr+Alt+T打開命令行,進入虛擬環境
conda activate tf2

#step2: 安裝opencv
#conda install opencv3
conda install -c menpo opencv3

有沒有發現有了conda開發環境管理軟件,配置環境簡直不要太easy!

step1(進入虛擬開發環境):conda activate tf2

step2(安裝軟件或開發庫):conda install "libname" OR pip install "libname"

step3(卸載軟件或開發庫):conda uninstall "libname" OR pip uninstall "libname"

2.6 測試

2.6.1 編寫測試代碼

簡單編寫一個程序:隨機產生訓練和驗證數據,通過構建的神經網絡模型進行訓練測試(程序本身沒有實際意義,僅爲驗證環境安裝正確)

import numpy as np
import tensorflow as tf
from tensorflow.keras import layers
print(tf.__version__)
print(tf.keras.__version__)

model = tf.keras.Sequential()
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
             loss=tf.keras.losses.categorical_crossentropy,
             metrics=[tf.keras.metrics.categorical_accuracy])

train_x = np.random.random((1000, 72))
train_y = np.random.random((1000, 10))
val_x = np.random.random((200, 72))
val_y = np.random.random((200, 10))

dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))
dataset = dataset.batch(32)
dataset = dataset.repeat()
val_dataset = tf.data.Dataset.from_tensor_slices((val_x, val_y))
val_dataset = val_dataset.batch(32)
val_dataset = val_dataset.repeat()

model.fit(dataset, epochs=10, steps_per_epoch=30,
          validation_data=val_dataset, validation_steps=3)

2.6.2 執行程序(腳本運行方式)

#step1-打開終端: Ctrl + Alt + t 
#step2-激活開發環境: conda activate tf2
#step3-進入文件目錄:cd file_path
#step4-執行相應文件:python targetfile

3.參考及學習資料

1.更換軟件源:https://blog.csdn.net/dream_allday/article/details/80344511

tensorflow2中文教程:https://github.com/czy36mengfei/tensorflow2_tutorials_chinese

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章