====== 201106_TensorFlow ======
[[ml:index.html|機械学習の記事 2020年版]]
[[ml:201116_tfjs-express-netlify|201116 TensorFlow.jsアプリ(express利用)をnetlifyにデプロイ]]
===== リンク =====
https://i-doctor.sakura.ne.jp/font/?p=45117
Microsoftの機械学習アプリLobe(beta版)でリンゴとみかんを分類するWEBアプリ作成を試してみる(6)Windows10にTensorFlow.jsの環境構築とDEMOアプリのNetlifyへのデプロイ
2020年11月12日
[[ml:201116_tfjs-express-netlify|201116 TensorFlow.jsアプリ(express利用)をnetlifyにデプロイ]]
===== モデルの保存 =====
TensorFlowで保存できるモデルの形式は2つ
-SavedModel
-HDF5
Loabでエクスポートされるモデルの形式は
''%%TensorFlow 1.15 SavedModel%%''
SavedModelは、以下のような構成である。
-assets
-saved_model.pb
-variables
{{ :ml:img_20201106_173736.jpg |}}
https://www.tensorflow.org/tutorials/keras/save_and_load?hl=ja
公式マニュアル
モデルの保存と復元
https://www.tensorflow.org/guide/saved_model?hl=ja
SavedModel形式の使用
https://www.tensorflow.org/js/tutorials/conversion/import_saved_model?hl=ja
TensorFlow SavedModelから、
TensorFlow.jsが読み込める形式への変換
===== TensorFlow.jsのDemoをローカル環境で試してみる =====
-nvm-windowsのインストール。zipファイルをダウンロードしてインストール
-Node.js ''%%nvm list available, nvm install 14.15.0, nvm use 14.15.0%%''
-yarn ''%%npm install -g yarn%%''
-C:/python/フォルダに、https://github.com/tensorflow/tfjs/tree/master/tfjs-converter/demo/mobilenet のtfjs-converter/以下をダウンロードする
-tfjs-converter/ フォルダをVSCodeで開く
-cd demo # If not already in the demo directory.
-yarn # Installs dependencies.
-yarn mobilenet # Starts a web server and opens a page. Also watches for changes.
-Chromeで開く
-サーバを停止(Ctrl+Cかな?)
-npm i -D webpack webpack-cli
-package.jsonの変更 "scripts": { "build": "webpack" },→これで、npm run build を使用できるようになる
-webpack.config.jsをカスタマイズする
-npm i -D webpack webpack-cli webpack-dev-server
-package.jsonのscriptsのところに、"start": "webpack serve" を追加
-webpack.config.jsにdevServerを追加
-npm run startでサーバを立ち上げる
-GitHubにpush
-Netlifyにデプロイ(npm run build, dist)
module.exports = {
// メインとなるJavaScriptファイル(エントリーポイント)
entry: `./demo/index.js`,
// ファイルの出力設定
output: {
// 出力ファイルのディレクトリ名
path: `${__dirname}/dist`,
// 出力ファイル名
filename: "main.js"
},
// モード値を production に設定すると最適化された状態で、
// development に設定するとソースマップ有効でJSファイルが出力される
mode: "development"
// ローカル開発用環境を立ち上げる
// 実行時にブラウザが自動的に localhost を開く
devServer: {
contentBase: "dist",
open: true
}
};
===== Node.js =====
nvm-windows
https://github.com/coreybutler/nvm-windows/releases/tag/1.1.7
https://qiita.com/akuden/items/a88630de9624039c4135
@akuden
2018年10月15日
nvm-windowsでNode.jsバージョン管理
https://qiita.com/rapando/items/6e9d891789b9a652c318
@rapando
2020年09月12日に更新
nvm-windows 導入
https://i-doctor.sakura.ne.jp/font/?p=38104
nvm-windowsでnodejsのバージョンを上げる(Windows10)
2019年5月12日
npm install -g yarn
Webpack
https://ics.media/entry/12140/
最新版で学ぶwebpack 5入門
JavaScriptのモジュールバンドラ
2020年10月12日 メンテナンス済み / 株式会社ICS 池田 泰延
https://qiita.com/soarflat/items/3e43368b2d767c730781
@soarflat
2020年10月27日に更新
Parcel 入門 ~Parcelはwebpackの代わりになるのか~
===== TensorFlow.js =====
ステップ1.既存のTensorFlowモデルをTensorFlow.jsウェブ形式に変換する
pipenv install tensorflowjs
pipenv shell
tensorflowjs_wizard
# 対話的にtf_saved_modelからtfjs_graph_modelへのconversionを実行、または以下を入力
tensorflowjs_converter \
--input_format=tf_saved_model \
--output_format=tfjs_graph_model \
--signature_name=serving_default \
--saved_model_tags=serve \
/mobilenet/saved_model \
/mobilenet/web_model
コンバーターが生成したファイル
上記の変換スクリプトは、2種類のファイルを生成します。
-model.json (データフローグラフとウェイトマニフェスト)
-group1-shard\*of\* (バイナリウェイトファイルのコレクション)
ステップ2:ブラウザーでのロードと実行
Windowsであれば、
-nvm-windowsのインストール
-Node.jsをインストール
-使用するNode.jsを指定
-yarnをインストール
の後、
yarn add @tensorflow/tfjs
または npm install @tensorflow/tfjs
モデルを読み込み、推論するコード
import * as tf from '@tensorflow/tfjs';
import {loadGraphModel} from '@tensorflow/tfjs-converter';
const MODEL_URL = 'model_directory/model.json';
const model = await loadGraphModel(MODEL_URL);
const cat = document.getElementById('cat');
model.execute(tf.browser.fromPixels(cat));
https://github.com/tensorflow/tfjs/tree/master/tfjs-converter/demo/mobilenet
MobileNet デモ
https://github.com/tensorflow/tfjs/tree/master/tfjs-converter
tf_saved_model 変換前
tfjs_graph_model 変換後
Convert a TensorFlow SavedModel to TensorFlow.js graph model format. Use tf.loadGraphModel() to load the converted model in JavaScript.
tf.loadGraphModel()
https://js.tensorflow.org/api/1.0.0/#loadGraphModel
https://www.tensorflow.org/js/tutorials/conversion/import_saved_model
TensorFlow GraphDefベースのモデルをTensorFlow.jsにインポートする
https://qiita.com/kwashi/items/12d2dfe653699ccfe3f4
@kwashi
2020年02月19日
【tensorflowjs_converter】TensorflowのモデルをTensorflow.jsの形式へ変換する方法
http://developers.goalist.co.jp/entry/keras-to-production
2019-5-16
kerasのモデルをデプロイする手順
https://note.com/npaka/n/nc3f24021c6e9
TensorFlow GraphDefモデルをTensorFlow.jsにインポートする
npaka
2020/04/26 20:17
https://qiita.com/iwatake2222/items/0092b4b95ed2bc50c9ce
@iwatake2222
2020年01月25日
Deep Learningアプリケーション開発 (8) TensorFlow.js
{{:ml:pasted:20201111-223713.png}}
https://note.com/npaka/n/ndb93d6d41210#wXEM8
TensorFlow.js 入門 / 画像分類
npaka
2020/05/11 18:50
https://book.mynavi.jp/manatee/detail/id=99768
2018.11.05
機械学習で遊ぼう! APIサービスやTensorFlowを使ったサンプルレシピ集
第16回 TensorFlow.jsで「じゃんけん」を判別してみよう
ポンダッド(著者)
https://github.com/PonDad/manatee/tree/master/1_sign_language_digits_classification-master
TensorFlow.jsで「じゃんけん」を判別してみよう
(ソースコード)
https://js.tensorflow.org/api/latest/#model
{{:ml:pasted:20201115-083256.png}}
https://book.mynavi.jp/manatee/detail/id=99768
{{:ml:pasted:20201115-083640.png}}
https://www.petitmonte.com/python/tensorflow_js_hello_world.html
TensorFlow.jsのHello World [WebでAIモデルを実行する]
20180824
→model.execute をalertで表示している。tf.tidy()関数はメモリリーク対策なので気にせずコピペでよさそう。
// tf.tidyはメモリリークを回避する為に使用する定型メソッドです。
z = tf.tidy(function(){
// モデルの推論
return model.execute({"X/Placeholder": tf.scalar(5, 'int32')}).dataSync();
})
alert(z)
https://stackoverflow.com/questions/63985396/what-do-i-use-instead-of-tensor-datasync-to-get-the-predicted-value-in-tensorf
tf.dataSync()
===== jQuery =====
https://webllica.com/jquery-innerhtml-edit-get-add-del/
ボタンクリックでテキスト書き換え
document.getElementById("")
innerHTML()
===== ローカルでTensorFlow.jsを動かして特定の画像001.jpgを推定する流れ =====
-pipenv install tensorflowjs でtensorflowjsをインストール
-pipenv shell
-LoabでエクスポートされたモデルTensorFlow 1.15 SavedModelをtfjs_graph_model 形式に変換する
-tfjs_graph_model 形式のモデルのファイル群を/tfjs_model/ フォルダに保存する
-具体的には、tensorflowjs_wizard により、対話的に、tf_saved_modelからtfjs_graph_modelへのconversionを実行
-nvm-windowsのインストールとnpmのインストール
-yarnのインストール
-yarn add @tensorflow/tfjs
-VisualStudioCodeの以下のextensionをインストール, Debugger for Chrome, Live Server, 必要に応じてESLint, HTMLHint, IntelliSense for CSS class name in HTML
-test.htmlの作成
-リンゴの画像を001.jpgという名前で保存
-
test.html 訂正中
Test TensorFlow.js
https://codeaid.jp/vscode-js-debug/
Visual Studio CodeでJavaScriptのデバッグ方法
2020年3月5日
Vscodeの拡張機能で
-Debugger for Chrome
-Live Server
をインストール
webpack
https://ics.media/entry/12140/
最新版で学ぶwebpack 5入門
JavaScriptのモジュールバンドラ
2020年10月12日 メンテナンス済み / 株式会社ICS 池田 泰延
===== index.html 変更中 =====
original code from https://qiita.com/iwatake2222/items/0092b4b95ed2bc50c9ce
Test TensorFlow.js
===== Lobeで出力したモデルをTensorFlow.js形式に変換してNetlifyにデプロイする流れ =====
開発環境
Windows10 Pro
VisualStudioCode 1.51.0
Git for Windows v2.29.2
python 3.6
pip 20.2.4
pipenv 2020.11.4
(仮想環境)
python 3.6
TensorFlow 1.15.3
pillow 7.2.0
autopep8
flake8
mypy
nvm-windows
Node.js
yarn
-pipenv install tensorflowjs でtensorflowjsをインストール
-pipenv shell
-Loabでエクスポートされたモデル
-TensorFlow 1.15 SavedModelをtfjs_graph_model 形式に変換する
-具体的には、tensorflowjs_wizard により、対話的に、tf_saved_modelからtfjs_graph_modelへのconversionを実行
===== Express =====
https://prog-8.com/docs/nodejs-new-application
Node.jsの新規アプリケーションを作ろう!
===== Glitch =====
https://qiita.com/yonedaco/items/569bcc442872a1f9a03d
@yonedaco
2020年03月18日に更新
[Node.js] 無料で簡単にウェブアプリを公開できるサービス「Glitch」を使ってみた!
===== リンク =====
[[ml:index.html|機械学習の記事 2020年版]]
[[ml:201116_tfjs-express-netlify|201116 TensorFlow.jsアプリ(express利用)をnetlifyにデプロイ]]