Tout en étudiant l'apprentissage automatique, je voulais créer quelque chose, et je voulais aussi toucher l'outil de visualisation Plotly, j'ai donc travaillé sur le développement d'une application avec Dash, qui utilise Plotly. Le livrable réellement créé sera ici. J'ai écrit cet article dans le but de conserver un dossier d'apprentissage. Je suis un débutant dans le développement d'applications, mais merci.
J'espère que cela sera utile pour ceux qui sont intéressés par le développement d'applications avec Dash, ou ceux qui souhaitent créer des artefacts liés à l'apprentissage automatique et à la science des données, mais se demandent quoi créer. Il est supposé que vous connaissez Docker. À propos de Docker, [blog de Kame-san](https://datawokagaku.com/category/%e8%ac%9b%e5%ba%a7%e4%b8%80%e8%a6%a7/docker%e8% b6% 85% e5% 85% a5% e9% 96% 80 /) (cours Udemy si vous voulez apprendre en profondeur) est facile à comprendre et recommandé.
Dash est l'un des frameworks d'application Web de Python. Il s'agit d'un framework open source développé par Plotly, et peut être utilisé dans d'autres langages tels que R. Django et flask sont célèbres parmi les frameworks d'applications Web de Python, mais Dash se caractérise par ** une spécialisation dans la visualisation **. Flask, Plotly.js et React.js s'exécutent sur le back-end de Dash, et le noyau Plotly.js est un outil de visualisation basé sur JavaScript qui vous permet de dessiner des diagrammes interactifs. En résumé, Dash facilite la création d'applications de tableau de bord dynamiques sans aucune ** connaissance de JavaScript **. Même si vous l'expliquez avec des mots, il est difficile d'obtenir une image, alors jetez un œil à l'exemple d'application publié sur le Site officiel. Il existe de nombreuses applications d'apprentissage automatique, et le code source est également disponible sur GitHub, mais pas tous, donc je pense qu'il sera utile en tant que méthode de sortie pour l'apprentissage automatique.
L'environnement a été construit avec Docker en faisant référence à l'article de cette personne. Préparez les fichiers suivants dans le répertoire de l'application Dash ('Dash_App' cette fois).
<Structure du répertoire>
Dash_App/
├ app.py
├ Dockerfile
└ docker-compose.yml
Dockerfile
FROM python:3.7.3
USER root
RUN apt-get update
RUN apt-get install -y vim less
RUN apt-get install -y zsh less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install \
dash==1.16.3 \
pandas \
category_encoders \
scikit-learn
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
EXPOSE 5050
CMD ["bash"]
docker-compose.yml
version: '3'
services:
dash-app:
restart: always
build: .
container_name: 'dash-app'
ports:
- "5050:5050"
working_dir: '/root/'
tty: true
volumes:
- .:/root/src/
- ~/.zshrc:/root/.zshrc
J'écrirai le contenu de l'application dans app.py. Tout d'abord, pour vérifier le fonctionnement, copiez le code dans le tutoriel officiel.
app.py
import dash
import dash_core_components as dcc
import dash_html_components as html
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='Dash: A web application framework for Python.'),
dcc.Graph(
id='example-graph',
figure={
'data':[{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'}],
'layout':{'title': 'Dash Data Visualization'}
}
)
])
if __name__ == '__main__':
app.run_server(host='0.0.0.0', port=5050, debug=True)
Notez que host = '0.0.0.0' et port = 5050
sont ajoutés et spécifiés dans la partie de code (ligne du bas) qui démarre le serveur. Après avoir créé le fichier, démarrez le conteneur avec la commande suivante.
$ docker-compose up -d --build
Lorsque le conteneur démarre, entrez le conteneur et exécutez app.py
comme indiqué dans la commande suivante. * Dash-app
est le nom du conteneur spécifié dans docker-compose.yml
.
$ docker-compose exec dash-app zsh -c "python src/app.py"
S'il n'y a pas de problème, l'application démarre. Si vous accédez à localhost: 5050
à partir de votre navigateur et que l'écran de l'application ci-dessous s'affiche, vous avez réussi. * Appuyez sur "contrôle + C" pour quitter l'application.
J'ai présenté comment créer un environnement Dash avec un conteneur Docker (bien que je viens de modifier un peu le Dockerfile en regardant un autre article ...). Docker est pratique car vous pouvez créer rapidement l'environnement le plus gênant. Dans Next article (part2), je voudrais vous présenter comment écrire app.py en me concentrant sur la partie de base tout en extrayant du tutoriel officiel. .. Merci beaucoup.
Recommended Posts