[PYTHON] Deep Learning Tutorial aus dem Umgebungsbau

Deep Learning ist heutzutage ein heißes Thema geworden.

"Ich möchte studieren, bin mir aber nicht sicher, was ich überhaupt tun kann ..."

Für solche Leute werden wir die Methode von der Umgebungskonstruktion bis zur Deep-Learning-Ausführung auf dem Mac vorstellen.

Python-Umgebungskonstruktion

Apropos maschinelles Lernen und tiefes Lernen, es ist Python. Bereiten Sie vorerst die Python-Umgebungskonstruktion vor. Zuerst installieren wir Python. Öffnen wir ein Terminal und führen es der Reihe nach aus.

Terminal


brew install pyenv
pyenv install anaconda3-4.0.0

Damit ist die Installation abgeschlossen.

Terminal


pyenv versions

Und Renn

* system (set by ~~~)
  anaconda3-4.0.0

Wenn anaconda3-4.0.0 so angezeigt wird, ist die Installation erfolgreich.

Als nächstes passieren Sie den Weg von Pyenv.

Terminal


echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

Das ist in Ordnung!

Als nächstes wechseln wir zu der Python-Version, die wir zuvor eingegeben haben.

Terminal


pyenv grobal anaconda3-4.0.0

Sie sollten erfolgreich gewechselt haben.

Terminal


python

Durch Eingabe des Terminals und Ausführung

Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:52:12)

Wenn Python 3.x.x usw. angezeigt wird, ist der Wechsel erfolgreich.

Keras Installation und Einstellungen

Als nächstes installieren wir Keras, das für sein Deep-Learning-Framework bekannt ist. Wenn Sie versuchen, tiefes Lernen von Grund auf neu zu erstellen, ist dies sehr aufwändig, aber mit Keras können Sie dies in 10 Zeilen tun.

Darüber hinaus werde ich auch eine Bibliothek einbinden, die das h5-Format zum Speichern der Lernergebnisse von Keras verarbeitet.

pip install h5py
pip install keras

Die Installation ist abgeschlossen. Nehmen Sie danach einige Einstellungen vor.

Terminal


mkdir ~/.keras
echo '{"epsilon": 1e-07, "floatx": "float32", "backend": "theano"}' >> ~/.keras/keras.json

[Tipps] Was ist Backend?

Sie können es überspringen und überhaupt lesen.

Übrigens ist es an der Wurzel von Deep-Learning-Algorithmen notwendig, mathematische Berechnungen durchzuführen. Tatsächlich wird die Bibliothek, die diese mathematische Berechnung durchführt, als Backend bezeichnet und von einer Bibliothek getragen, die sich von Keras unterscheidet. Sie können zwischen Theano und Tensorflow wählen. Theano wird gleichzeitig mit der Installation von Keras installiert.

Deep Learning Ausführung

Tut mir Leid, dich warten zu lassen. Lassen Sie uns sofort tief lernen.

keras_tutorial.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import keras

from keras.utils import np_utils
from keras.datasets import mnist
from keras.layers.convolutional import Convolution2D, MaxPooling2D
from keras.layers.core import Activation, Dense, Dropout, Flatten

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(-1, 28, 28, 1).astype('float32')/255
x_test = x_test.reshape(-1, 28, 28, 1).astype('float32')/255
y_train = np_utils.to_categorical(y_train, 10)
y_test = np_utils.to_categorical(y_test, 10)

model = keras.models.Sequential()
model.add(Convolution2D(nb_filter=20, nb_row=5, nb_col=5,
                        border_mode='valid',
                        input_shape=(28, 28, 1)))
model.add(Activation("relu"))
model.add(Convolution2D(nb_filter=15, nb_row=5, nb_col=5))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(10))
model.add(Activation("softmax"))
model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=['accuracy'])

model.fit(x_train, y_train,  batch_size=100, nb_epoch=3, verbose=1)

score = model.evaluate(x_test, y_test, show_accuracy=True, verbose=0)

print("test-accuracy: {}".format(score[1]))

model_json_str = model.to_json()
open('model.json', 'w').write(model_json_str)
model.save_weights('weights.h5')

Wenn die folgende Anzeige angezeigt wird, kann Deep Learning sicher gestartet werden.

Using Theano backend.
Epoch 1/3
 5100/60000 [=>............................] - ETA: 111s - loss: 1.2484 - acc: 0.5733

Überprüfen Sie die Ergebnisse des tiefen Lernens

Nun, ist das Lernen abgeschlossen? Wenn Sie fertig sind, sollten Sie ungefähr Folgendes sehen:

test-accuracy: 0.989

Dies bedeutet, dass eine Wahrscheinlichkeit von 98,9% besteht, dass die Zahlen anhand von Daten (Testdaten) identifiziert werden können, die sich vollständig vom Training unterscheiden.

