En lisant "Deep Learning from scratch" (écrit par Yasuki Saito, publié par O'Reilly Japan), je noterai les sites auxquels j'ai fait référence. Partie 12 ← → Partie 14
J'ai appris en exécutant Jupyter Lab sur mon propre ordinateur, mais des erreurs de mémoire ont commencé à se produire fréquemment et je ne peux pas continuer.
donc
J'aimerais essayer le Colaboratory de Google.
Colaboratory
Il ne semble pas y avoir de mot anglais pour Colaboratory. C'est le nom que Google a donné à son service, Collaboration collaborate + laboratoire laboratoire Est-ce un mot inventé? S'il s'agit d'un co + laboratoire, est-il possible de le lire en collaboration? Soulignez le sens de la collaboration Si vous pensez à une histoire collabora (te) + (labora), vous pouvez la lire comme une histoire collaborative, mais j'augmenterai de un.
Informations sur le colaboratoire à Qiita
Alors, j'irai petit à petit.
Jusqu'à présent, j'ai essayé diverses choses, et lorsque j'exécute un programme, je fais référence à de nombreuses bibliothèques, fichiers d'entrée et fichiers pkl. Ainsi, afin de les créer et de les référencer sur Google Drive, vous devez d'abord comprendre la structure des dossiers et des fichiers et comment les spécifier.
Pour le moment, il semble qu'il n'y ait pas de problème si vous montez le lecteur puis passez le chemin vers le dossier où se trouvent la bibliothèque et les fichiers.
#Support de lecteur
from google.colab import drive
drive.mount('/content/drive')
Il semble que vous puissiez nommer vous-même la partie lecteur de / content / drive. Cette commande vous donne-t-elle un nom pour utiliser Google Drive dans votre script? Ainsi, sous ce lecteur, il y a un dossier My Drive comme votre propre zone, et sous lequel vous pouvez créer un dossier pour exécuter des scripts, Notebook (~ .ipynb), etc.
Cela signifie que toutes les ressources disponibles dans Colaboratory sont sous / content / drivename / My Drive. Cependant, puisque le répertoire courant est / content, vous devez être prudent lorsque vous spécifiez un fichier avec un chemin relatif. Doit être "nom du lecteur / mon lecteur / nom du fichier" Bien sûr, vous pouvez également modifier le lecteur actuel avec la commande os.chdir (). La modification du lecteur actuel ne fonctionne que dans ce bloc-notes et ne semble pas affecter les autres blocs-notes.
J'ai créé un dossier, Colab Notebooks, pour le séparer des autres fichiers, et deep_learning sous celui-ci en tant que dossier pour placer les programmes d'exemple de ce livre. J'ai également créé des dossiers communs et des ensembles de données que j'utilise souvent dans les programmes de ce livre, et y ai placé les programmes et les données téléchargés.
Ensuite, transmettez le chemin afin que les programmes sous ce dossier puissent être référencés de n'importe où.
#Ajouter un chemin
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')
Modifiez les programmes qui y font référence comme suit.
#J'avais l'habitude de faire cela lors de la spécification de modules dans l'ensemble de données de dossier dans JupyterLab
from dataset.mnist import load_mnist
#C'est bien si tu passes par le col
from mnist import load_mnist
Il existe de nombreux programmes qui font référence à la bibliothèque commune, il semble donc être assez difficile de résoudre ce problème.
import os
print(os.getcwd()) #Répertoire actuel
print(os.pardir) #Dossier Parent
print(os.path.dirname(os.path.abspath(__file__))) #Doit retourner le répertoire contenant ce fichier de script, mais une erreur en mode interactif
/content .. --------------------------------------------------------------------------- NameError Traceback (most recent call last)
in () 2 print (os.getcwd ()) # répertoire courant 3 print(os.pardir) ----> 4 print(os.path.dirname(os.path.abspath(_file_))) 5 NameError: name '_file_' is not defined
Le mode interactif de Google Colaboratory semble fonctionner dans le répertoire / contenu actuel. L'exécution du script ci-dessus dans un dossier différent aura le même résultat, le répertoire actuel sera / content. De plus, il semble que \ __ file \ __ ne puisse pas être utilisé en mode interactif. Puisque le répertoire courant est toujours / content, cela n'a aucun sens de l'utiliser.
Cependant, il semble que \ __file \ __ puisse être utilisé dans le script enregistré avec un nom de fichier. Le script suivant fonctionne correctement et charge les fichiers dans le même dossier que le script.
# coding: utf-8
import sys, os
sys.path.append(os.pardir) #Paramètres d'importation des fichiers dans le répertoire parent
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) #Transformez la forme en taille d'image d'origine
print(img.shape) # (28, 28)
print(label) # 0
showImg(img)
(784,) (28, 28) 0
Dans le mnist.py importé, le fichier est spécifié comme ceci
mnist.Script qui définit le répertoire des données mnist avec py
dataset_dir = os.path.dirname(os.path.abspath(__file__))
save_file = dataset_dir + "/mnist.pkl"
Vous pouvez lire mnist.pkl dans le dossier «/ content / drive / My Drive / Colab Notebooks / deep_learning / dataset» où se trouve mnist.py.
# 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') #Chargement des images
plt.imshow(img)
plt.show()
Cela semble fonctionner en quelque sorte, donc après avoir exécuté le programme dans le livre et l'avoir vérifié, Je vais essayer de distinguer les photos de chiens et de chats qui étaient trop lourdes pour bouger.
Partie 12 ← → Partie 14 Cliquez ici pour la liste des mémos, etc. Glossaire illisible
Importer des fichiers .py sur Google Drive avec Google Colaboratory Découvrez pourquoi vous ne pouvez pas obtenir le nom de répertoire d'un script en cours d'exécution en utilisant file Bienvenue dans Colaboratory Conseils pratiques d'apprentissage en profondeur sur la collaboration
Recommended Posts