Amazon SageMaker ist mehr als Machine Learning in python – er kann auch Teaching in go

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:

  1. Die Sprache go selber
    sudo yum -y install go
  2. 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

 

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:

  1. go get -u github.com/gopherdata/gophernotes
  2. mkdir -p ~/.local/share/jupyter/kernels/gophernotes
  3.  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

One thought on “Amazon SageMaker ist mehr als Machine Learning in python – er kann auch Teaching in go

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.