Kontakt: +49 511 59095 – 942

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

Thumbnail

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
    

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:

  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


Author Image
Gernot Glawe

Gernot is Cloud Consultant and Trainer at tecRacer Consulting. He is focusing on AWS, DevOps and serverless development.

Teilen