[PYTHON] Verwenden Sie eine kostenlose GPU in Ihrer Lieblingsumgebung

Ich möchte eine GPU verwenden, kann sie aber nicht kaufen, weil sie teuer ist ...

Wenn Sie maschinelles Lernen studieren und eine GPU haben, können Sie mit hoher Geschwindigkeit und effizient lernen. Aber es ist zu teuer zu kaufen ...

Es gibt auch ein Google Colaboratory, aber ich kann einfach kein Jupyter-Notizbuch werden und möchte in meiner gewohnten Umgebung arbeiten (ein wenig egoistisch).

Zu dieser Zeit fand ich diesen Artikel!

Greifen Sie mit ssh auf Colab zu und verwenden Sie die GPU

Holen Sie sich das Auth-Token von ngrok

Gehen Sie zu ngrok und öffnen Sie LOGIN-> Authentication-> Your Auth Token. Anschließend wird das Authentifizierungstoken auf dem folgenden Bildschirm angezeigt. Kopieren Sie es daher.

Führen Sie ngrok in Google Colaboratry aus

Öffnen Sie Google Colab, öffnen Sie Runtime-> Runtime Type Settings und stellen Sie den Hardwarebeschleuniger auf GPU ein.

Fügen Sie den folgenden Code in einen Codeblock ein und führen Sie ihn aus. Fügen Sie zu diesem Zeitpunkt das zuvor kopierte Authentifizierungstoken anstelle von "IHR AUTH-TOKEN" in die 13. Zeile ein.

# 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)

Wenn die Ausführung erfolgreich ist, wird Folgendes angezeigt.

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

ssh [email protected] -p XXXXX

Öffnen Sie es mit VSCode und probieren Sie es aus

Versuchen Sie eine ssh-Verbindung zu ssh [email protected] -p XXXXX mit der Funktion Remote-SSH von VS Code. Sie werden nach einem Passwort gefragt, aber Sie können "Passwort" eingeben, das in "! Echo" root: password "| chpasswd" angegeben ist.

Machen Sie "main.py" usw. entsprechend und überprüfen Sie, ob die GPU mit dem folgenden Code verwendet werden kann

import torch

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

Ich konnte es benutzen!

Überprüfung

CIFAR10 Ich habe es mit der Aufgabe des Lernens überprüft. Der Code, den ich tatsächlich verwendet habe, ist hier.

Die folgende Umgebung wurde zum Vergleich verwendet und mit 5 Epochen durchgeführt.

Mit GPU Keine GPU
OS Ubuntu 18.04.3 LTS macOS Catalina v.10.15.5
torch 1.4.0 1.5.1

Es war faul, dass ich nicht mit der Fackelversion mithalten konnte.

Ergebnis (nie korrigieren, da es nur einmal ausgeführt wird)

Geschwindigkeit
Mit GPU 256.162
Keine GPU 320.412

Die Geschwindigkeit ist ca. 20% schneller!

Schließlich

Colab hat vorgefertigte Umgebungen wie Pytorch und Keras, was auch praktisch ist!

Recommended Posts

Verwenden Sie eine kostenlose GPU in Ihrer Lieblingsumgebung
Verwenden Sie den neuesten Pip in einer virtuellen Umgebung
Verwenden Sie Python in Ihrer Umgebung von Win Automation
Verwenden Sie Sudachipys gelerntes word2vec in einer Umgebung mit wenig Speicher
Verwenden Sie Anaconda in einer Pyenv-Umgebung
Verwenden Sie die django-debug-Symbolleiste in der VirtualBox / Vagrant-Umgebung
Installieren Sie Django in einer virtuellen Pipenv-Umgebung
Verwenden Sie print in Python2 lambda expression
Verwenden Sie Tensorflow in einer wurzellosen Umgebung
Verwenden Sie einfach Ihre eigenen Funktionen in Python
Rufen Sie mit Python eine Liste der in der aktuellen Umgebung installierten Pakete ab
Verwenden Sie ein in PySpark geschultes Scikit-Lernmodell
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Verwenden Sie Python 3 Subprocess.run () im CGI-Skript
Ich habe versucht, NVDashboard zu verwenden (für diejenigen, die GPU in einer Jupyter-Umgebung verwenden)
Erstellen einer virtuellen Umgebung in einer Anaconda-Umgebung
Installieren Sie CaboCha in einer Umgebung, die nicht von Anaconda stammt (Win).
Startete Node.js in einer virtuellen Umgebung
Flutter in Docker - Erstellen und Verwenden einer Flutter-Entwicklungsumgebung in einem Docker-Container
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Erstellen Sie in kürzester Zeit eine LAMP-Umgebung
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
Setzen Sie Linux in Chromebook ein und verwenden Sie R ...
Die Systemumschaltung erfolgt in der CentOS 7-Clusterumgebung
Starten Sie Django in einer virtuellen Umgebung mit Pipenv
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Legen Sie eine feste IP in der Linux-Umgebung fest
Denken Sie daran, eine Python 3-Umgebung in einer Mac-Umgebung zu erstellen
Verwenden Sie in Ihrem Python keine readlines () für Anweisungen!
Arbeiten Sie in einer virtuellen Umgebung mit Python virtualenv.
Verwenden Sie jupyter-lab, das in einer virtuellen Python-Umgebung (venv) installiert ist.
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
Erstellen Sie mit Eclipse eine Minecraft-Plug-Entwicklungsumgebung
Verwenden Sie pydantic beim Lesen von Umgebungsvariablen in Python
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
Lassen Sie Keras 2.0 und OpenCV 3.2 in einer GPU-Umgebung arbeiten
So führen Sie AutoGluon in einer Google Colab-GPU-Umgebung aus
[Zweisprachig ist eine Verschwendung] Welches ist Ihr Lieblingsfibonacci?
Erstellen Sie eine virtuelle Anaconda-Umgebung im Projektordner
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Erstellen einer TensorFlow-Umgebung, die GPUs unter Windows 10 verwendet
Richten Sie in 30 Minuten einen kostenlosen Server unter AWS ein
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
Praktisch, um Matplotlib-Unterzeichnungen in for-Anweisungen zu verwenden
[Linux] Wie Sie Ihre IP in eine Variable einfügen
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (③ Stärkung des Lernens in Ihrer eigenen OpenAI Gym-Umgebung).