[PYTHON] Les parties sympas et regrettables de Cloud Datalab

Cette entrée est

C'est une continuation de.

Principes de base de Cloud Datalab

Ici aussi J'ai écrit quelque chose de similaire, mais si je l'écris à nouveau, Cloud Datalab est le suivant.

Hypothèses Datalab

Datalab est conçu pour travailler en étroite collaboration avec les projets GCP.

Par défaut, si rien n'est spécifié, ce sera comme suit.

--Un référentiel sera créé appelé datalab-notebooks dans le Cloud Source Repository dans le projet. datalab / docs / how-to / datalab-team # use_the_automatically_created_git_repository_for_sharing_notebooks) --Un bucket $ {PROJECT_ID} .appspot.com / datalab_backups est créé sur GCS et une [sauvegarde est créée](https://cloud.google.com/datalab/docs/how-to/" dedans. working-with-notebooks # cloud_datalab_backup)

Commencez

J'essaierai diverses choses sur place. Quoi qu'il en soit, c'est le début de Datalab.

$ datalab create --disk-size-gb 10 --no-create-repository datalab-test

--Spécifiez la taille du disque avec --disk-size-gb.

Coopération avec BigQuery

Datalab est très agréable de travailler avec BigQuery. Donc, pour changer un peu l'histoire, Jupyter a une fonction de commande appelée Magic Command qui commence par %%. Des fonctionnalités BigQuery et GCS sont également fournies.

Exécuter la requête en tant que commande magique

Exemple, mais vous pouvez voir à quel point il est merveilleux de l'écrire dans une cellule. ..

%%bq query
SELECT id, title, num_characters
FROM `publicdata.samples.wikipedia`
WHERE wp_namespace = 0
ORDER BY num_characters DESC
LIMIT 10

Parcourez google.datalab.bigquery

