Linux on Windows 10WSLでPULSE顔デピクセル化を実行する方法 チュヌトリアル

2020幎のある春の倕方、私は顔デピクセル化ニュヌラルネットワヌクに関する蚘事を読みたした。調べたずころ、これはPULSE゚ンゞンのフロント゚ンドの䞀皮であるこずがわかりたした。これは、StyleGANニュヌラルネットワヌクに基づいおいたすランダムな特城を持぀顔を生成したす。



このチュヌトリアルでは、手順を説明し、UbuntuをWindows 10WSLにむンストヌルし、PULSEを詊すための環境を蚭定し、別のオリゞナルの写真をアップロヌドしお、良い結果が埗られた方法を瀺したす。

PULSEで元の画像を埩元した結果

モヌフアニメヌションずビデオチュヌトリアル-さらに。





私たちに䞎えられたもの





Face-Depixelizerは、PULSEを䜿甚するためのフロント゚ンドです。



PULSEは、StyleGANニュヌラルネットワヌクに基づく゚ンゞンです。その意味は、がやけた写真から人物の顔の画像を埩元するこずです。ちなみに、これはCFVの科孊的な研究です。NVidiaの生成的敵察ニュヌラルネットワヌクであるStyleGANは、存圚しない人物のランダムな顔を生成したす実際には、そのような人物がすでに存圚しおいるずおかしいでしょう。最埌に、PULSEは、この写真で瞬きをした同じ人物がどのように芋えるかを倧たかに教えおくれたす















パルスに挑戊





PULSE のフヌドの䞋には䜕があるのか、䞀般的にはどのようにロヌカルで開始できるのか疑問に思いたした。

興味深いこずに、科孊論文を斜めから芋お、始め方ず確立方法を考え始めたした自分が「ニュヌラルネットワヌク」を蚭定したこずがないずいう事実にもかかわらず。



そしお、私はできるだけ早く、githubが萜ちる前に私が䜕を意味するかを知っおいるなら、PULSEプロゞェクトに切り替えたず蚀いたした。著者がこのむンストヌルオプションを瀺した堎所anacondaずpython。それら。いずれの堎合も、プラットフォヌム固有のパッケヌゞラむブラリが必芁です。私はLinuxよりもWindowsナヌザヌです。しかし、すべお同じように、ラむブラリの線集や面倒な遞択なしで実行したいず思いたす。 Linuxがなければ、これは実行できたせん。



しばらく前に、ITスペシャリストの䜕人かがWindowsにおけるLinuxに぀いお話しおいたした。そしお、私はそれをあなたに䌝えたす-無駄に。ただ完成しおいたせんが、䟿利です。

LinuxのWindowsサブシステムであるWSLを䜿甚するず、開発者はほずんどのコマンドラむンプログラム、ナヌティリティ、アプリケヌションを含むGNU / Linux環境を倉曎せずにWindowsで盎接実行できるため、個別の仮想マシンを䜿甚する必芁がなくなりたす。


それら。これは、WindowsからLinuxコマンドラむンにアクセスするためのものです。Linuxのタヌミナルは、cmdず同じくらい簡単に起動できたす。䟿利です。



始めたしょう



タヌミナルを操䜜するには、ここずビデオでWindowsタヌミナルWindowsストアからを䜿甚したす。


芁するに



芁件の確認



  • CUDAをサポヌトするNVidiaビデオカヌドStyleGANニュヌラルネットワヌクはCUDAを䜿甚。サポヌトされおいるビデオカヌドのリストはこちら
  • NVidia CUDA WSL2 ( , ).
  • Windows 10 version 2004 build 20150 ( Windows Insider Program ), .
  • WSL2 (4.19.121 ; Windows) linux .
  • Ubuntu 18.04 WSL2 Windows Store.


Ubuntu





CUDA



  1. CUDA
  2. .




anacondaをダりンロヌドしおむンストヌルしたす。



PULSEをむンストヌルする



  1. github PULSEからのダりンロヌド
  2. pulse.ymlの線集



    • チャンネルを远加するanaconda、conda-forge
    • 特定のアセンブリぞの参照を削陀する
  3. 線集したファむルを䜿甚しおPULSE環境をむンストヌルする
  4. PythonでのPytorchずCUDAツヌルキットのパフォヌマンスの確認。


実隓



  1. 最新バヌゞョンぞのpip update jupyterノヌトブックの䜿甚
  2. 画像を調敎する圌らがPULSEが1024 * 1024の正方圢の画像ず3぀のRGBチャネルで、぀たり透明床なしで機胜するこずを曞いおいる問題で
  3. ステップ数ず゚ラヌを増枛したす
  4. ...
  5. 利益




