天天看點

ubuntu16.04+tensorflow1.8 + python3.5 +other packages 環境搭建(monopsr)ubuntu 16.04+tensorflow-gpu 1.8 + python 3.5 +other packages 環境搭建(monopsr)

@liuhaojie

ubuntu 16.04+tensorflow-gpu 1.8 + python 3.5 +other packages 環境搭建(monopsr)

建立一個Python3.5環境

#建立一個Python3.5環境
	conda create --name mono3 python=3.5
#檢視已有環境
	conda info -e
#删除已有環境
	conda remove -n mono3 --all 
#複制環境
	conda create -n mono3copy --clone torch 
#激活pytorch環境
	source activate mono3
#退出環境
	deactivate mono3
           

修改conda鏡像源

在終端中運作以下指令修改鏡像源,可以明顯加速安裝.

conda config --prepend channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  #優先使用清華conda鏡像
	conda config --prepend channels http://mirrors.ustc.edu.cn/anaconda/pkgs/free/   #也可選用科大conda鏡像
	conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
           

要檢視鏡像源是否安裝成功的話,建議終端中運作以下指令:

conda config --set show_channel_urls yes
           

會生成一個~/.condarc檔案,運作cat指令檢視檔案内容

cat ~/.condarc #檢視
gedit ~/.condarc #修改
           

顯示内容為

ubuntu16.04+tensorflow1.8 + python3.5 +other packages 環境搭建(monopsr)ubuntu 16.04+tensorflow-gpu 1.8 + python 3.5 +other packages 環境搭建(monopsr)

安裝tensorflow 1.8 gpu

coverage
matplotlib
nose
numpy
opencv-python
pandas
pillow
pypng
pyyaml
scipy
scikit-image
sklearn
tensorflow-gpu==1.8
           

package安裝

#conda方式
	conda install tensorflow-gpu==1.8
#列印tensorflow 版本	
	pip list | grep tensorflow

#pip方式
pip install coverage nose numpy opencv-python
pip3 install pandas pillow pypng pyyaml scipy scikit-image sklearn
pip install pyswarms 'matplotlib<3.0'  # matplotlib>3不支援python3+
	#安裝skimage時 直接使用 pip install skimage 報錯,使用下面代替
	pip install scikit-image
	pip install opencv-contrib-python==3.4.2.16  #opencv新增的contrib子產品
	
#檢視環境已經安裝的 package
	conda list
           

測試tensorflow:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a + b))
           

結果圖

ubuntu16.04+tensorflow1.8 + python3.5 +other packages 環境搭建(monopsr)ubuntu 16.04+tensorflow-gpu 1.8 + python 3.5 +other packages 環境搭建(monopsr)

# 2.伺服器上+(GPU)的環境搭建

檢視cuda的版本

nvidia-smi  #檢視顯示卡
nvcc -V  #檢視cuda
           

關閉某個程序

kill -9 pid #用來強制終止指定pid程序(推薦使用此方法)

我的cuda的版本是8.0

ok!!!

monospr 編譯tf_op 遇到的問題

cuda8 +tensorflow-gpu1.4 編譯沒有問題 OK

cuda8 +tensorflow-gpu1.8 編譯有問題

使用

locate tensorflow_frameework

檢視 tensorflow_frameework的存在性:否則會報:

error:nn_distance/tf_nndistance_so.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv
           
locate tensorflow_frameework
           
ubuntu16.04+tensorflow1.8 + python3.5 +other packages 環境搭建(monopsr)ubuntu 16.04+tensorflow-gpu 1.8 + python 3.5 +other packages 環境搭建(monopsr)

Anconda3 的pkgs 包的存在會影響一些庫的安裝,例如

Compile the two custom TF ops src/tf_ops/nn_distance and src/tf_ops/approxmatch by running the shell scripts found in the respective folders. The location of your TensorFlow python package is passed as an argument.

sh src/tf_ops/approxmatch/tf_approxmatch_compile.sh 
sh src/tf_ops/nn_distance/tf_nndistance_compile.sh
           

tf_nndistance_compile.sh

TF_PATH=/home/lhj/anaconda3/envs/mono3/lib/python3.5/site-packages/tensorflow
/usr/local/cuda-8.0/bin/nvcc tf_nndistance_g.cu -o tf_nndistance_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_nndistance.cpp tf_nndistance_g.cu.o -o tf_nndistance_so.so -shared -fPIC -I $TF_PATH/include -I /usr/local/cuda-8.0/include -I $TF_PATH/include/external/nsync/public -lcudart -L /usr/local/cuda-8.0/lib64/ -L/$TF_PATH -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=0
           

tf_approxmatch_compile.sh

TF_PATH=/home/lhj/anaconda3/envs/mono3/lib/python3.5/site-packages/tensorflow
/usr/local/cuda-8.0/bin/nvcc tf_approxmatch_g.cu -o tf_approxmatch_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_approxmatch.cpp tf_approxmatch_g.cu.o -o tf_approxmatch_so.so -shared -fPIC -I $TF_PATH/include -I /usr/local/cuda-8.0/include -I $TF_PATH/include/external/nsync/public -lcudart -L /usr/local/cuda-8.0/lib64/ -L/$TF_PATH -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=0

           

if TensorFlow > 1.7.0:

keepdims

else:

keep_dims

更新gcc g++版本

Ubuntu (https://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-on-ubuntu/581497#581497)

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9  #報錯,使用下面的相應指令


           

1.)

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

2.) Then install gcc 4.8 and g++ 4.8:

sudo apt-get update; sudo apt-get install gcc-4.8 g++-4.8
           

3.) Once installed, run following commands one by one to use gcc 4.8 instead of previous version.

sudo update-alternatives --remove-all gcc 

sudo update-alternatives --remove-all g++

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
           
sudo update-alternatives --config gcc

sudo update-alternatives --config g++
           

Now you have the gcc 4.8 with c++11 complete feature in your system. Check out by:

gcc --version