Dies ist das Verfahren zum Starten von jupyter ab dem nächsten Mal. Wir haben eine vereinfachte Version vorbereitet, daher würden wir uns freuen, wenn Sie darauf verweisen könnten.
[Hinweis] Plaid ML Keras-Ausführungsreihenfolge
machine | MacBook Air(Retina, 13-inch,2019) |
OS | MacOS Catalina version 10.15.4 |
Erinnerung | 8 GB 2133 MHz LPDDR3 |
Grafik | 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 |
Erinnerung | 8 GB 1867 MHz LPDDR3 |
Grafik | 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 |
Die Anzahl der Inhalte, die zum kostenlosen Lernen von maschinellem Lernen in GW verwendet werden können, hat zugenommen, und ich habe beschlossen, das maschinelle Lernen des Bildverarbeitungssystems auszuprobieren, das ich ursprünglich durchführen wollte. Ich habe keinen Computer mit hohen Spezifikationen, auf den ich stolz bin, und wie ich in der Ausführungsumgebung geschrieben habe, ist die Ausführungsumgebung MacBook. Wenn Sie also die GPU ** NVIDIA ** nicht verwenden können, legen Sie sie auf Ihren PC. Es ist eine Belastung, aber es braucht viel Zeit. Ich spürte die Grenze des Lernens mit der CPU allein und versuchte, PlaidML zu implementieren, das angeblich auch mit dem MacBook mit der GPU lernen kann.
Ich bezog mich hauptsächlich auf GitHub of Plaid ML.
PlaidML ist ein Framework für wissenschaftliche mathematische Berechnungsbibliotheken, die von Intel und anderen entwickelt wurden. Zu den von Keras standardmäßig unterstützten Frameworks wissenschaftlicher mathematischer Berechnungsbibliotheken gehören "Tensorflow" und "Theano". Diese Bibliotheken wurden nur auf NVIDIA-GPUs unterstützt, wenn versucht wurde, die GPU (Grafik) des PCs zu verwenden. Es war nicht möglich, mit der GPU auf einem Mac mit einer AMD-GPU zu rechnen.
Dieses Plaid ML ist jedoch nicht an NVIDIA gebunden, sondern ein Modul zur Ermöglichung der Verwendung von GPU und ein Modul, das als Framework für das Back-End von Keras verwendet wird. In dieser Implementierung werden wir PlaidML auf diesem Keras-Backend einrichten.
** Maschinelles Lernen auf einem Mac mit GPU ** darüber.
PlaidML Github QuickStart Link QuickStar erstellt eine virtuelle Umgebung mit "virtualenv", aber ich habe es nicht getan. Es gibt keinen besonderen Grund.
module_install
pip3 install plaidml-keras plaidbench
pip3 install keras
Richten Sie PlaidML ein. Legen Sie fest, ob in PlaidML mit CPU oder GPU berechnet werden soll.
plaidml-setup
plaidml-setup
Ich bin gemäß Schnellstart vorgegangen, habe hier jedoch einen Fehler erhalten. Die Fehleranweisung lautet wie folgt.
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 hat diesen Fehler bereits besprochen. Wenn Sie interessiert sind, schauen Sie bitte. plaidml.exceptions.PlaidMLError: Could not find PlaidML configuration file: "experimental.json". #370
Abschließend, Da es eine Schlussfolgerung gab, dass ein Fehler aufgetreten ist, weil der PATH nicht bestanden wurde, setzen Sie den beschriebenen PATH. .. Führen Sie "export" erneut aus und überprüfen Sie, ob der festgelegte Pfad vorhanden ist ...
PATH
export PLAIDML_NATIVE_PATH=/usr/local/lib/libplaidml.dylib
export RUNFILES_DIR=/usr/local/share/plaidml
export
Führen Sie das Setup erneut aus
plaidml-setup
plaidml-setup
~~
Enable experimental device support? (y,n)[n]:y #Wählen Sie 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 #Die beiden unteren sind GPUs. Wählen Sie diesmal Grafik 3 aus
~~
#Gibt an, ob das Ergebnis dieser Auswahl gespeichert werden soll
Save settings to /Users/linda/.plaidml? (y,n)[y]:y #Wählen Sie 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!
Lassen Sie uns als Nächstes die Inferenzleistung von MobileNet vergleichen.
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
Zweite Zeile von oben INFO: plaidml: Öffnungsgerät" metal_intel (r) _uhd_graphics_617.0 "
Sie können sehen, dass der von Ihnen eingerichtete Beschleuniger einem Benchmarking unterzogen wird.
Eigentlich ist die Einstellung selbst bisher abgeschlossen, aber lassen Sie uns überprüfen, ob das Back-End von Keras wirklich in PlaidML geändert wurde.
Starten Sie "jupyter" auf einem Terminal über diesen Pfad usw.
Auf Jupiter
import plaidml.keras
plaidml.keras.install_backend() #Auf Backend setzen
import keras
print(keras.backend.backend()) #Überprüfen des Backends von Keras
>>> tensorflow
Das Keras-Backend bleibt Tensorflow.
Um Plaidml tatsächlich als Backend von Keras festzulegen,
python
plaidml.keras.install_backend() #Auf Backend setzen
Stattdessen müssen Sie den Pfad festlegen, der im Backend festgelegt werden soll.
python
export KERAS_BACKEND=plaidml.keras.backend
Wenn Sie nach dem Einstellen dieses Pfads überprüfen ...
#### **`python`**
```python
import keras
print(keras.backend.backend())
>>>plaidml.keras.backend
Sie können sehen, dass es geändert wurde.
#Schließlich Ich möchte das Bildanalysesystem in Zukunft studieren.
#Ähnliche Literatur Träume von NVIDIA~ PlaidML ~
Recommended Posts