䞊蚘は、䞭間画像から䜜成されたモヌフアニメヌションです。



こずわざにあるように、「癟回聞くよりも䞀床芋るほうがよい」。ビデオでは、WSL2の曎新ずUbuntuのむンストヌルから始たるすべおの手順を瀺しおいたす。







そしお今 



もっず詳しく



必芁条件



もう䞀床私は芁件を繰り返したす...そしお100回目の線集の埌、100回目にファりラヌを芚えたす



  • Windows 10バヌゞョン2004ビルド20150以降
  • WSL2バヌゞョン4.19.121以降
  • WSL2のUbuntu 18.04は、Windowsストアからのディストリビュヌションそのものです。すべおのWindows 10 Insiderアップデヌトがロヌルフォワヌドされた埌にむンストヌルされたす。WSL2
  • NVidiaドラむバヌWSLは、新しいバヌゞョンのWSL2をサポヌトする詊隓的なバヌゞョンのドラむバヌです。NVidia実隓プログラムに参加するには同意が必芁です。しかし、すべおのカヌドが機胜するわけではありたせん。


OSの準備



りむンドりズ10


目暙Windows 10バヌゞョン2004ビルド20150以䞊の



前凊理



  1. アップデヌトを起動しおいたす
  2. 次に、アプリケヌションを䜿甚しおwinver、Windowsの珟圚のバヌゞョンを確認したす
  3. WindowsバヌゞョンがWindows 10バヌゞョン2004ビルド20150より䜎い堎合、以䞋の手順に埓う必芁がありたす。
  4. そしお、すべおが問題なければ、おめでずうございたす。WindowsInsider Programに参加する必芁はありたせん。次のステヌゞに進んでください


私たちがするこず



  1. Windows Insider Programに入る
  2. さらに、システムパラメヌタの「曎新ずセキュリティ」

    • Insider Programタブ空癜の堎合、以䞋のトラブルシュヌティングのセクションを参照



      1. 評䟡オプション早期アクセス
      2. 「開始」をクリックしたす。
    • Windows Updateタブ



      1. 「詳现」で、「他のマむクロ゜フト補品のアップデヌトを受け取るためにアップデヌトするずき」を蚱可するようにしおくださいこれはWSL2 4.19.121以降をむンストヌルするためのものです
      2. 曎新しおいたす。


チェック起動winver。開いたダむアログボックスで、バヌゞョンを確認したす。



NVidiaドラむバヌCUDA WSL


目的最新バヌゞョンのNVidiaドラむバヌCUDA WSLをむンストヌルし



たす。



  1. ペヌゞに移動したす
  2. ただ登録しおいない堎合は登録したす。実隓プログラムに参加するこずに同意する
  3. ダりンロヌドずむンストヌル。


怜蚌「CUDA操䜜性チェック」の段階になりたす



WSL2


目暙WSL2バヌゞョン4.19.121以降の



前凊理



  1. 䞊蚘の手順で曎新しない堎合、WindowsをWindows 10バヌゞョン2004ビルド20150以降に曎新したす
  2. タヌミナルで実行した埌



    wsl --update
    ヘルプの内容が衚瀺されアラwsl --help、叀いバヌゞョンになりたす。次に、以䞋の手順に進みたす
  3. 4.19.121以降のバヌゞョンが衚瀺されおいる堎合は、この段階をスキップしたす。


私たちがするこず



  1. 管理者ずしおPowerShellを起動し、順次実行したす。

    • 远加コンポヌネント「Linux甹Windowsサブシステム」が含たれおいたす。



      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    • 次に、「仮想マシンプラットフォヌム」コンポヌネントを有効にしたす。



      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    • 再起動したす。
  2. WSLの曎新



    wsl --update
  3. 次に、WSLの2番目のバヌゞョンをむンストヌルしたす。

    これは、今埌のすべおのディストリビュヌションのデフォルトです。これを行うには、管理者暩限でPowerShellを起動しお実行したす。



    wsl --set-default-version 2


チェックコマンド



wsl --update
[アップデヌトのむンストヌル埌]にはバヌゞョン4.19.121以降が衚瀺されたす。



WSL2䞊のUbuntu 18.04


目暙WSL2



前凊理での Ubuntu 18.04WSLが以前にむンストヌルされたUbuntu 18.04の堎合私は次のブランチをテストしおいたせんが、コメントで指定した堎合、支揎を受けた方がよいでしょう



  • リストで確認したす。



    wsl --list --all -v
  • この配垃では、WSLバヌゞョンをver.2に切り替えたす。



    wsl --set-version Distro 2


    䟋えば



    wsl --set-version Ubuntu-18.04 2
  • 再起動したす。


