Amazon SageMaker ist mehr als Machine Learning in python - er kann auch Teaching in go
This content is more than 4 years old and the cloud moves fast so some information may be slightly out of date.
Haben Sie nicht auch schon mal beim Durchlesen von Code Anleitungen gedacht, wie schön dass wäre, wenn die Anleitung und der Code zusammen ausführbar wären? Nun, genau das kann Amazon SageMaker! Amazon SageMaker unterstützt nicht nur bei der Erstellung von Code und Modellen für Machine Learning. Das “literal Programming”, also dokumentenzentrierte Programmierung kann auch mit anderen Sprachen, z.B. go/golang verwendet werden, um Code und Dokumentation als Paket zu verwenden.
Hier ein Beispiel, wie man die jupyter Notebooks mit go verwendet:
Zuerst muss man den “core” für die jeweilige Sprache installieren. Das passiert direkt im Terminal. Dazu wählt man in dem Hauptfenster von SageMaker unter “New” ganz unten das Terminal aus, um ein Terminalfenster zu öffnen.
Installation
Nun muss man folgende Komponenten installieren:
-
Die Sprache go selber
sudo yum -y install go
-
Installation von zeromq (wird von gophernotes benötigt) Hierzu führt man folgenden gist aus: Install zeromq (zmq) library on fresh Amazon Linux
wget https://gist.githubusercontent.com/toebbel/6834175230afea9f05c1765fcf783627/raw/5280d173dc4531f56e318fd0b48df2421dd5003f/install.sh
chmod +x install.sh
sudo ./install.sh
gophernotes
Das go environment für SageMaker / jupyter heißt “gophernotes”. Ähnlich wie in der dort beschriebenen Installationsanleitung (siehe gophernotes) muss man direkt aus dem ec2-user Homeverzeichnis ausführen:
go get -u github.com/gopherdata/gophernotes
mkdir -p ~/.local/share/jupyter/kernels/gophernotes
cp ./go/src/github.com/gopherdata/gophernotes/kernel/* ~/.local/share/jupyter/kernels/gophernotes
In dem Home Verzeichnis vom ec2-user sieht es dann in Bezug auf go in etwa so aus:
/home/ec2-user
sh-4.2$ tree -L 4 go
go
├── bin
│ └── gophernotes
├── pkg
│ └── linux_amd64
│ └── github.com
│ └── gopherdata
└── src
└── github.com
└── gopherdata
└── gophernotes
(Tree habe ich dazu installiert mit)
sudo yum -y install tree
Jetzt muss man noch den Pfad anpassen:
vi .local/share/jupyter/kernels/gophernotes/kernel.json
Die Datei sollte dann folgendermaßen aussehen:
Damit ist die Installation eines zusätzlichen Go Kerns für SageMaker fertig und man kann - nach einem Refresh des Hauptfensters, go notebooks anlegen:
Anlegen eines Go notebooks
In der Auswahl für neue Notebooks taucht nun “go” mit auf:
Ein Beispiel go notebook
Nun kan man eine Anleitung oder Lernmaterialien mit einem Wechsel von go code und Dokumentation einfach erstellen.
Zusammenfassung der Installation
sudo yum -y install go
# ready when
# Complete!
wget https://gist.githubusercontent.com/toebbel/6834175230afea9f05c1765fcf783627/raw/5280d173dc4531f56e318fd0b48df2421dd5003f/install.sh
chmod u+x install.sh
sudo ./install.sh
# ready when
# Complete!
#
go get -u github.com/gopherdata/gophernotes
#
mkdir -p ~/.local/share/jupyter/kernels/gophernotes
#
cp ./go/src/github.com/gopherdata/gophernotes/kernel/* ~/.local/share/jupyter/kernels/gophernotes
#
vi .local/share/jupyter/kernels/gophernotes/kernel.json
#
#
diff .local/share/jupyter/kernels/gophernotes/kernel.json ./go/src/github.com/gopherdata/gophernotes/kernel/kernel.json
#3c3
# "gophernotes",
Photo by Ben White on Unsplash