Nachdem Sie nicht sicher sind, welche Zeichen beurteilt werden, führen Sie das folgende Skript aus.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import pylab
import keras

from keras.utils import np_utils
from keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_test = x_test.reshape(-1, 28, 28, 1).astype('float32')/255

model = keras.models.model_from_json(open('model.json').read())
model.load_weights('weights.h5')
model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=['accuracy'])

tests = x_test[:20]
labels = model.predict(tests, verbose=1)

for index, (image, label) in enumerate(zip(tests, labels)):
    pylab.subplot(4, 5, index + 1)
    pylab.axis('off')
    pylab.imshow(image.reshape(28, 28), cmap=pylab.cm.gray_r, interpolation='nearest')
    pylab.title(np.argmax(label))
pylab.show()

Hier wird das Lernergebnis von früher in model.json und weight.h5 gespeichert und neu geladen.

Ich denke, die Ergebnisse sind wie folgt. Es zeigt, welche Nummer für jede Nummer beurteilt wurde.

figure_1.png

Einführung

Was haben Sie gedacht.

Wie auch immer, ich habe das Skript für diejenigen veröffentlicht, die es trotzdem ausführen möchten.

Ich würde mich sehr freuen, wenn sich mehr Menschen dafür interessieren und anfangen würden, Deep Learning zu studieren.

Abschließend möchte ich das Einführungsbuch vorstellen.

[・ Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning](https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3 % 82% 89% E4% BD% 9C% E3% 82% 8BDeep-Learning-Python% E3% 81% A7% E5% AD% A6% E3% 81% B6% E3% 83% 87% E3% 82% A3 % E3% 83% BC% E3% 83% 97% E3% 83% A9% E3% 83% BC% E3% 83% 8B% E3% 83% B3% E3% 82% B0% E3% 81% AE% E7 % 90% 86% E8% AB% 96% E3% 81% A8% E5% AE% 9F% E8% A3% 85-% E6% 96% 8E% E8% 97% A4-% E5% BA% B7% E6 % AF% 85 / dp / 4873117585 / ref = pd_bxgy_14_2? _ Encoding = UTF8 & psc = 1 & refRID = 6D052QXCKJEGZ5ZY4HRV)

Dies ist ein Einführungsbuch in Form des Verständnisses der Theorie mit einer Implementierung in Python. Es wird für diejenigen empfohlen, die während des eigentlichen Programmierens verstehen wollen.

・ Deep Learning

Es gibt keine Implementierung und der Hauptinhalt ist die Theorie, aber sie wird auf ziemlich leicht verständliche Weise erklärt, selbst in dem Buch, in dem die Theorie geschrieben ist. Das Merkmal ist, dass es einen weiten Bereich von grundlegenden Inhalten bis zu aktuellen Methoden abdeckt.

Recommended Posts

Deep Learning Tutorial aus dem Umgebungsbau
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
Deep Learning von Grund auf neu
Realisieren Sie mit Docker und Vagrant die Umgebungskonstruktion für "Deep Learning von Grund auf neu"
Deep Learning von Grund auf 1-3 Kapitel
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 8 Memo
Ab Ubuntu 20.04 Einführung in die Umgebungskonstruktion
Microsoft Deep Learning Library "CNTK" Tutorial
Deep Learning / Deep Learning von Grund auf neu Kapitel 5 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 3 Memo
Deep Learning Memo von Grund auf neu gemacht
Tiefes Lernen
Deep Learning / Deep Learning von Null 2 Kapitel 6 Memo
Selbststudien-Memo "Deep Learning from Grund" (Nr. 15) TensorFlow-Anfänger-Tutorial
Verbessertes Lernen, um von null bis tief zu lernen
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 5]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 6]
Bildausrichtung: von SIFT bis Deep Learning
Erstellen einer Umgebung für Python und maschinelles Lernen (macOS)
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Umgebungskonstruktion für das MXNet-Tutorial (Gluon-Teil)
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
Deep Learning aus den mathematischen Grundlagen (während der Teilnahme)
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Django Umweltbau
DeepIE3D-Umgebungskonstruktion
Aufbau einer Linux-Umgebung
Deep Learning Memorandum
Umgebungskonstruktion (Python)
Django Umweltbau
CodeIgniter-Umgebungskonstruktion
Python-Umgebungskonstruktion
Python Deep Learning
Python - Umgebungskonstruktion
Deep Learning × Python
Golang Umweltbau
Erstellen Sie mit Cloud9 (jupyter miniconda python3) eine Lernumgebung für "Deep Learning von Grund auf neu".
Umgebungskonstruktion von word2vec
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
Vom Aufbau der Kivy-Umgebung bis zur Anzeige von Hello World
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
GitHub des guten Buches "Deep Learning von Grund auf neu"
Aufbau einer explosiven Python-Umgebung ab Null (Mac)