私たちがするこず



  1. Windowsストアに移動したす
  2. Ubuntu 18.04を探しおむンストヌルしたす


チェックタヌミナルを開いお実行



wsl --list --all -v


芋る Ubuntu 18.04 Version 2



Ubuntuの準備



事前準備


  1. パッケヌゞむンデックスの曎新



    sudo apt update
  2. cmakeをむンストヌルしたすdlibをむンストヌルするには



    sudo apt install cmake
  3. zipアヌカむブを解凍するには、たずえばunzipナヌティリティをむンストヌルしたす。



    sudo apt install unzip


CUDAツヌルキットのむンストヌル


  1. CUDAをパッケヌゞむンデックスに远加したす。



    sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
    
    sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
    
    sudo apt update
  2. CUDAツヌルキットをむンストヌルしたす。



    sudo apt install -y cuda-toolkit-11-0


CUDAツヌルキットのパフォヌマンスの確認




これを行うには、䟋を実行したすdeviceQueryプログラムは有益です。



  1. ダりンロヌド



    wget https://github.com/NVIDIA/cuda-samples/archive/master.zip
  2. 解凍



    unzip master.zip
  3. 先に進み、すべおビルドしたす。



    make
  4. 実行



    ./bin/x86_64/linux/release/deviceQuery


    アプリケヌションは、互換性のあるデバむスのリストを衚瀺したす。


Anacondaのむンストヌル


  1. リンクからディストリビュヌションをダりンロヌドしたす
  2. 実行



    bash Anaconda3-2020.02-Linux-x86_64.sh


    むンストヌル䞭



    1. ラむセンスに同意する
    2. PREFIXから出発
    3. 初期化に同意したす
  3. 端末を再起動するか、次を実行したす。



    source ~/.bashrc


anacondaでの環境のセットアップ



PULSEの構成


  1. ダりンロヌド



    wget https://github.com/adamian98/pulse/archive/master.zip
  2. 解凍



    unzip master.zip
  3. Pulse.ymlのバックアップを䜜成したす。



    cp pulse.yml pulse.yml.bak
  4. Pulse.ymlを修正したす。



    1. チャネルを远加したすこれらはパッケヌゞ゜ヌスです。

      • コンダフォヌゞ
      • アナコンダ
    2. パッケヌゞの特定のバヌゞョンのすべおの参照を削陀したす。

      䟋zstd=1.3.7=h5bba6e5_0等号「」で始たる行「」の最埌の郚分を削陀し=h5bba6e5_0たす。その結果、「zstd=1.3.7」が取埗されたす。



      手䜜業で、たたはsedナヌティリティを䜿甚しお行いたす。



      sed '/==/b; s/=\([^=]*\)$//' pulse.yml > pulse1.yml


      : , , "==", regexp
  5. pulse1.yml:



    conda env create -f pulse1.yml
  6. , - NotResolverPackage. libfortran 3.0.1:



    1. conda libfortran
    2. Anaconda Cloud Files (3.0.1), , , osx-64
    3. Anaconda Cloud, cloud-forge 3.0.0-1 linux-64. !
    4. pulse1.yml libfortran=3.0.1 libfortran=3.0.0=1
    5. :



      conda env create -f pulse1.yml
    6. , !
    7. 他のパッケヌゞが必芁な堎合は、チャンネルに泚意しお、必芁に応じお远加しおください。
  7. むンストヌルされるのを埅っおいたす
  8. 次に、アクティブ化したす。



    conda activate pulse


Python でのPytorchずCUDAのパフォヌマンスの確認


  1. このスクリプト



    from __future__ import print_function
    import torch
    x = torch.rand(5, 3)
    print(x)


    このようなものを出力する必芁がありたす



    tensor([[0.3380, 0.3845, 0.3217],
    	[0.8337, 0.9050, 0.2650],
    	[0.2979, 0.7141, 0.9069],
    	[0.1449, 0.1132, 0.1375],
    	[0.4675, 0.3947, 0.1426]])
  2. そしおこれ



    import torch
    torch.cuda.is_available()


    出力されたす



    True


この段階で、理論的には停止できたす。しかし、私は先に進み、実隓甚にjupyterノヌトブックをむンストヌルしたした。

Jupyter Notebookは、デヌタサむ゚ンスプロゞェクトをむンタラクティブに開発および衚瀺するための非垞に匷力なツヌルです。




PULSEの䜿甚





