Erstellen Sie mit einem Container eine Python-Lernumgebung für maschinelles Lernen auf Ihrem Laptop.
Dieses Mal werden wir einen Container erstellen, der fastText und Python3 hauptsächlich als Umgebung für textbasiertes maschinelles Lernen verwenden kann.
https://qiita.com/penpenta/items/3b7a0f1e27bbab56a95f
Starten Sie zunächst das Basiscontainer-Image. Der Befehl execute sollte hier mit dem Befehl zum Ausführen des erstellten Container-Images identisch sein. Dieses Mal werden wir das CentOS-Image verwenden, um fastText im Container zu erstellen.
docker run -it -v /c/temp/data:/data --rm centos:centos8 /bin/bash
Sie können von Anfang an mit Dockerfile erstellen, es kann jedoch zu einem Installationsfehler kommen. Diese Arbeit wird durchgeführt, um die Umgebung schrittweise zu überprüfen.
dnf -y install python36
yum install -y git make gcc gcc-c++
yum install -y python36-devel
cd /usr/local/src
git clone https://github.com/facebookresearch/fastText.git
cd fastText
pip3 install .
python3
import fasttext
exit()
docker export {Bild-ID} > {Dateiname}.tar
Installieren Sie das Standardpaket.
pip3 install numpy pandas matplotlib scikit-learn
Installieren Sie die für die japanische Verarbeitung erforderlichen Pakete. Das Wörterbuch ist nicht erforderlich, Sie können es also überspringen.
rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
yum -y makecache
yum -y install mecab mecab-ipadic
yum -y install --nogpgcheck mecab-devel
pip3 install mecab-python3 neologdn emoji
yum install -y diffutils patch which file openssl
cd /usr/local/src
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd
./bin/install-mecab-ipadic-neologd -n -y
Dieses Mal möchte ich es für den persönlichen Gebrauch verwenden und immer eine neue Paketversion verwenden, daher werde ich die Umgebung bisher in die Arbeits-Docker-Datei exportieren.
--Punkte beim Erstellen einer Docker-Datei --Verwenden Sie WORKDIR anstelle von cd (cd kann in Dockerfile nicht verwendet werden)
Dockerfile
FROM centos:centos8
SHELL ["/bin/bash", "-c"]
#Python Install
RUN dnf -y install python36
#fastText Build
RUN yum install -y git make gcc gcc-c++
RUN yum install -y python36-devel
WORKDIR /usr/local/src
RUN git clone https://github.com/facebookresearch/fastText.git
WORKDIR /usr/local/src/fastText
RUN pip3 install .
#Install Python Package
RUN pip3 install numpy pandas matplotlib scikit-learn
RUN rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
RUN yum -y makecache
RUN yum -y install --nogpgcheck mecab mecab-ipadic mecab-devel
RUN pip3 install mecab-python3 neologdn emoji
#Install Mecab Dictionary
# RUN yum install -y diffutils patch which file openssl
#
# WORKDIR /usr/local/src
# RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
# WORKDIR /usr/local/src/mecab-ipadic-neologd
# RUN ./bin/install-mecab-ipadic-neologd -n -y
docker build -t fasttext/centos8:v1.0 .
docker run -it -v /c/temp/data:/data --rm fasttext/centos8:v1.0 /bin/bash
Mit den folgenden Schritten haben Sie eine Python-Umgebung für maschinelles Lernen in einem Container auf Ihrem Notebook-PC erstellt.
Bei Remote-Arbeiten war es nicht möglich, immer eine Verbindung zum internen VPN herzustellen, und die Entwicklungsarbeiten auf dem Entwicklungsserver waren schwierig, aber diese Umgebung löste sie.
Da das Lernen auf einem Notebook-PC einige Zeit in Anspruch nimmt, gibt es Probleme wie "Ressourcen sind für das Lernen belegt" und "Kann nicht heruntergefahren werden". Wenn jedoch derselbe Container im Voraus auf dem Entwicklungsserver vorbereitet wird, "weniger auf einem Notebook-PC". Sie können dieses Problem lösen, indem Sie den Anweisungen "Betrieb mit Epoche überprüfen → Epoche auf Entwicklungsserver erhöhen und lernen" folgen. Es ist auch möglich, das Commit des Quellcodes zu verknüpfen und das Lernen automatisch auf dem Entwicklungsserver auszuführen. Ich werde den Artikel darüber separat zusammenfassen.
Recommended Posts