[PYTHON] Utilisez un GPU gratuit dans votre environnement préféré

Je veux utiliser le GPU mais je ne peux pas l'acheter car c'est cher ...

Si vous étudiez l'apprentissage automatique et possédez un GPU, vous pouvez étudier à grande vitesse et étudier efficacement. Mais c'est trop cher à acheter ...

Il y a aussi un Google Colaboratory, mais je ne peux pas devenir un Jupyter Notebook et je veux travailler dans mon environnement habituel (un peu égoïste).

A cette époque, j'ai trouvé cet article!

Accédez à Colab avec ssh et utilisez le GPU

Obtenir le jeton d'authentification de ngrok

Accédez à ngrok et ouvrez LOGIN-> Authentication-> Your Auth token. Ensuite, le jeton d'authentification s'affiche sur l'écran ci-dessous, alors copiez-le.

Exécutez ngrok sur Google Colaboratry

Ouvrez Google Colab, ouvrez Runtime-> Runtime Type Settings et définissez l'accélérateur matériel sur GPU.

Collez le code suivant dans un bloc de code et exécutez-le. À ce stade, collez le jeton d'authentification que vous avez copié précédemment dans le `VOTRE JETON D'AUTH 'sur la 13e ligne.

# Install useful stuff
! apt install --yes ssh screen nano htop ranger git > /dev/null
# SSH setting
! echo "root:password" | chpasswd
! echo "PasswordAuthentication yes" > /etc/ssh/sshd_config
! echo "PermitUserEnvironment yes" >> /etc/ssh/sshd_config
! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
! service ssh restart > /dev/null
# Download ngrok
! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
! unzip -qq -n ngrok-stable-linux-amd64.zip
# Run ngrok
authtoken = "YOUR AUTHTOKEN"
get_ipython().system_raw('./ngrok authtoken $authtoken && ./ngrok tcp 22 &')
! sleep 3
# Get the address for SSH
import requests
from re import sub
r = requests.get('http://localhost:4040/api/tunnels')
str_ssh = r.json()['tunnels'][0]['public_url']
str_ssh = sub("tcp://", "", str_ssh)
str_ssh = sub(":", " -p ", str_ssh)
str_ssh = "ssh root@" + str_ssh
print(str_ssh)

Si l'exécution réussit, ce qui suit sera affiché.

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

ssh [email protected] -p XXXXX

Ouvrez-le avec VSCode et essayez-le

Essayez la connexion ssh à ssh [email protected] -p XXXXX en utilisant la fonction Remote-SSH de VS Code. On vous demandera un mot de passe, mais vous pouvez taper mot de passe spécifié dans! Echo" root: mot de passe "| chpasswd.

Faites main.py etc. de manière appropriée et vérifiez que le GPU peut être utilisé avec le code suivant

import torch

print(torch.cuda.is_available())
# True

J'ai pu l'utiliser!

Vérification

CIFAR10 Je l'ai vérifié avec la tâche d'apprendre. Le code que j'ai réellement utilisé est ici.

L'environnement suivant a été utilisé à des fins de comparaison et le nombre d'époques était de 5.

Avec GPU Pas de GPU
OS Ubuntu 18.04.3 LTS macOS Catalina v.10.15.5
torch 1.4.0 1.5.1

C'était paresseux que je ne puisse pas correspondre à la version de la torche.

Résultat (jamais correct car il n'est exécuté qu'une seule fois)

la vitesse
Avec GPU 256.162
Pas de GPU 320.412

La vitesse est environ 20% plus rapide!

finalement

Colab a des environnements pré-construits tels que Pytorch et Keras, ce qui est également pratique!

Recommended Posts

Utilisez un GPU gratuit dans votre environnement préféré
Utilisez le dernier pip dans un environnement virtualenv
Utilisez Python dans votre environnement depuis Win Automation
Utilisez le mot2vec appris de Sudachipy dans un environnement à faible mémoire
Utiliser Anaconda dans un environnement pyenv
Utilisez django-debug-toolbar dans l'environnement VirtualBox / Vagrant
Installer Django dans l'environnement virtuel pipenv
Utiliser l'impression dans l'expression lambda Python2
Utilisez tensorflow dans un environnement sans racine
Utilisez facilement vos propres fonctions en Python
Obtenez une liste des packages installés dans l'environnement actuel avec python
Utiliser un modèle scikit-learn formé à PySpark
Créez un environnement python sur votre Mac
Utilisez Python 3 Subprocess.run () dans le script CGI
J'ai essayé d'utiliser NVDashboard (pour ceux qui utilisent le GPU dans l'environnement jupyter)
Créer un environnement virtuel dans un environnement Anaconda
Installer CaboCha dans un environnement non-Anaconda (Win)
Démarrage de Node.js dans un environnement virtuel
Flutter dans Docker - Comment créer et utiliser un environnement de développement Flutter dans un conteneur Docker
Créez un environnement LAMP sur votre Docker local
Créez un environnement LAMP en très peu de temps
Créez un environnement de test Vim + Python en 1 minute
Mettez Linux dans Chromebook et utilisez R ...
Le basculement du système se produit dans l'environnement de cluster CentOS 7
Démarrez Django dans un environnement virtuel à l'aide de Pipenv
Créer un environnement virtuel avec conda avec Python
Créez un environnement Django avec Vagrant en 5 minutes
Créez un environnement de développement Python sur votre Mac
Définir une adresse IP fixe dans l'environnement Linux
Pensez à créer un environnement Python 3 dans un environnement Mac
N'utilisez pas readlines () dans votre instruction Python for!
Travaillez dans un environnement virtuel avec Python virtualenv.
Utiliser jupyter-lab installé dans l'environnement virtuel python (venv)
Utiliser Python dans un environnement Anaconda avec VS Code
Créez un environnement de développement de plugins Minecraft avec Eclipse
Utilisez pydantic lors de la lecture des variables d'environnement en Python
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Autoriser Keras 2.0 et OpenCV 3.2 à fonctionner dans un environnement GPU
Comment exécuter AutoGluon dans un environnement GPU Google Colab
[Le bilinguisme est un gaspillage] Quel est votre Fibonacci préféré?
Créer un environnement virtuel Anaconda dans le dossier du projet
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Création d'un environnement TensorFlow qui utilise des GPU sous Windows 10
Configurez un serveur gratuit sur AWS en 30 minutes
Créez un environnement Python sur votre Mac en utilisant pyenv
Pratique pour utiliser les sous-graphiques matplotlib dans l'instruction for
[Linux] Comment mettre votre IP dans une variable
Essayez de faire une stratégie de blackjack en renforçant l'apprentissage (③ Renforcer l'apprentissage dans votre propre environnement OpenAI Gym))