@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 #修改
顯示内容為
安裝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))
結果圖
# 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
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