https://i-doctor.sakura.ne.jp/font/?p=44635
Microsoftの機械学習アプリLobe(beta版)でリンゴとみかんを分類するWEBアプリ作成を試してみる(1)LobeのインストールからTensorFlowモデルのエクスポートまで
https://i-doctor.sakura.ne.jp/font/?p=44703
Microsoftの機械学習アプリLobe(beta版)でリンゴとみかんを分類するWEBアプリ作成を試してみる(2)Windows10でTensorFlow1.15をセットアップ
2020年11月5日
https://i-doctor.sakura.ne.jp/font/?p=44808
Microsoftの機械学習アプリLobe(beta版)でリンゴとみかんを分類するWEBアプリ作成を試してみる(3)Windows10ローカル環境でtf_example.pyを実行
2020年11月8日
https://i-doctor.sakura.ne.jp/font/?p=44883
Microsoftの機械学習アプリLobe(beta版)でリンゴとみかんを分類するWEBアプリ作成を試してみる(4)Windows10ローカル環境でFlaskを用いて画像判定
2020年11月9日
https://qiita.com/tkinjo1/items/bbcb77fb0f4b8fe79a81
@tkinjo1
2020年11月04日に更新
Lobeで学習したモデルをPythonで利用する方法
https://github.com/lobe/web-bootstrap
lobe/web-bootstrap
Bootstrap your Lobe web project
これが実行できるなら楽、、、
2020/11/8現在、 Under Construction
期待して待っています。
りんごとみかんを学習してエクスポートしたファイル
→https://github.com/adash333/lobe-AppleOrange-tf1model/tree/3a9c48ba6128094491d63d135a84c750270adf51
エクスポートしたファイルの一部
→https://gist.github.com/adash333/ce7f4e9d904321092af5d8fda24cada2
TensorFlow形式でエクスポートすると、
TensorFlow 1.15 SavedModelで保存される。
https://docs.lobe.ai/docs/export/export/
(引用ここから)
Local Python app or hosted on Azure, Google Cloud, or AWS
Export your model as a TensorFlow 1.15 SavedModel. TensorFlow’s SavedModel is the standard format used in Python applications running TensorFlow 1.x, and can be deployed in TensorFlow web services to run inference on the cloud as an API.
(引用ここまで)
https://www.kkaneko.jp/tools/win/tensorflow1.html
TensorFlow 1.15.3(旧バージョン)のインストール(Windows 上)
→Windowsで、TensorFlow1.15を使うためには、Python3.7である必要あり。(2020/06 時点)おそらく、Python3.8はダメ。
→さらに、lobeでモデルをエクスポートしたときに出てくるファイルの一部は外部リンクのようになっているため、python 3.6が望ましい。
https://qiita.com/d-kitamura/items/3b8c4ac362668cac6e75
@d-kitamura
2020年03月12日に更新
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
pipenv --python 3.6
pipenv install autopep8 flake8 mypy --dev
pipenv install numpy matplotlib
python test.py
pipenv install tensorflow==1.15.3
pipenv install keras==2.3.1
2019年10月にTensorFlow2.0がリリース。
https://qiita.com/Suguru_Toyohara/items/da76e3d27e4ca0058885
@Suguru_Toyohara
2019年12月06日に更新
TensorFlow2.0 Advent Calendar 20191日目
Re:ゼロから始めるTensorFlow2.0
https://qiita.com/IchiLab/items/675e98ae827ae5b8bbbe
@IchiLab
2020年07月10日に更新
TensorFlowのバージョン1と2を比較したレシピ集(その1)
http://wshinya.hatenablog.com/entry/2019/10/18/144025
TensorFlow2.0への移行メモ
https://medium.com/analytics-vidhya/deploy-ml-tensorflow-model-using-flask-backend-frontend-12a38ce53b7f
Deploy ML tensorflow model using Flask(backend+frontend)
Hasan Haider
Apr 16 2020
https://www.infiniteloop.co.jp/blog/2018/01/learning-keras-05/
2018年1月23日
入門 Keras (5) 学習済みモデルと Flask で API サービスを作る
https://stackoverflow.com/questions/61928192/tensorflow-can-i-run-my-tensorflow-model-directly-in-flask
Tensorflow: Can I run my tensorflow model directly in flask?
https://qiita.com/3BMKATYWKA/items/52d1c838eb34133042a3
@3BMKATYWKA
2020年03月23日
Python × Flask × Tensorflow.Keras 猫の品種を予測するWebアプリ
https://note.com/navitime_tech/n/nc0381517d067
Python 製 Web フレームワークを Flask から FastAPI に変えた話
NAVITIME_Tech
2020/08/28 14:11
https://ferret-plus.com/8498
GitHub Desktop:初心者でも分かる、易しい使い方
2020年09月30日
→ Windowsでは、gitとVScodeでやった方がよさそう。(GitHub Desktopは不要そう)
https://laboradian.com/git-installation-on-wndows/
Git for Windows のインストール手順
投稿日:2020年3月6日 更新日:2020年4月20日
nodeは、nvm-windowsを用いてインストールする
https://mosapride.com/index.php/2018/04/23/post-810/
【Windows】nvmからnode.jsをインストールする
2018/4/23 2019/2/6
https://qiita.com/jesus_isao/items/63557eba36819faa4ad9
@jesus_isao
2020年02月11日に更新
君には1時間でGitについて知ってもらう(with VSCode)
https://qiita.com/grundtein/items/a22f2995bdeee1916f29
@grundtein
2020年06月12日に更新
初心者が5分で無料でWebアプリをネット公開する。
https://backlog.com/ja/git-tutorial/intro/07/
サル先生のGit入門
チュートリアル1 Gitの基本
新しいリポジトリを作成する
https://qiita.com/inabe49/items/16ee3d9d1ce68daa9fff
@inabe49
2016年08月04日に更新
.gitignore の書き方
https://www.atmarkit.co.jp/ait/articles/2003/05/news006.html
Linux基本コマンドTips(381):
【 git clone 】コマンド――Gitのリポジトリを複製する
2020年03月05日 05時00分 公開
https://techacademy.jp/magazine/10274
git pullを使ってリモートリポジトリと同期する方法【初心者向け】
2017/4/12
https://prius.cc/itya/20181218_vscode-workspace
vscodeの利用に必須な”ワークスペース”の概念
2018年12月18日
規定ではワークスペースは作成されないので、明示的に作成する必要がある。作成してもしなくてもいい、と考えるのは間違いで、vscodeを効率的に使うためには作成必須である
https://www.premium-tsubu-hero.net/technology/programming/visualstudiocode-workspace/
2020年6月26日 投稿者: ¥552(税込)
VSCodeの使い方-ワークスペース編-
https://qiita.com/EngTks/items/a4f875956f0b087668f6
@EngTks
2019年03月25日に更新
Visual studio codeで.vscodeディレクトリをgit管理から外す
https://qiita.com/mottox2/items/a5813feeaf653ef3e2c3
@mottox2
2020年04月04日に更新
プロジェクトごとにVSCodeの色とテーマを変えて気持ちを切り替える
https://qiita.com/y-w/items/614843b259c04bb91495
@y-w
2020年10月18日に更新
VS Codeのsettings.jsonの開き方
https://qiita.com/surei/items/9f25d7efa7c67d55d98f
@surei
2020年04月19日に更新
VS Code でPython,Jupyter を動かす
https://qiita.com/_ayk_study/items/5d5976eb53994a4be7a4
@_ayk_study
2019年05月06日に更新
【Windows】Visual Studio CodeにおいてターミナルをPowershellからコマンドプロンプトに変更する
https://qiita.com/y-tsutsu/items/2ba96b16b220fb5913be
@y-tsutsu
2020年05月02日に更新
VSCodeでのGitの基本操作まとめ
https://qiita.com/yu0313/items/4f95fc0b7e544c42e107
@yu0313
2020年01月23日に更新
GitHubとVSCODEの連携方法
https://www.premium-tsubu-hero.net/technology/programming/visualstudiocode-slide/?amp
2020年6月27日 投稿者: ¥552(税込)
VSCodeの使い方-Markdownでパワポ編-
機械学習であれば、GoogleColabを利用すればよいし、Flaskなどのwebプログラミングも行いたいので、私の場合は、Anacondaではなく、vanilla Pythonをインストールする方針。
pipenvを用いる
仮想環境の作成 pipenv --three 仮想環境を有効にする pipenv shell 仮想環境を無効にする exit パッケージのインストール pipenv install [name]
venvの場合は、仮想環境実行中は、コマンド プロンプトの先頭に (.venv) と表示されるが、pipenvの場合は?
https://www.python.jp/install/windows/install.html
Windows版Pythonのインストール
https://qiita.com/youkidkk/items/b674e6ace96eb227cc28
@youkidkk
2020年05月04日に更新
Windows + Python + PipEnv + Visual Studio Code でPython開発環境
https://qiita.com/KRiver1/items/c1788e616b77a9bad4dd
@KRiver1
2019年09月12日に更新
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。
→pipenvに決定
https://qiita.com/psychoroid/items/2c2acc06c900d2c0c8cb
@psychoroid
2018年11月06日
VSCodeのPython開発環境でpylintの代わりにflake8を導入し自動整形を設定する
→autopep8とblackがあるらしいが、とりあ、autopep8にしておく方針
https://www.kimoton.com/entry/20181223/1545540702
これで決まり!最強自動コード整形ツール3選!
https://qiita.com/tsu_0514/items/2d52c7bf79cd62d4af4a
@tsu_0514
2019年10月05日に更新
Blackできれいに自動整形!flake8とBlack導入と実行
https://www.macky-studio.com/entry/2019/07/04/152323
2019-07-04
【VS Code】BlackとFlake8を使ってきれいなPythonコードを書く!!
https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a
@y-tsutsu
2020年09月12日に更新
Pipenvを使ったPython開発まとめ
https://rinatz.github.io/python-book/ch04-05-pipenv/
ゼロから学ぶPython
pipenv
https://qiita.com/yniji/items/b1b20211846a5a9f189b
@yniji
2019年10月18日に更新
Python 環境構築いろいろ - Windows
https://qiita.com/rubytomato@github/items/fdfc0a76e848442f374e
@rubytomato@github
2020年05月15日に更新
WSL (Windows Subsystem for Linux)の基本メモ
https://www.atmarkit.co.jp/ait/spv/1903/18/news031.html
2019年3月18日
ITの教室:
【WSL入門】第1回 Windows 10標準Linux環境WSLを始めよう
pipenv --python 3.6 pipenv install -r ./requirements.txt pipenv update pip
https://docs.pipenv.org/basics/
Basic Usage of Pipenv
https://qiita.com/ShotaSuzuki-jr/items/daac5ff110dd2c796ef1
@ShotaSuzuki-jr
2020年10月22日
【pipenv】仮想環境の入り方
https://qiita.com/Yasshi840/items/c82cdd2810598eb16819
@Yasshi840
2020年08月12日
vscodeでpipenv使うと端末が勝手にpipenv環境内に入り込むの対処法
https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a
@y-tsutsu
2020年09月12日に更新
Pipenvを使ったPython開発まとめ
https://qiita.com/eduidl/items/c0e8256bb3a5a735d19c
@eduidl
2019年09月28日に更新
[Pipenv] uninstallよりcleanの方が多分便利
https://qiita.com/imasaaki/items/25694783ae50dd66303e
@imasaaki
2020年11月04日に更新
windowsでのpython開発環境構築例(wsl2, vscode, pipenv)
https://qiita.com/tokioto/items/0f9a1a38fe4c73c9a749
@tokioto
2020年06月04日
ちょっとよくわからないpipenvの使い方のまとめ(途中経過)
Microsoftの機械学習アプリLobe(beta版)でリンゴとみかんを分類するWEBアプリ作成を試してみる(1)LobeのインストールからTensorFlowモデルのエクスポートまででエクスポートしたモデル
https://gist.github.com/adash333/ce7f4e9d904321092af5d8fda24cada2
AppleOrange TensorFlowフォルダの中の、exampleフォルダにpython3.6の仮想環境を作成
python tf_example.py path/to/image/for/testing
pipenv --python 3.6
pipenv install -r ./requirements
pipenv install autopep8 flake8 mypy --dev
とVSCodeのWorkspaceの設定(外部リンク)python tf_example.py 001.jpg
https://docs.python.org/ja/3/library/index.html
Python 標準ライブラリ
https://qiita.com/tkinjo1/items/bbcb77fb0f4b8fe79a81
@tkinjo1
2020年11月04日に更新
Lobeで学習したモデルをPythonで利用する方法
https://i-doctor.sakura.ne.jp/font/?p=20440
pipenv --python 3.6
pipenv install example/requirements.txt
pipenv install autopep8 flake8 mypy --dev
pipenv install flask
# print("result:", result[0], "(0:りんご, 1:オレンジ)") predict = result[0] return render_template('index.html', filepath = filepath , predict = predict )
index.html(外部リンク)
<html> <body> {% if predict %} <img src="{{filepath}}" border="1"> <p>predict: {{predict}}</p> {% endif %} <br> <p>ファイルを選択して送信してください</p> <form action="./" method="POST" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" /> </form> </body> </html>
以下のコードは修正が必要
#original code from Microsoft Corporation # original code from https://recipe.narekomu-ai.com/2017/10/chainer_web_demo_2/ import argparse import os import json import tensorflow as tf from PIL import Image import numpy as np from flask import Flask, render_template, request, redirect, url_for from datetime import datetime import sys MODEL_DIR = os.path.join(os.path.dirname(__file__)) class Model(object): def __init__(self, model_dir=MODEL_DIR): # make sure our exported SavedModel folder exists model_path = os.path.realpath(model_dir) if not os.path.exists(model_path): raise ValueError(f"Exported model folder doesn't exist {model_dir}") self.model_path = model_path # load our signature json file, this shows us the model inputs and outputs # you should open this file and take a look at the inputs/outputs to see their data types, shapes, and names with open(os.path.join(model_path, "signature.json"), "r") as f: self.signature = json.load(f) self.inputs = self.signature.get("inputs") self.outputs = self.signature.get("outputs") # placeholder for the tensorflow session self.session = None def load(self): self.cleanup() # create a new tensorflow session self.session = tf.compat.v1.Session(graph=tf.Graph()) # load our model into the session tf.compat.v1.saved_model.loader.load(sess=self.session, tags=self.signature.get("tags"), export_dir=self.model_path) def predict(self, image: Image.Image): # load the model if we don't have a session if self.session is None: self.load() # get the image width and height width, height = image.size # center crop image (you can substitute any other method to make a square image, such as just resizing or padding edges with 0) if width != height: square_size = min(width, height) left = (width - square_size) / 2 top = (height - square_size) / 2 right = (width + square_size) / 2 bottom = (height + square_size) / 2 # Crop the center of the image image = image.crop((left, top, right, bottom)) # now the image is square, resize it to be the right shape for the model input if "Image" not in self.inputs: raise ValueError("Couldn't find Image in model inputs - please report issue to Lobe!") input_width, input_height = self.inputs["Image"]["shape"][1:3] if image.width != input_width or image.height != input_height: image = image.resize((input_width, input_height)) # make 0-1 float instead of 0-255 int (that PIL Image loads by default) image = np.asarray(image) / 255.0 # create the feed dictionary that is the input to the model # first, add our image to the dictionary (comes from our signature.json file) feed_dict = {self.inputs["Image"]["name"]: [image]} # list the outputs we want from the model -- these come from our signature.json file # since we are using dictionaries that could have different orders, make tuples of (key, name) to keep track for putting # the results back together in a dictionary fetches = [(key, output["name"]) for key, output in self.outputs.items()] # run the model! there will be as many outputs from session.run as you have in the fetches list outputs = self.session.run(fetches=[name for _, name in fetches], feed_dict=feed_dict) # do a bit of postprocessing results = {} # since we actually ran on a batch of size 1, index out the items from the returned numpy arrays for i, (key, _) in enumerate(fetches): val = outputs[i].tolist()[0] if isinstance(val, bytes): val = val.decode() results[key] = val return results def cleanup(self): # close our tensorflow session if one exists if self.session is not None: self.session.close() self.session = None def __del__(self): self.cleanup() #Flaskオブジェクトの生成 app = Flask(__name__) #「/」へアクセスがあった場合 @app.route('/', methods = ['GET', 'POST']) def upload_file(): if request.method == 'GET': return render_template('index.html') if request.method == 'POST': # アプロードされたファイルを保存する f = request.files['file'] filepath = "./static/" + datetime.now().strftime("%Y%m%d%H%M%S") + ".jpg" f.save(filepath) parser = argparse.ArgumentParser(description="Predict a label for an image.") parser.add_argument("image", help="Path to your image file.") args = parser.parse_args() if os.path.isfile(args.image): image = Image.open(args.image) # convert to rgb image if this isn't one if image.mode != "RGB": image = image.convert("RGB") # モデルを使って判定する model = Model() model.load() outputs = model.predict(image) predict = f"Predicted: {outputs}" # print(f"Predicted: {outputs}") else: predict = f"Couldn't find image file {args.image}" # print(f"Couldn't find image file {args.image}") return render_template('index.html', filepath = filepath , predict = predict ) if __name__ == '__main__': app.run(host="0.0.0.0", port=int("5000"),debug=True)
path = os.getcwd()
現在のディレクトリのパスを取得
https://note.nkmk.me/python-os-getcwd-chdir/
Pythonでカレントディレクトリを取得、変更(移動)
Posted: 2018-04-16
https://stackoverrun.com/ja/q/1997027
os.path.dirname(file) returns empty
https://www.atmarkit.co.jp/ait/spv/1910/25/news021.html
2019年10月25日
Python入門:
[Python入門]ディレクトリ操作の基本 (1/3)
https://note.nkmk.me/python-f-strings/
Pythonのf文字列(フォーマット済み文字列リテラル)の使い方
Posted: 2018-06-11
https://www.atmarkit.co.jp/ait/spv/1904/16/news013_2.html
2019年4月16日
Python入門:[Python入門]文字列の基本 (2/2)
https://www.sejuku.net/blog/23647
【Python入門】argparseでコマンドライン引数を使ってみよう!
長野 透
2020/5/8
→ argparseとはPythonの標準ライブラリのひとつで、コマンドライン引数を扱いやすくしてくれるモジュール
→ コマンドラインでなければ不要。
https://medium.com/analytics-vidhya/deploy-ml-tensorflow-model-using-flask-backend-frontend-12a38ce53b7f
Deploy ML tensorflow model using Flask(backend+frontend)
Hasan Haider
2020/16/8
https://qiita.com/kiyokiyo_kzsby/items/0184973e9de0ea9011ed
@kiyokiyo_kzsby
2019年06月29日に更新
Webアプリ初心者のFlaskチュートリアル
https://qiita.com/ynakayama/items/2cc0b1d3cf1a2da612e4
@ynakayama
2019年01月28日に更新
ウェブアプリケーションフレームワーク Flask を使ってみる
https://i-doctor.sakura.ne.jp/font/?p=20440
Kerasで自前データで機械学習した成果をWEBで公開(Keras+Flask)(1)
2017年10月25日
pipenv install gunicorn
pipenv shell
pip freeze > requirements.txt
web: gunicorn app:app --log-file -
python-3.6.8
heroku --version
heroku login
heroku create
https://qiita.com/NOGU626/items/d127215a4d14a81c3a62
@NOGU626
2020年10月25日に更新
Heroku入門、Flaskアプリをデプロイ
https://note.com/on_bass/n/n0495484a2b2b
【Windows10】HerokuのCLIダウンロードからデプロイまで
なつめ
2019/04/15 16:53
https://techacademy.jp/magazine/26403
herokuを利用したPythonアプリケーションのデプロイ方法を現役エンジニアが解説【初心者向け】
https://qiita.com/ahpjop/items/e333eaf304dcdd72d886
@ahpjop
2019年09月05日に更新
【完全版】Flaskで作ったAPIをHerokuにデプロイする手順(備忘録)
https://tanuhack.com/deploy-flask-heroku/
HerokuにFlaskアプリ(hello world)をデプロイする方法まとめ
2019年9月30日
https://i-doctor.sakura.ne.jp/font/?p=20570
Kerasで自前データで機械学習した成果をWEBで公開(Keras+Flask)(2)「FlaskアプリをHerokuで公開」
2017年10月28日
https://qiita.com/chihiro/items/5c3ff400f6cb99deb945
@chihiro
2019年08月28日に更新
【herokuコマンド】createからdestroyまで
私の場合は勝手に
Installing pip 9.0.2, setuptools 47.1.1 and wheel 0.34.2
となってしまう。
http://5.9.10.113/64679676/cant-deploy-mysqlclient-on-heroku-via-pipfile-lock
https://stackoverflow.com/questions/64679676/cant-deploy-mysqlclient-on-heroku-via-pipfile-lock
https://stackoverrun.com/ja/q/11644217
wheel ?
Simply replace the tensorflow==1.0.0 line in your requirements.txt with https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp27-none-linux_x86_64.whl
https://www.tensorflow.org/install/pip?hl=ja#virtual-environment-install
やっと見つけた?
https://pypi.org/project/tensorflow/1.15.3/#files
Filename, size
tensorflow-1.15.3-cp36-cp36m-manylinux2010_x86_64.whl (110.5 MB)
https://files.pythonhosted.org/packages/02/36/9a02e27f0ec248b676a380ffe910c1858e3af3027c0d4d513dd0b56a5613/tensorflow-1.15.3-cp36-cp36m-manylinux2010_x86_64.whl
requirements.txtの
tensorflow==1.15.3
を
https://files.pythonhosted.org/packages/02/36/9a02e27f0ec248b676a380ffe910c1858e3af3027c0d4d513dd0b56a5613/tensorflow-1.15.3-cp36-cp36m-manylinux2010_x86_64.whl
に書き換えたら、うまくいった。
Lobeで出力したTensorFlowのモデルと、
TensorFlow.js用のモデルは別物とのこと。
https://qiita.com/kwashi/items/12d2dfe653699ccfe3f4
@kwashi
2020年02月19日
【tensorflowjs_converter】TensorflowのモデルをTensorflow.jsの形式へ変換する方法
https://qiita.com/studio_haneya/items/00311534d6fc9a32b570
@studio_haneya
2020年02月14日
TensorFlow.jsを使ってjavascript上でkerasモデルを使う
https://qiita.com/kazuhitoyokoi/items/e4da2dc1c39c0a11569e
@kazuhitoyokoi
2020年07月22日
TensorFlow.jsノードをNode-REDで使ってみる
https://techblog.exawizards.com/entry/2018/11/01/174122
Tensorflow.jsを用いたブラウザで動く物体認識
https://blog.dcs.co.jp/deep-learning/keras.html
Kerasで作成したディープラーニングモデルをブラウザ上で動かしてみた
2020年1月16日 深層学習
→難しいか?
https://qiita.com/sasaco/items/9c7a4e247710ed747dbd
@sasaco
2020年05月15日に更新
Tensorflow.Keras で学習したモデルをtensorflow.jsで使う
→Colab、Angularを使用。
https://qiita.com/kwashi/items/35883352bf3f07e4253b
@kwashi
2020年02月19日に更新
はじめてのTensorflow.js
https://note.com/npaka/n/ndb93d6d41210
TensorFlow.js 入門 / 画像分類
npaka
2020/05/11