Windows 10+GPU+Anaconda 3+Pytorch+TensorFlow+Keras構成方法

6108 ワード

補足:TensorflowがGPUのコードをサポートしているかどうかをテストします.
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))


配環境ということは本当によく見られるもので、packageの更新に伴い、これまでの配環境の経験が使えなくなったので、最近の配環境の曲がりくねった道を記録しておきます.
以前のブログWindows 10 GPU版Tensorflow構成チュートリアル+Anaconda 3+Jupyter Notebookは依然として使用できます.
#Windows 10+GPU+Anaconda 3+Pytorch+TensorFlow+Keras構成方法
最近では顔検出のためpytorchフレームワークに触れており,まず顔認識システムDface移植WIN 64環境詳細(GPU対応)を深く学習して配置した.しかし、このブロガーの経験も少し古く、私は彼のやり方では成功しなかった.成功した構成手順は、次のようにまとめられます.
####1.環境情報オペレーティングシステム:Windows 10 Anaconda 3バージョン:4.2.0 CUDAバージョン:8.0 cuDNNバージョン:5.1これらが既に構成されていると仮定し、なければWindows 10 GPU版Tensorflow構成チュートリアル+Anaconda 3+Jupyter Notebookを参照
####2.プロファイル(1)environment-win 64を準備する.yml Anaconda環境を作成するためのプロファイルをNotepad++で開き、ファイルの最初の行は自分の望むenvironment名を変更し、224行近くの3行のコードを切り取って別の場所に置くことができます.
- pytorch=0.3.0=py36_0.3.0cu80
- vc=14.1=h21ff451_0
- vs2017_runtime=15.4.27004.2010=0

次にymlファイルを保存します.主にcondaがこのいくつかのpackageをインストールするとPackageNotFoundError: Package not found xxxxと間違えて報告され、いっそ取り除かれ、結果は影響しません.環境構成が完了したら、conda list pip listで後の2つのpackageが存在するかどうかを確認できます.
(2)pytorch-0.3.0-py36_0.3.0cu80.tar.bz 2パスワード:8 u 21このファイルは(1)の最初のpackageです.
####3.正式なインストール
  • DOSでenvironment-win64.yml所在ディレクトリ
  • に入る.
  • conda環境conda env create -f environment-win64.yml
  • の構成
  • conda install numpy mkl cffi
  • DOSはpytorch-0.3.0-py36_0.3.0cu80.tar.bz2ファイル所在ディレクトリ
  • に入る.
  • ネットワーク接続を切断し、
  • ネットワークを切断する.
  • conda install –offline pytorch-0.3.0-py36_0.3.0cu80.tar.bz2

  • 期間中にエラーが発生し、○○packageがインストールに成功しなかった場合、activate は環境にpipまたはconda installで再インストールされます.現在のバージョン番号がインストールできない場合は、バージョンを変更してもいいです.
    ####4.テストインストール結果はコマンドラインにあります
    activate  
     python 
    import torch
    x = torch.Tensor([1.0])
    xx = x.cuda()
    print(xx)
    #cuDNN TEST
    from torch.backends import cudnn
    print(cudnn.is_acceptable(xx))
    
    Trueに戻るとGPU版のPytorchのインストールに成功したことを証明します
    ####5.GPU版TensorFlowをインストールする前にインストールしたpytorchはCUDA 8に依存する.0,これは我々がインストールしたGPU版tensorflowもCUDA版の要求を満たさなければならない.そうしないと、インストールが成功してもInternalError:failed to create session CUDA driver version is insufficient for CUDA runtime versionとエラーが発生する.
    2018-09-01 01:24:19.278049: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\core\common_runtime\direct_session.cc:168] Internal: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
    Traceback (most recent call last):
      File "", line 1, in 
      File "D:\Program Files\Anaconda3\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1509, in __init__
        super(Session, self).__init__(target, graph, config=config)
      File "D:\Program Files\Anaconda3\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 628, in __init__
        self._session = tf_session.TF_NewDeprecatedSession(opts, status)
      File "D:\Program Files\Anaconda3\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 473, in __exit__
        c_api.TF_GetCode(self.status.status))
    tensorflow.python.framework.errors_impl.InternalError: Failed to create session.
    
    D:\Anaconda3\envs\pytorch-gpu\Lib\site-packages\tensorflow\python\platform\build_info.pyでこのバージョンのTensorFlowで採用されているCUDAバージョンを表示できます
    msvcp_dll_name = 'msvcp140.dll'
    cudart_dll_name = 'cudart64_90.dll'
    cuda_version_number = '9.0'
    nvcuda_dll_name = 'nvcuda.dll'
    cudnn_dll_name = 'cudnn64_7.dll'
    cudnn_version_number = '7'
    

    これらのファイルが1つ欠けていると、ImportErrorのエラーが発生します.tensorflow==1.5.0以降のバージョンをインストールしてみます.サポートされているcudaは9.0です.そこで今回はtensorflow==1.2.0をインストールすることにしました.また、1.2.0版のtensorflowにはこのbuild_info.pyファイルはありません.
    コマンドラインでconda環境に入る
    activate pytorch-gpu
    pip install tensorflow-gpu==1.2.0
    

    インストール中にhtml5lib-0.9999999またはmarkdown=2.6.9のwheelがbuildできないなどのエラーが発生する可能性があります.私の方法はこのバージョンのwhlファイルをダウンロードして手動でインストールすることです.
    pip install xxx.whl
    

    Anacondaが持参したpipダウンロードwhlファイルで生成されたキャッシュは自動的にクリアされず、後で再利用するために必要なwhlを見つけることができます.この場所では、AppDataは非表示フォルダであることに注意してください.
    C:\Users\ \AppData\Local\pip\cache\wheels
    

    時々pipでpackageをインストールしてpip OSError: [Errno 28] No space left on deviceを報告して、それから私はC盤がもうすぐ彼にいっぱいになることを発見して、断固としていくつかcacheをクリアして、それでいいです.
    ####6.インストールKerasもバージョンの更新により、Kerasの古いバージョンと新しいバージョンが大きく異なり、通常はKeras-2.1.6以上でエラーが発生します.
    Traceback (most recent call last):
      File "models.py", line 24, in 
        model = NIH()
      File "models.py", line 19, in NIH
        model.add(Activation('softmax'))
      File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/models.py", line 522, in add
        output_tensor = layer(self.outputs[0])
      File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/engine/topology.py", line 619, in __call__
        output = self.call(inputs, **kwargs)
      File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/layers/core.py", line 304, in call
        return self.activation(inputs)
      File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/activations.py", line 29, in softmax
        return K.softmax(x)
      File "/home/eric/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 2963, in softmax
        return tf.nn.softmax(x, axis=axis)
    TypeError: softmax() got an unexpected keyword argument 'axis'
    

    インストールを選択しました
    pip install keras==2.1
    

    2つ目はバージョンの違いがもたらす問題がAバージョンのKeras訓練である.h 5モデルファイルはBバージョンにインポートできないかもしれませんが、今のところ良い方法は見えません.バージョンに合わせてから訓練するしかありません.そうしないと、失敗する危険があります.
    PS:tensorflowとCUDAバージョンのマッチングに関する研究は、この記事を見ることができます.