J'interroge une cellule pour BQ, donc je veux la traiter telle quelle [ce qui est dans l'exemple](https://github.com/googledatalab/notebooks/blob/master/tutorials/BigQuery/SQL%20and%20Pandas% 20DataFrames.ipynb), mais vous pouvez transmettre le résultat de la requête à Pandas en tant que dataframe. magnifique.

%%bq query -n requests
SELECT timestamp, latency, endpoint
FROM `cloud-datalab-samples.httplogs.logs_20140615`
WHERE endpoint = 'Popular' OR endpoint = 'Recent'
import google.datalab.bigquery as bq
import pandas as pd

df = requests.execute(output_options=bq.QueryOutput.dataframe()).result()

Est-ce que c'est comme ça si cela semble être un peu plus via API?

import google.datalab.bigquery as bq
import pandas as pd

#Requête à émettre
query = """SELECT timestamp, latency, endpoint
           FROM `cloud-datalab-samples.httplogs.logs_20140615`
           WHERE endpoint = 'Popular' OR endpoint = 'Recent'"""
#Créer un objet de requête
qobj = bq.Query(query)
#Obtenez les résultats de la requête sous forme de trame de données pandas
df2 = qobj.execute(output_options=bq.QueryOutput.dataframe()).result()
#Au fonctionnement des pandas ci-dessous
df2.head()

Si vous y réfléchissez bien, puisque cette API est fournie, il semble que Magic Command soit créé. En fait, si vous regardez ici, «%% b» est défini comme étant la commande Magic. Tu peux voir ça.

Coopération avec GCS

Comme avec BigQuery, vous pouvez manipuler des objets sur GCS à partir de la cellule comme exemple. Le fait est, est-il possible de lire et d'écrire des fichiers? Il est également utile de pouvoir utiliser les résultats de BigQuery comme source de données, mais il est intéressant de pouvoir gérer les données GCS car il s'agit d'une source de données transparente.

Coopération avec CloudML

J'ai pu confirmer que quelque chose fonctionne via l'API pour le moment, mais je vais sauter cette fois car il y a beaucoup de choses que je ne comprends pas comme divers comportements.

Changer le type d'instance

C'est la vraie valeur du cloud. Si vous en avez besoin, vous pouvez améliorer les spécifications, ce qui n'est pas possible avec sur site. La commande datalab create vous permet de spécifier le type d'instance avec l'option --machine-type. Par défaut, n1-standard-1 est lancé.

#Supprimer l'instance avec la commande de suppression
#Dans ce cas, le disque attaché reste tel quel
$ datalab delete datalab-test

#Commencez avec le même nom de machine mais avec des types d'instances différents
#Nom de la machine+Parce que le disque est créé selon la convention de dénomination pd
#Si le nom de la machine est le même, le disque sera joint sans autorisation.
$ datalab create --no-create-repository \
                 --machine-type n1-standard-4 \
                 datalab-test

Vous pouvez maintenant augmenter ou réduire les spécifications de votre machine selon vos besoins.

Environnement d'analyse GPU!

Pour le moment, c'est le point culminant.

avec ça! !! !! Après avoir spécifié l'instance GPU! !! !! !! Vous pouvez facilement obtenir un environnement d'apprentissage automatique GPU! !! !! !!

Quand j'y pense, ce n'est pas si facile dans le monde ... Jusqu'à présent, les instances GPU ne sont pas supportées par Datalab.

Résumé

Datalab est regrettable à certains endroits, mais on s'attend à peine à ce que les instances GPU le prennent en charge d'une manière ou d'une autre, à l'exception du référentiel Cloud Source et de l'environnement Cloud ML Engine. Cependant, ces jours-ci, je pense que c'est un élément important pour créer un environnement d'analyse de données. La prochaine fois, j'aimerais examiner de plus près ce domaine.

Autres informations de référence

Recommended Posts

Les parties sympas et regrettables de Cloud Datalab
L'histoire de Python et l'histoire de NaN
Revoir le concept et la terminologie de la régression
L'histoire d'essayer deep3d et de perdre
À propos du comportement de copy, deepcopy et numpy.copy
Résumé des différences entre PHP et Python
Compréhension complète des concepts de Bellmanford et Dyxtra
La réponse de "1/2" est différente entre python2 et 3
Organiser la signification des méthodes, des classes et des objets
Spécification de la plage des tableaux ruby et python
Changer la couleur des erreurs et avertissements Fabric
Comparez la vitesse d'ajout et de carte Python
Description générale des notificateurs CPUFreq core et CPUFreq
Organisez l'utilisation super basique des Autotools et de pkg-config
J'ai lu et implémenté les variantes de UKR
Prise en compte des forces et faiblesses de Python
Présentation de Cloud Datalab
[SLAYER] J'ai essayé de confirmer l'âme d'acier en visualisant les paroles de slash metal [Word Cloud]
Étude de la relation entre le prétraitement de la voix et la précision de la transcription dans l'API Google Cloud Speech
Prise en compte de la différence entre la courbe ROC et la courbe PR
Exécutez l'application flask sur Cloud 9 et Apache Httpd
L'histoire de Python sans opérateurs d'incrémentation et de décrémentation.
Déterminer et traiter automatiquement l'encodage du fichier texte
relation entre la série de nombres de Fibonacci et le nombre d'or
Le processus d'installation d'Atom et de l'exécution de Python
Python - Explication et résumé de l'utilisation des 24 meilleurs packages
Visualisez la gamme d'insertions internes et externes avec python
[FSL] Mesure du segment et du volume du noyau cérébral basal (noyaux gris centraux)
Pensez à la nouvelle génération de Rack et WSGI
Référence et modification de la limite supérieure récursive Python
J'ai vérifié les versions de Blender et Python
Visualisation de la connexion entre le malware et le serveur de rappel
[Django 2.2] Trier et obtenir la valeur de la destination de la relation
Notes personnelles sur l'intégration de vscode et anaconda
Vérifiez le type et la version de la distribution Linux
Animer les bases de la planification dynamique et des problèmes de sac à dos