今年のTensorFlow DevSummit の目玉のひとつである
TensorFlow.js をそろそろやってみようかな、
とおもいまずGetting Started ページを読んでみることにした。
といっても現時点(v0.11.1時点)はTensorFlow.jsトップページの下半分
になっている。
以下、勝手に翻訳した文章だが、参照される方は
at your own risk で参照してください。
----
あなたのブラウザでHTMLファイルを開くと、コードが実行されます!TensorFlow.js をそろそろやってみようかな、
とおもいまずGetting Started ページを読んでみることにした。
といっても現時点(v0.11.1時点)はTensorFlow.jsトップページの下半分
になっている。
以下、勝手に翻訳した文章だが、参照される方は
at your own risk で参照してください。
----
Getting Started
JavaScriptプロジェクトで TensorFlow.js を取得するには、script
タグを使用する方法と、NPMからインストールし、Parcel、 WebPack 、 Rollup などのビルドツールを使用する方法の2つの方法があります。script タグ経由
HTMLファイルに以下のコードを追加します:<html>
<head>
<!-- TensorFlow.js のロード -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.1"> </script>
<!-- 下のscriptタグ内にコードを挿入します。外部の.jsファイルを使用することもできます -->
<script>
// 'import'ステートメントがないことに注目してください。
// ひとつ上のscriptタグのため、 'tf'はindex-pageで利用できます。
// 線形回帰モデルの定義
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// トレーニング用モデルの準備:損失値とオプティマイザを指定します
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// トレーニング用合成データを生成します
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// データを使ってモデルをトレーニングします
model.fit(xs, ys).then(() => {
// モデルが以前に見たことがないデータポイントについて推論を行うには、
// モデルを使用します:
// ブラウザの開発ツールを開いて出力を確認してください
model.predict(tf.tensor2d([5], [1, 1])).print();
});
</script>
</head>
<body>
</body>
</html>
NPM経由
yarn
または npm
を使って TensorFlow.js をプロジェクトに追加します。注意: ES2017構文( `import`など)を使用しているため、このワークフローでは、コードをブラウザが理解できるものに変換するために bundler/transpiler を使用していることを前提としています。 Parcel を使用してコードを構築する方法については、 例を参照してください。Parcel など、好きなビルドツールを自由に使うこともできます。
yarn add @tensorflow/tfjs
npm install @tensorflow/tfjs
あなたのメイン js ファイルには、次のように記述します:
import * as tf from '@tensorflow/tfjs';
// 線形回帰モデルの定義
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// モデルのトレーニングの準備:損失値およびオプティマイザの指定
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// トレーニング用合成データの生成
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// データを使ってモデルをトレーニング
model.fit(xs, ys).then(() => {
// モデルが以前に見たことがないデータポイントについて推論を行うには、
// モデルを使用します:
model.predict(tf.tensor2d([5], [1, 1])).print();
});
詳細は、 チュートリアル、 サンプル 、 ドキュメントを参照してください。
助けが必要ですか?連絡を取りたいですか?
ライブラリを使用してバグが発生した場合 は、GitHubリポジトリに問題を提出してください。また 、TensorFlow.jsを使用について質問をしたり、技術的な助けを借りたり、何をしているのかを聞いたりする共有するコミュニティメーリングリストもあります。TensorFlow.jsのニュースを最新に保つには、twitterで私たちをフォローしてください。または announcement only のメーリングリストに参加してください。------
過去のTensorFlow mobileやTensorFlow Lite は、
inference(推論)ブロック、つまり予測だけをJavaScriptで実行させようとしていたけど、
TensorFlow.js は TensorFlow本体をJavaScriptコードで書かせるというものだ。
なので上記のサンプルはありものの(pre-madeな)回帰分析を
使ってトレーニングさせるところをGetting Started で選んでいる。
HTMLのscriptタブで実装する場合は
HTMLファイルがパースされるクライアントPC上で実行されるが
どうもクライアントPCにNVIDIAドライバとGPUが乗っていれば
それを使うらしい..
とすると、
DockerホストがGPU搭載機であれば、
NVIDIAドライバをホストにインストール済みで、
nvidia docker2 がインストール済みで、
tensorflow/tensorflow-gpu をDockerfileとかでnode/npm動作するように加工しておけば
コンテナでもGPUが使えるわけだ..
node公式かtensorflow公式コンテナで誰か作ってくれるまで
待つとしようかな..
0 件のコメント:
コメントを投稿