[PYTHON] Verwenden Sie Numpy, Scipy, Scikit-Learn mit Heroku

Wenn Sie eine Anwendung schreiben, die maschinelles Lernen in Python beinhaltet, hängt dies häufig von Scicit-Learn oder sogar von Numpy oder Scipy ab.

Diese hängen von verschiedenen Bibliotheken ab, sodass die Bereitstellung auf Heroku nicht einfach ist. Wenn Sie Ihren eigenen Server auf AWS usw. einrichten können, können Sie ihn dort einrichten, aber es kostet Geld und ich möchte es mit Heroku tun! Ich denke, dass es Fälle gibt, deshalb werde ich eine Methode dafür einführen.

Docker Container

Die Bereitstellung mit Docker Container ist jetzt in Heroku möglich. Verwenden Sie diese Option, anstatt das Buildpack zu bearbeiten. Ist bequemer. Unten finden Sie ein offizielles Beispiel. Bitte beziehen Sie sich darauf.

heroku-examples/python-miniconda

Jetzt müssen Sie nichts mehr mit apt-get installieren oder sich beschweren, dass Ihre Schlackengröße zu groß ist!

Conda buildpack Bibliotheken wie Numpy und Scipy sind normalerweise recht schwierig von "pip" zu installieren, dh aus dem Quellcode zu erstellen. Es gibt eine Ausführungsumgebung namens Miniconda, die dies vermeiden kann, dh die kompilierte Binärdatei installiert. Es wird jedoch ein Build Pack bereitgestellt, das auf Heroku verwendet werden kann. Ich bin.

conda-buildpack

Es gibt zwei Möglichkeiten, ein Buildpack auf Heroku einzurichten: Geben Sie es beim Erstellen an oder ändern Sie es später.

** Bei der Erstellung angegeben **

heroku create --buildpack https://github.com/kennethreitz/conda-buildpack.git

** Später angeben **

heroku config:add BUILDPACK_URL=https://github.com/kennethreitz/conda-buildpack.git

Um es zu verwenden, bereiten Sie einfach conda-require.txt ( require.txt in conda) für die Installation mit conda vor. Diejenigen, die nicht von conda bereitgestellt werden, können auch mit pip installiert werden. Wenn Sie also mit pip installieren müssen, können Sie trotzdem in "require.txt" schreiben.

Die Schwierigkeit besteht darin, dass die durch conda erstellte Umgebung mit virtualenv in Konflikt steht und nicht zusammen verwendet werden kann. Wenn Sie in Heroku bereitstellen möchten, müssen Sie daher conda verwenden, um die virtuelle Umgebung zu erstellen. Eine einfache Verwendung des Befehls conda finden Sie unter hier.

Stellen Sie das Build Pack in Heroku ein und bereiten Sie die Einstellungsdatei für conda vor. Jetzt können Sie Anwendungen mit Bibliotheken für maschinelles Lernen auf Heroku ausführen.

Ich habe ein Repository erstellt, das ich tatsächlich mit conda-buildpack ausprobiert habe. Da es einen Heroku-Button hat, kann es so eingesetzt werden, wie es ist.

number_recognizer

Heroku buildpack Dies ist ein Build Pack, das ich erstellt habe, weil ich die Existenz von "conda-buildpack" nicht kannte und es wie gewohnt basierend auf pip bereitstellt.

Das Kompilieren von scipy dauert jedoch so lange, dass bei Heroku eine Zeitüberschreitung auftritt (stellen Sie sicher, dass Sie Numpy erstellen können). Die einzige Möglichkeit, dies zu überwinden, ist die Verwendung eines besseren Dyno. Ich denke, es ist schwierig mit der kostenlosen Stufe.

Heroku buildpack: Python with Numpy, Scipy, scikit-learn

Es ist nicht nur mit Numpy und Scipy kompatibel, es wurde auch entwickelt, um die Kompilierungsumgebung zu verbessern. Daher sollte es universell für Dinge funktionieren, die von ähnlichen Bibliotheken abhängen (solche, die). Ich denke, es wird von conda bereitgestellt ...). Wenn pip nicht funktioniert hat und Sie bei der Bereitstellung von Heroku aufgegeben haben, funktioniert es möglicherweise auch dafür.

Sie können heroku-buildpack-apt verwenden, um die Bibliothek mit apt-get in der hier verwendeten Heroku-Umgebung zu installieren, oder mehrere Build-Packs verbinden. heroku-buildpack-multi kann in anderen Szenen nützlich sein, da es nützlich sein kann, sich daran zu erinnern. heroku-buildpack-multi kann verwendet werden, wenn bower usw. verwendet wird (bower mit dem Buildpack für Node.js verarbeiten und dann den Prozess mit dem Buildpack für den Hauptteil ausführen).

Recommended Posts

Verwenden Sie Numpy, Scipy, Scikit-Learn mit Heroku
Verwenden Sie Numpy, Scipy, Scikit-Learn unter Amazon Linux
Verwenden Sie OpenBLAS mit numpy, scipy
Python + Django + Scikit-Learn + Mecab (1) mit Heroku
Python + Django + Scikit-Learn + Mecab (2) mit Heroku
Verwenden Sie Numpy
Installieren Sie CVXOPT, NumPy, SciPy auf Travis CI
Verwenden Sie BLAS / LAPACK mit mehreren Threads mit numpy / scipy
Redis auf Heroku
Wenn Sie NumPy, Pandas, Matplotlib, IPython, SciPy unter Windows verwenden möchten
Shimehari auf Heroku
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Bis zur Verwendung von PhantomJS mit Python auf Heroku
Verwenden Sie pyvenv unter Windows
Installiere numpy auf Marvericks
Wie benutzt man numpy?
Verwenden Sie Ansible unter Windows
Verwenden Sie QuTiP unter Windows
Verwenden Sie pip unter Windows
Verwenden Sie matplotlib unter Ubuntu 12 und Python
Verwenden Sie music21 in Google Colaboratory
Verwenden Sie Github Desktop unter Linux
Stellen Sie die Masonite-App auf Heroku 2020 bereit
Mein umgekehrtes Numpy / Scipy-Memo
Verwenden Sie matplot libwidget auf dem Mac
Verwenden Sie Python unter Windows (PyCharm)
Verwenden Sie NeoPixel mit Himbeerkuchen
Verwenden Sie Linux unter Windows 10 (WSL2)
Installation von Python, Numpy, Scipy ohne Root-Rechte unter Linux