2019-12-31:InsightFaceプロジェクト実戦(一)環境配置、構築とテスト


一、プロジェクト環境及び配置
CentOS Linux release 7.6.1810 (Core) + 2*GeForce GTX 1080ti + Python3.6.0 + Anaconda3 + Tensorflow1.14-gpu + CUDA  9.0.176 + CUDNN 7.6.4
  • システムバージョンコマンドの表示:find/etc/-name*-release、cat releaseファイルパス
  • GPUバージョン表示コマンド:nvidia-smi
  • CUDAバージョンコマンドの表示:cat/usr/local/cuda/version.txt
  • CUDNNバージョンの表示コマンド:cat/usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

  • 二、環境構築
    xshellはコマンドライン方式で、cpuとgpu環境をそれぞれ構築します.
    (一)「tf-cpu-InsightFace」という環境と「tf-gpu-InsightFace」を作成する
    conda create -n  tf-cpu-InsightFace python==3.6
    conda create -n  tf-gpu-InsightFace python==3.6

    (二)上記環境をjupyter notebookのkernelに書き込む
    python -m ipykernel install --name  tf-cpu-InsightFace
    python -m ipykernel install --name tf-gpu-InsightFace
    

    (三)サードパーティライブラリのインストール
    1、xshellコマンドラインモードで対応環境をアクティブにする:
    ## tf-cpu-InsightFace  
    conda activate tf-cpu-InsightFace
    
    ## tf-gpu-InsightFace  
    conda activate tf-gpu-InsightFace
    
    ##  
    conda info --envs

    2、tensorflow 1をインストールする.14
  • gpuバージョンインストール:gpu環境構築では、cudaとcudnn(cudaとcudnnのインストール時に注意:gpuグラフィックスドライババージョン、tensorflow-gpuバージョン、cudaバージョンとcudnnバージョンの間に適切に配置)をインストールし、gpuバージョンのtensorflowをインストールします.
  • conda  install cuda==9.0
    conda install cudnn
    pip --default-timeout=100 install tensorflow-gpu==1.14
  • cpuバージョンインストール:pip--default-timeout=100 install tensorflow=1.14
  • 3、mxnetをインストールする:
  • GPUバージョンインストール:pip install mxnet-cu 90
  • CPUバージョンインストール:pip install mxnet
  • 4、scipyバージョンが1.2であることを保証する:pip install scipy==1.2
    5、opencvのインストール:opencvのインストール:pip install opencv-python
    6、sklearnのインストール:pip install scikit-learn
    7、easydictのインストール:pip install easydict
    8、skimageのインストール:pip install scikit-image
    三、環境テスト
    (一)tensorflow環境テスト
    1、cpu環境テスト:xshellコマンドラインモードでpython環境に入り、「import tensorflow as tf」文を実行する
    2、gpu環境テスト:
    ### GPU 
    
    import tensorflow as tf
    
    with tf.device('/cpu:0'):
        a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
        b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
    
    with tf.device('/gpu:1'):
        c = a+b
    print(c)
    
    sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))
    sess.run(tf.global_variables_initializer())
    print(sess.run(c))
    
    

     
    (二)mxnet環境テスト
    import mxnet as mx
    from mxnet import nd
    from mxnet.gluon import nn
    
    mx.cpu(), mx.gpu(), mx.gpu(0)
    
    a = nd.array([1, 2, 3], ctx=mx.gpu())