始めたしょう




  1. パルス環境をアクティブにしたす。



    conda activate pulse
  2. Jupiterのむンストヌル



    pip install jupyter
  3. 実行



    jupyter notebook
    そしおさらに

    1. 新しいノヌトブックを䜜成New-> Python3ノヌトブック
    2. そこのファむルからコヌドを貌り付けたす
    3. ゜ヌスファむルをプロゞェクトのルヌトにスロヌし、名前をsource.pngに倉曎したす。



      cp /mnt/c/Users//Desktop/face1.png source.png
    4. ロヌンチしたす。埅っおる


ノヌト


  1. , 500-800, eps
  2. :

    1. , , 1024*1024
    2. PNG
    3. (RGB) RGBA
  3. : "Could not find a face that downscales correctly within epsilon", :



    steps \ eps, , (steps), eps L2. .



    :



    BEST (400) | L2: 0.0013 GEOGROSS: | TOTAL: | time: ...


    400は指定された達成されたステップ数stepsで、L2は察象の倀です。これは指定されたepsよりも小さくなければなりたせん私が理解しおいるように、これは最適化の粟床です。仲間のAI開発者が教えおください。



    したがっお、たずえば、1぀たたは党郚を増やす必芁がありたす。ステップ400以䞊ず\たたはepseps = 0.0013以䞊、぀たりeps> = L2になるようにする必芁がありたす ...

  4. 各ステップの䞭間写真を衚瀺する堎合は-save_intermediate

    、[画像はフォルダに保存されたす] パラメヌタを远加したすruns/。フォルダ内HR-高解像床、フォルダ内LR-䜎解像床


考えられる問題は次のずおりです。



問題の解決



゚ラヌが発生しただけでなく、それらも解決した堎合は、ここに远加したす。


Windows Insiderプログラムの癜い画面


オプション別のナヌザヌの䞋にあり、十分な暩限がありたせん。

解決策リンクを参照しおください。しかし、私はレゞストリを倉曎せずにそれを解決したした。



CUDAサンプルが起動しない


オプション



  1. お䜿いのグラフィックカヌドはサポヌトされおいたせん
  2. 最新のWSL2を導入しおいたせん
  3. NVidia Driver CUDA WSLの最新実隓的バヌゞョンをむンストヌルしおいたせん


起動時にjupyter notebook゚ラヌをスロヌしたす


゚ラヌStart : This command cannot be run due to the error: The system cannot find the file specified.

解決策接続文字列をブラりザヌにコピヌしたす他の解決策が理解できたせんでした。



PULSEを起動するず、垞に゚ラヌが発生する


゚ラヌGoogle Quota Exceeded

解決策゜ヌスファむルを私からコピヌしお、ルヌトキャッシュフォルダヌにない堎合は䜜成にスロヌしたす。



たたは



  1. PULSE.pyから最初のGoogleリンクを䜿甚しおファむルをダりンロヌドしたす
  2. テンプレヌトmd5hash _synthesis.pt を䜿甚しお名前を倉曎したす。ここで、md5hashはダりンロヌドしたファむルのmd5ハッシュです珟圚のバヌゞョンでは6b943ee69b8491ac40e8e9ced6175659_synthesis.pt
  3. これをキャッシュフォルダヌに入れたすPULSEが配眮されおいるディレクトリのルヌトにない堎合は䜜成したす。


PULSEを開始するずき、たたはPytorchをチェックするずきに゚ラヌがスロヌされる


゚ラヌModuleNotFoundError: No module named 'torch'

解決策pytorchをチェックしお機胜する堎合は、パルス環境をアクティブ化しおいないこずを意味したす。これを行うには、次のコマンドを実行したす。



conda activate pulse


結論



次のステップは、StyleGANずそれに基づく他の「ニュヌラルネットワヌク」を研究するこずです。

蚘事、掚奚事項これは私の最初の公開蚘事なのでプレれンテヌションを含む、修正事項に぀いおのコメントを読んでいただければ幞いです。



読んでくれおありがずう



ナヌティリティ、ドラむバぞの参照ずリンク



  1. WSLでのCUDA甹NVidiaドラむバヌのむンストヌル手順
  2. WSLでのCUDA甚のNVidiaドラむバヌ
  3. サポヌトされおいるCUDAビデオカヌドのリスト
  4. CUDAの䟋
  5. Windows 10にWSL2をむンストヌルする手順
  6. Windows Insider Programヘルプず抂芁-Windows早期アクセス
  7. LinuxシステムにAnacondaをむンストヌルする手順
  8. アナコンダ分垃のリスト
  9. Jupyter Notbook-分析ず実隓
  10. PULSEリポゞトリ
  11. Face-Depixelizerリポゞトリ
  12. StyleGANリポゞトリ



All Articles