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.
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.
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
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.
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
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.
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.
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