Xshell遠程Centos7,anaconda3 TensorFlow運行“手動下載MNIST數據集”,並用tensorboard展示並分類cnn結果

1 環境配置:Centos7服務器已經安裝好anaconda3,並利用anaconda安裝TensorFlow(本例中版本爲CUDA 8.0.44
CUDNN 5.1.10;Python 3.6.7 :: Anaconda custom (64-bit);TensorFlow爲1.12.0);安裝後可以利用如下查看版本和檢測是否安裝正確:

cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
conda -V
python -V
>>> import tensorflow as tf
>>> tf.__version__

2 Python代碼:下載github測試代碼,或者自己寫一個train.py

git clone https://github.com/gamersover/tensorflow_basic_tutorial

已經寫好的minist_Tensorboard.py百度網盤下載,提取密碼(8rcr); 這裏方便起見用運行自己寫的這個minist_Tensorboard.py網絡進行展示。建立一個文件夾DemoMinistNN存放下載的minist_Tensorboard.py。

3 運行train.py,報錯。手動下載MINIST數據並導入。
在Xshell終端cd 到DemoMinistNN文件夾下,直接運行python minist_Tensorboard.py,會報錯等上幾個小時依舊沒有反應,但是會在 DemoMinistNN文件夾下出現名爲 “MNIST_data” 的空文件夾(自己理解是應該把數據從網上下載到這個文件夾下,但是沒有網絡連接不通,不能下載)。好像是因爲“由於連接方在一段時間後沒有正確答覆或連接的主機沒有反應,連接嘗試失敗。”也就是下載不下來Minist數據集。

[zyzh@server-56 DemoMinistNN]$ python minist_Tensorboard.py 

Instructions for updating: Please use urllib or similar directly.

解決方法:只能手動下載MINIST數據集官網(http://yann.lecun.com/exdb/mnist/),一共四個.gz壓縮數據集:在此給出下載好的百度網盤網址:

(  訓練圖片標籤:https://pan.baidu.com/s/11eZCZ1LSI19J-DKM2yuGeg ;

     訓練圖片集:https://pan.baidu.com/s/1_ytyGLbiXJ-XVD2lQN3FCg

     測試圖片:https://pan.baidu.com/s/1akuciF7z-c0c86pL6Ulf0g   ;

     測試圖片標籤:https://pan.baidu.com/s/13m_YY3BDtydVR511SCb78Q;)

可以在win系統依次下載四個壓縮文件然後上傳到服務器,可以直接在Xshell終端下載用wget依次下載壓縮文件 ,下載好4個壓縮文件之後,把它們移動到MNIST_data文件夾下:

[zyzh@server-56 DemoMinistNN]$ ls
minist.py  MNIST_data

#官網上下載數據集
[zyzh@server DemoMinistNN]$ wget http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz  
#百度網盤上下載數據集 
[zyzh@server DemoMinistNN]$ wget https://pan.baidu.com/s/11eZCZ1LSI19J-DKM2yuGeg 
[zyzh@server DemoMinistNN]$ wget https://pan.baidu.com/s/1_ytyGLbiXJ-XVD2lQN3FCg
[zyzh@server DemoMinistNN]$ wget https://pan.baidu.com/s/1akuciF7z-c0c86pL6Ulf0g  
[zyzh@server DemoMinistNN]$ wget https://pan.baidu.com/s/13m_YY3BDtydVR511SCb78Q

[zyzh@server DemoMinistNN]$ mv train-labels-idx1-ubyte.gz MNIST_data/
[zyzh@server DemoMinistNN]$ mv train-images-idx3-ubyte.gz MNIST_data/
[zyzh@server DemoMinistNN]$ mv t10k-labels-idx1-ubyte.gz MNIST_data/
[zyzh@server DemoMinistNN]$ mv t10k-images-idx3-ubyte.gz MNIST_data/

[zyzh@server DemoMinistNN]$ cd MNIST_data/
[zyzh@server MNIST_data]$ ls
t10k-images-idx3-ubyte.gz  t10k-labels-idx1-ubyte.gz  train-images-idx3-ubyte.gz  train-labels-idx1-ubyte.gz


手動導入MNIST數據後,再次運行 minist_Tensorboard.py 

[zyzh@server DemoMinistNN]$ python minist_Tensorboard.py 

就可以成功運行。最後結果,這個網絡很快就收斂了,爲了在tensorboard看正確率曲線,我們在minist_Tensorboard.py中設置epoch爲200。 最後運行結果如下:

5 運行TensorBoard,展示結果 。

1)首先在Xshell中設置端口號:

2)然後在Xshell終端,任意的打開一個終端頁面,輸入tensorboard啓動命令,其中logdir是產生“events.out.tfevents.1546671610.server”事件上一層的路徑

[zyzh@server-56 ~]$ tensorboard -- logdir==/home/zyzh/DemoMinistNN/tmp/tensorflow_logs/mlp_mnist/
TensorBoard 1.12.1 at http://server :6006 (Press CTRL+C to quit)

3)然後打開win本機網頁輸入“http://127.0.0.1:6006/”便可以看到tensorboard的展示。

出現問題:

a、TensorBoard 開啓端口6006正在佔用

Ctril+c關掉TensorBoard 後,再次輸入“tensorboard -- logdir==  ”會報錯,正在使用。

此時在終端將6006端口kill掉,然後再運行TensorBoard 即可。

#終端下,查看PID
lsof -i:6006
#kill掉6006端口
kill -9 22226(PID號碼)

b、網頁顯示報錯

出現這個問題,證明已經tensorboard已經連接到文件夾下,只是文件夾下沒有相應的event文件,需要在訓練網絡,自己在代碼中添加保存event文件的命令。

c 在運行代碼時報gpu顯存不夠,錯誤。

這時需要指定一個GUP顯卡進行運行,比如指定第二塊顯卡進行運行,即可正常運行。

[zyzh@server DemoMinistNN]$ export CUDA_VISIBLE_DEVICES=1
[zyzh@server DemoMinistNN]$ python minist.py 

 

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