C'est la procédure pour démarrer jupyter à partir de la prochaine fois. Nous avons préparé une version simplifiée, nous vous serions reconnaissants de bien vouloir vous y référer.
[Note] Ordre d'exécution Plaid ML Keras
machine | MacBook Air(Retina, 13-inch,2019) |
OS | MacOS Catalina version 10.15.4 |
Mémoire | 8 GB 2133 MHz LPDDR3 |
graphique | Intel UHD Graphics 617 1536 MB |
module | version |
---|---|
Keras | 2.2.4 |
plaidml | 0.7.0 |
plaidml-keras | 0.7.0 |
plaidbench | 0.7.0 |
machine | MacBook (Retina, 12-inch, 2017) |
OS | MacOS Catalina version 10.15.4 |
Mémoire | 8 GB 1867 MHz LPDDR3 |
graphique | Intel HD Graphics 615 1536 MB |
module | version |
---|---|
Keras | 2.2.4 |
plaidml | 0.7.0 |
plaidml-keras | 0.7.0 |
plaidbench | 0.7.0 |
Le nombre de contenus pouvant être utilisés pour étudier gratuitement l'apprentissage automatique dans GW a augmenté et j'ai décidé d'essayer le système de traitement d'image d'apprentissage automatique que je voulais faire à l'origine. Je n'ai pas de machine avec des spécifications élevées dont je suis fier, et comme je l'ai écrit dans l'environnement d'exécution, l'environnement d'exécution est MacBook, donc si vous ne pouvez pas utiliser le GPU ** NVIDIA **, placez-le sur votre PC. C'est un fardeau, mais cela prend beaucoup de temps. J'ai senti la limite de l'apprentissage avec le processeur seul, alors j'ai essayé d'implémenter PlaidML, qui, selon la rumeur, pourrait apprendre à utiliser le GPU même avec MacBook.
Je me suis principalement référé à GitHub of Plaid ML.
PlaidML est un cadre pour les bibliothèques de calculs mathématiques scientifiques développé par Intel et d'autres.
Les cadres de bibliothèques de calculs mathématiques scientifiques supportés par Keras en standard incluent tensorflow
et Theano
.
Ces bibliothèques n'étaient prises en charge que sur les GPU NVIDIA lors de la tentative d'utilisation du GPU (graphique) du PC.
Sur les Mac équipés de GPU AMD, il n'était pas possible de calculer à l'aide du GPU.
Cependant, ce PlaidML n'est pas lié au fait d'être fait par NVIDIA, c'est un module pour permettre l'utilisation du GPU, et c'est un module adopté comme cadre du back-end de Keras. Dans cette implémentation, nous installerons PlaidML sur ce backend Keras.
** Apprentissage automatique sur Mac à l'aide de GPU ** à propos de ça.
PlaidML Github QuickStart Link QuickStar construit un environnement virtuel en utilisant «virtualenv», mais je ne l'ai pas fait. Il n'y a pas de raison particulière.
module_install
pip3 install plaidml-keras plaidbench
pip3 install keras
Configurez PlaidML. Configurez s'il faut calculer à l'aide du CPU ou du GPU dans PlaidML.
plaidml-setup
plaidml-setup
J'ai procédé selon Quick Start, mais j'ai eu une erreur ici. La déclaration d'erreur est la suivante.
error
Traceback (most recent call last):
File "/usr/local/bin/plaidml-setup", line 5, in <module>
from plaidml.plaidml_setup import main
File "/usr/local/lib/python3.7/site-packages/plaidml/__init__.py", line 50, in <module>
import plaidml.settings
File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 33, in <module>
_setup_config('PLAIDML_EXPERIMENTAL_CONFIG', 'experimental.json')
File "/usr/local/lib/python3.7/site-packages/plaidml/settings.py", line 30, in _setup_config
'Could not find PlaidML configuration file: "{}".'.format(filename))
plaidml.exceptions.PlaidMLError: Could not find PlaidML configuration file: "experimental.json".
GitHub a déjà discuté de cette erreur. Si vous êtes intéressé, jetez un œil. plaidml.exceptions.PlaidMLError: Could not find PlaidML configuration file: "experimental.json". #370
En conclusion, Puisqu'il y avait une Conclusion qu'une erreur s'est produite parce que le PATH n'a pas réussi, définissez le PATH décrit. .. Exécutez à nouveau ʻexport` et confirmez que l'ensemble PATH est en place ...
PATH
export PLAIDML_NATIVE_PATH=/usr/local/lib/libplaidml.dylib
export RUNFILES_DIR=/usr/local/share/plaidml
export
Exécutez à nouveau la configuration
plaidml-setup
plaidml-setup
~~
Enable experimental device support? (y,n)[n]:y #Sélectionnez y
Multiple devices detected (You can override by setting PLAIDML_DEVICE_IDS).
Please choose a default device:
1 : llvm_cpu.0
2 : opencl_intel_uhd_graphics_617.0
3 : metal_intel(r)_uhd_graphics_617.0
Default device? (1,2,3)[1]:3 #Les deux derniers sont des GPU, cette fois, sélectionnez le graphique 3
~~
#S'il faut enregistrer le résultat de cette sélection
Save settings to /Users/linda/.plaidml? (y,n)[y]:y #Sélectionnez y
PlaidML Setup (0.7.0)
Thanks for using PlaidML!
The feedback we have received from our users indicates an ever-increasing need
for performance, programmability, and portability. During the past few months,
we have been restructuring PlaidML to address those needs. To make all the
changes we need to make while supporting our current user base, all development
of PlaidML has moved to a branch — plaidml-v1. We will continue to maintain and
support the master branch of PlaidML and the stable 0.7.0 release.
Read more here: https://github.com/plaidml/plaidml
Some Notes:
* Bugs and other issues: https://github.com/plaidml/plaidml/issues
* Questions: https://stackoverflow.com/questions/tagged/plaidml
* Say hello: https://groups.google.com/forum/#!forum/plaidml-dev
* PlaidML is licensed under the Apache License 2.0
Default Config Devices:
llvm_cpu.0 : CPU (via LLVM)
metal_intel(r)_uhd_graphics_617.0 : Intel(R) UHD Graphics 617 (Metal)
Experimental Config Devices:
llvm_cpu.0 : CPU (via LLVM)
opencl_intel_uhd_graphics_617.0 : Intel Inc. Intel(R) UHD Graphics 617 (OpenCL)
metal_intel(r)_uhd_graphics_617.0 : Intel(R) UHD Graphics 617 (Metal)
Using experimental devices can cause poor performance, crashes, and other nastiness.
Enable experimental device support? (y,n)[n]:y
Multiple devices detected (You can override by setting PLAIDML_DEVICE_IDS).
Please choose a default device:
1 : llvm_cpu.0
2 : opencl_intel_uhd_graphics_617.0
3 : metal_intel(r)_uhd_graphics_617.0
Default device? (1,2,3)[1]:3
Selected device:
metal_intel(r)_uhd_graphics_617.0
Almost done. Multiplying some matrices...
Tile code:
function (B[X,Z], C[Z,Y]) -> (A) { A[x,y : X,Y] = +(B[x,z] * C[z,y]); }
Whew. That worked.
Save settings to /Users/linda/.plaidml? (y,n)[y]:y
Success!
Ensuite, comparons les performances d'inférence de MobileNet.
plaidbench keras mobilenet
Running 1024 examples with mobilenet, batch size 1, on backend plaid
INFO:plaidml:Opening device "metal_intel(r)_uhd_graphics_617.0"
Compiling network...INFO:plaidml:Analyzing Ops: 266 of 413 operations complete
Warming up... Running...
Example finished, elapsed: 2.280s (compile), 32.101s (execution)
-----------------------------------------------------------------------------------------
Network Name Inference Latency Time / FPS
-----------------------------------------------------------------------------------------
mobilenet 31.35 ms 0.00 ms / 1000000000.00 fps
Correctness: PASS, max_error: 6.440454399125883e-06, max_abs_error: 5.811452865600586e-07, fail_ratio: 0.0
Deuxième ligne à partir du haut ʻINFO: plaidml: Dispositif d'ouverture "metal_intel (r) _uhd_graphics_617.0" ` Vous pouvez voir que l'accélérateur que vous avez configuré est en cours de benchmark.
En fait, le réglage lui-même est terminé jusqu'à présent, mais vérifions si le back-end de Keras est vraiment changé en PlaidML.
Démarrez jupyter
sur un terminal via ce PATH etc.
<détails>
Sur Jupyter
import plaidml.keras
plaidml.keras.install_backend() #Définir sur le backend
import keras
print(keras.backend.backend()) #Vérification du back-end de Keras
>>> tensorflow
Le backend keras reste tensorflow.
Pour définir Plaidml comme backend de keras,
python
plaidml.keras.install_backend() #Définir sur le backend
Au lieu de cela, vous devez définir le PATH à définir sur le backend.
python
export KERAS_BACKEND=plaidml.keras.backend
Si vous cochez après avoir défini ce PATH ...
#### **`python`**
```python
import keras
print(keras.backend.backend())
>>>plaidml.keras.backend
Vous pouvez voir qu'il a été modifié.
#finalement J'aimerais étudier le système d'analyse d'images dans le futur.
#Littérature liée Rêver de NVIDIA~ PlaidML ~
Recommended Posts