Was tun, falls AlexNet als Basis verwendet wird, aber weniger Kategorien verwendet werden? Beispiel Kategorien 1,000 auf 240
However, because the problem is of a much smaller magnitude than that of the ImageNet Challenge , we scaled down the number of kernel mappings in all of the convolutional layers to half
Wir brauchen ja ggf. Zugriff auf die internen Netzparameter und da bietet sich das Python Interface an. Als Beispiel sei hier die Extraktion von fc8, also dem Softmax-Layer gegeben:
W = W.data.reshape1), b = b.data.reshape2)
Zauberkasten für kleine Machine Learner.
da GPUs nur float32 können und float64 aber per Default auf modernen CPUs ist, sollte folgende Einstellung in der .theanorc gesetzt werden
[global] floatX = float32
Gegebenenfalls ist es deshalb notwendig, gespeicherte Dateien zu “casten”, also beispielsweise:
X = np.load('/some/path/data.npy').astype('float32')
D.h., da die GPU die Genauigkeit vorgibt, wird an keiner Stelle mehr von float64 profitiert und sollte generell vermieden werden, da ja potenziell alles auf der GPU laufen kann. Weiterhin spart float32 erheblichen Platz bei Daten und Modellen.
Enthält Millionen von Bugfixes und Support for cuDNN für die schnelle Faltung. Bei Tests mit mnist war der neue Code 50% schneller. Auf grapu ist cuDNN global installiert und wird von Theano automatisch verwendet. Soll dies nicht geschehen, bzw. explizit geschehen, kann man es wie folgt deaktivieren/aktivieren:
THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32,optimizer_excluding=conv_dnn THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32,optimizer_including=cudnn
Bei der neuen Version handelt es sich um RC2. Tests auf grapu laufen gerade. Bzgl. Stabilität war Theano bisher immer vorbildlich.
Ein lokales Paket upgraden, egal ob global das Paket installiert ist. Keine Abhängigkeiten und eine bestimmte Version:
$ pip install --user --upgrade --no-deps --ignore-installed Theano==0.7.0rc2
Welche GPUs sind vorhanden?
$ nvidia-smi
Und dann die Theano-Flags entsprechend setzen:
$ export THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX $ export THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX
AlexNet in purem Theano https://github.com/uoguelph-mlrg/theano_alexnet
Der junge Mann muss auf jeden Fall in die Gruppe “video”, sonst läuft da gar nichts.
Prüfung ob eine Festplatte einen Knacks hat:
$ sudo smartctl -a /dev/sda #status ausgeben
Steht da nicht PASSED, droht Datenverlust. Aber die Interpretation erfordert etwas mehr Aufwand, als das.
Nach einem neuen Kernel heißt es einmal den Display-Manager (Annahme: “lightdm”) killen und das neue Modul bauen. Auf grap* ist CUDA 7.5 installiert, da sehen die Aufrufe wie folgt aus:
$ sudo su $ cd /root/cuda [ggf.] $ /etc/init.d/lightdm stop [1. Variante] $ service lightdm stop [2. Variante] $ sh ./cuda_7.5.18_linux.run --driver --silent $ modprobe nvidia $ nvidia-smi
Sollte keine Fehler ausgeben.
1) 1000, 4096
2) 1, 1000