[PYTHON] Selbststudien-Memo "Deep Learning from Grund" (Nr. 13) Verwenden Sie Google Colaboratory

Während ich "Deep Learning von Grund auf neu" lese (geschrieben von Yasuki Saito, veröffentlicht von O'Reilly Japan), werde ich die Websites notieren, auf die ich verwiesen habe. Teil 12 ← → Teil 14

Ich habe gelernt, indem ich Jupyter Lab auf meinem eigenen Computer ausgeführt habe, aber Speicherfehler sind häufig aufgetreten und ich kann nicht fortfahren.

damit

Ich möchte Googles Colaboratory ausprobieren.

Colaboratory

Es scheint kein englisches Wort für Colaboratory zu geben. Das ist der Name, den Google seinem Dienst gegeben hat. Zusammenarbeit zusammenarbeiten + Labor Labor Ist es ein geprägtes Wort von? Wenn es sich um ein Co + Labor handelt, ist es in Ordnung, es in Zusammenarbeit zu lesen? Betonen Sie die Bedeutung der Zusammenarbeit Wenn Sie an eine Collabora (te) + (labora) -Geschichte denken, können Sie sie als kollaborativ lesen, aber ich werde um eins zunehmen.

Viele Beiträge zu Qiita

Informationen zum Labor in Qiita

Also werde ich nach und nach gehen.

Immerhin mache ich mir Sorgen um die Struktur der Ordner und Dateien auf dem Laufwerk

Bisher habe ich verschiedene Dinge ausprobiert, und wenn ich ein Programm ausführe, verweise ich auf viele Bibliotheken, Eingabedateien und pkl-Dateien. Um sie auf Google Drive zu erstellen und zu referenzieren, müssen Sie zunächst die Struktur von Ordnern und Dateien sowie deren Angabe verstehen.

Durchlaufen

Derzeit scheint es kein Problem zu geben, wenn Sie das Laufwerk bereitstellen und dann den Pfad an den Ordner übergeben, in dem sich die Bibliothek und die Dateien befinden.

#Laufwerkshalterung
from google.colab import drive
drive.mount('/content/drive')

Es scheint, dass Sie den Laufwerksteil von / content / drive selbst benennen können. Gibt Ihnen dieser Befehl einen Namen für die Verwendung von Google Drive in Ihrem Skript? Unter diesem Laufwerk befindet sich also ein Ordner "Mein Laufwerk" als eigener Bereich. Darunter können Sie einen Ordner zum Ausführen von Skripten, Notebooks (~ .ipynb) usw. erstellen.

Dies bedeutet, dass sich alle in Colaboratory verfügbaren Ressourcen unter / content / driverame / My Drive befinden. Da das aktuelle Verzeichnis jedoch / content ist, müssen Sie vorsichtig sein, wenn Sie eine Datei mit einem relativen Pfad angeben. Muss "Laufwerksname / Mein Laufwerk / Dateiname" sein. Natürlich können Sie das aktuelle Laufwerk auch mit dem Befehl os.chdir () ändern. Das Ändern des aktuellen Laufwerks funktioniert nur in diesem Notebook und scheint keine Auswirkungen auf andere Notebooks zu haben.

Ich habe einen Ordner erstellt, Colab Notebooks, um ihn von anderen Dateien zu trennen, und deep_learning darunter als Ordner, um die Beispielprogramme dieses Buches abzulegen. Außerdem habe ich allgemeine Ordner und Datensatzordner erstellt, die ich häufig in den Programmen dieses Buches verwende, und die heruntergeladenen Programme und Daten darin abgelegt.

Übergeben Sie dann den Pfad, damit von überall auf die Programme in diesem Ordner verwiesen werden kann.

#Pfad hinzufügen
import sys
sys.path.append('/content/drive/My Drive/Colab Notebooks/deep_learning/common')
sys.path.append('/content/drive/My Drive/Colab Notebooks/deep_learning/dataset')

Ändern Sie die Programme, die auf sie verweisen, wie folgt.

#Bisher wurde dies bei der Angabe eines Moduls im Ordner-Dataset in Jupyter Lab durchgeführt.
from dataset.mnist import load_mnist

#Dies ist in Ordnung, wenn Sie den Pass passieren
from mnist import load_mnist

Es gibt viele Programme, die auf die gemeinsame Bibliothek verweisen, daher scheint es ziemlich schwierig zu sein, dies zu beheben.

Ich habe verschiedene verwandte Funktionen ausprobiert

import os
print(os.getcwd())  #Aktuelles Verzeichnis
print(os.pardir) #Übergeordnetes Verzeichnis
print(os.path.dirname(os.path.abspath(__file__))) #Sollte das Verzeichnis zurückgeben, das diese Skriptdatei enthält, aber im interaktiven Modus wird ein Fehler ausgegeben

/content .. --------------------------------------------------------------------------- NameError Traceback (most recent call last) in () 2 print (os.getcwd ()) # aktuelles Verzeichnis 3 print(os.pardir) ----> 4 print(os.path.dirname(os.path.abspath(_file_))) 5 NameError: name '_file_' is not defined

Der interaktive Modus von Google Colaboratory scheint im aktuellen Verzeichnis / Inhalt zu laufen. Wenn Sie das obige Skript in einem anderen Ordner ausführen, wird das gleiche Ergebnis erzielt. Das aktuelle Verzeichnis lautet / content. Es scheint auch, dass \ __ Datei \ __ nicht im interaktiven Modus verwendet werden kann. Da das aktuelle Verzeichnis immer / content ist, ist es nicht sinnvoll, es zu verwenden.

Es scheint jedoch, dass \ __file \ __ in dem mit einem Dateinamen gespeicherten Skript verwendet werden kann. Das folgende Skript funktioniert einwandfrei und lädt die Dateien in denselben Ordner wie das Skript.

# coding: utf-8
import sys, os
sys.path.append(os.pardir)  #Einstellungen zum Importieren von Dateien in das übergeordnete Verzeichnis
import numpy as np
from mnist import load_mnist
import matplotlib.pyplot as plt

def showImg(x):
    example = x.reshape((28, 28))
    plt.figure()
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(example, cmap=plt.cm.binary)
    plt.show()
    return

(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False)

img = x_train[1]
label = t_train[1]
print(img.shape)  # (784,)
img = img.reshape(28, 28)  #Transformieren Sie die Form in die ursprüngliche Bildgröße
print(img.shape)  # (28, 28)
print(label)  # 0
showImg(img)

(784,) (28, 28) 0

In der importierten Datei mnist.py wird die Datei wie folgt angegeben

mnist.Ein Skript, das das Verzeichnis der Mnist-Daten mit py festlegt


dataset_dir = os.path.dirname(os.path.abspath(__file__))
save_file = dataset_dir + "/mnist.pkl"

Sie können mnist.pkl aus dem Ordner '/ content / drive / Mein Laufwerk / Colab Notebooks / deep_learning / dataset' lesen, in dem sich mnist.py befindet.

Wenn Sie eine Datei im interaktiven Modus angeben, erscheint es sicherer, einen absoluten Pfad anzugeben

# coding: utf-8
import matplotlib.pyplot as plt
from matplotlib.image import imread

img = imread('/content/drive/My Drive/Colab Notebooks/deep_learning/dataset/lena.png') #Laden von Bildern
plt.imshow(img)

plt.show()

Es scheint irgendwie zu funktionieren, also nachdem Sie das Programm im Buch ausgeführt und überprüft haben, Ich werde versuchen, die Hunde- und Katzenfotos zu unterscheiden, die zu schwer waren, um sich zu bewegen.

Teil 12 ← → Teil 14 Klicken Sie hier, um eine Liste der Memos usw. anzuzeigen. Unlesbares Glossar

Referenzierte Site

Importieren von .py-Dateien in Google Drive mit Google Colaboratory Finden Sie heraus, warum Sie den Verzeichnisnamen eines laufenden Skripts nicht mit file abrufen können Willkommen im Colaboratory Tipps zum Deep Learning-Training im Labor

Recommended Posts

Selbststudien-Memo "Deep Learning from Grund" (Nr. 13) Verwenden Sie Google Colaboratory
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 14) Führen Sie das Programm in Kapitel 4 in Google Colaboratory aus
Selbststudien-Memo "Deep Learning from Grund" (Nr. 18) Eins! Miau! Grad-CAM!
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Selbststudien-Memo "Deep Learning from Grund" (Nr. 15) TensorFlow-Anfänger-Tutorial
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 10-2) Anfangswert des Gewichts
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 16) Ich habe versucht, SimpleConvNet mit Keras zu erstellen
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 17) Ich habe versucht, DeepConvNet mit Keras zu erstellen
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
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]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Ein Memo bei der Ausführung des Beispielcodes von Deep Learning, der mit Google Colaboratory von Grund auf neu erstellt wurde
Deep Learning von Grund auf neu
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
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
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
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
Deep Learning / Deep Learning von Null 2 Kapitel 6 Memo
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet
Warum ModuleNotFoundError: In "Deep Learning from Grund" wird kein Modul mit dem Namen "didaset.mnist" angezeigt.
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
GitHub des guten Buches "Deep Learning von Grund auf neu"
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
[Deep Learning von Grund auf neu] Anfangswert des Gewichts des neuronalen Netzwerks unter Verwendung der Sigmoid-Funktion
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
Django Memo # 1 von Grund auf neu
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Ich habe versucht, Dropout zu erklären
[Deep Learning von Grund auf neu] Anfangsgewicht des neuronalen Netzwerks bei Verwendung der Relu-Funktion
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4