◆ ~ 2018/06/24
Keras : Ex-Tutorials : TensorFlow へのシンプルな I/F としての Keras
Keras には体系的なチュートリアルは用意されていませんが、効率的に学習するためのリソースは散在していますので順次紹介しています。
今回のチュートリアルは、TensorFlow に精通したユーザがスムースに Keras に移行できるように配慮されていて、Keras 流儀のボイラープレートから始めるのではなく、Keras を TensorFlow への単純化されたインターフェイスとして見ることから始めます。
具体的には、最初に TensorFlow による MNIST 分類器のスニペットにおいて、TensorFlow のセッションや optimizer はそのまま流用し、Keras をモデル定義プロセスをスピードアップするための構文上のショートカットとして使用します。
そして TensorFlow ワークフローで Keras モデルを使用する方法や、マルチ GPU と分散訓練、TensorFlow-serving におけるモデルのエクスポート、TensorFlow 各種スコープ (名前/デバイス/変数/グラフ) との互換性についても詳述されます。
[詳細] (06/24/2018)
Keras 2.2.0 リリースノート
Keras 2.2.0 が更新リリースされましたので、リリースノートを翻訳しておきました。
2.1 から 2.2 にアップグレードされたこともあり大きな変更も含まれています。
改良領域の中心は、Model サブクラス化による新しいモデル定義 API と新しい入力モード、そして Theano と CNTK バックエンドのサポートの強化です。
実践上は、モジュール applications と preprocessing が掃き出されたことにも注意してください。
その他にも、PlaidML のような外部バックエンドのロードが可能になったり、MobileNetV2 がサポートされたりしています。
[詳細] (06/08/2018)
TensorFlow : Tutorials : ニューラル機械翻訳 (seq2seq) チュートリアル
TensorFlow の Get Started と Programmer’s Guide が再構成されましたが、Tutorials も数編が新規追加されましたので再翻訳しています。
今回は seq2seq モデルの具体例である attention メカニズム装備のニューラル機械翻訳を通して Google の NMT (GNMT) システムへの到達を目標とします。
seq2seq (Sequence-to-sequence) モデルは機械翻訳、音声認識、テキスト要約等の各種タスクで大きな成功をおさめていますが、このチュートリアルでは seq2seq モデルの完全な理解を与えると共に、競争力のある seq2seq モデルをスクラッチからどのように構築するかが示されます。
特にニューラル機械翻訳 (NMT) のタスクにフォーカスし、その実装は軽量・高品質で最新の研究アイデアが組み込まれ、更にプロダクション・レディでもあります。この実装を以下により獲得します :
- 最新のデコーダ / attention ラッパー API、TensorFlow 1.2 データ iterator を使用する。
- 強力な専門技術をリカレントと seq2seq モデルの構築に組み入れる。
- ベストな NMT モデルの構築と Google NMT (GNMT) システムのレプリカのためのティップスとトリックを提供する。
[詳細] (06/07/2018)
TensorFlow : Tutorials : 単純な音声認識
TensorFlow の Get Started と Programmer’s Guide が再構成されましたが、Tutorials も数編が新規追加されましたので再翻訳しています。
今回は音声認識がテーマで、音声認識における MNSIT を目指したチュートリアルとなっており、10 個の異なる (英) 単語を認識する基本的な音声認識ネットワークをどのように構築するかが説明されます。
モデルは 1 秒の音声クリップを “yes”, “no”, “up”, “down”, “left”, “right”, “on”, “off”, “stop” そして “go” のいずれかに分類します。そしてそれを Android アプリケーション内で実行することも可能になります。
Speech Commands データセットを題材に基本モデルの構築方法が詳述されるだけでなく、背景ノイズのミックスインによるデータセットの増強、カスタムデータ上での訓練、そしてモバイル環境のためのカスタマイズまで網羅されていますので、音声認識モデルの実装入門として最適です。
[詳細] (06/05/2018)
◆ ~ 2018/05/22
TensorFlow : Tutorials : リカレント・ニューラルネットワーク
TensorFlow の Get Started と Programmer’s Guide が再構成されましたが、Tutorials も数編が新規追加され一部が改訂されていますので再翻訳します。
今回は TensorFlow でリカレント・ニューラルネットワークをどのように訓練するかを言語モデリングのタスクで示します。LSTM セルや切断バックプロパゲーションについても説明されます。
[詳細] (05/22/2018)
TensorFlow : Tutorials : お絵描き分類のためのリカレント・ニューラルネットワーク
TensorFlow の Get Started と Programmer’s Guide が再構成されましたが、Tutorials も数編が新規追加されましたので再翻訳しています。
今回は (前回の) RNN チュートリアルを受けて、マウスで描いた「お絵描き (Drawing)」を分類するためのリカレント・ニューラルネットワークを作成して訓練してみます。
具体的には、”Quick, Draw!” というゲームのモデルを実装します。このゲームはプレーヤーが幾つかの物体を描くことに挑戦してコンピュータがそのお絵描きを認識できるかを競うゲームです。
[詳細] (05/10/2018)
TensorFlow : Tutorials : TF Layers へのガイド : CNN を構築する
TensorFlow の Get Started と Programmer’s Guide が再構成されましたが、チュートリアルにも数編が新規追加されていますので翻訳を進めます。
今回は TF Layers へのガイドとして、MNIST を題材に CNN を構築します。
MNIST を題材にしたガイドは幾度か作成され直していますが、今回は Estimator を利用していますので、これが最終版のようです。MNIST 分類タスクのために畳み込みニューラルネットを構築し、訓練し、そして評価していきます。
TensorFlow 層モジュール, tf.layers, はニューラルネットを構築することを容易にする高位 API を提供しています。本ドキュメントでは tf.layers の畳み込み層・プーリング層・Dense 層のインターフェイスの仕様や入出力 tensor の shape について詳述されます。そして高位 API Estimator でカプセル化されて訓練・評価されますので、TensorFlow をこれから始めたい人にとても良いガイドとなっています。
[詳細] (05/08/2018)
TensorFlow : Programmers’ Guide : TensorFlow デバッガー
TensorFlow の Programmer’s Guide も Getting Started と同様に再構成されています。
TensorFlow デバッガーのドキュメントが追加されていますので新たに翻訳致しました。
TensorFlow デバッガー (tfdbg) は TensorFlow のために特化されたデバッガーです。TensorFlow は計算グラフ・パラダイムを採用しているために python pdb のような汎用デバッガーではデバッグが困難ですが、tfdbg は訓練・推論実行中の TensorFlow グラフの内部構造と状態を明らかにしてくれます。
このチュートリアルは TensorFlow モデルの開発で頻繁に遭遇するタイプのバグ, nan と inf の出現をデバッグするためにどのように tfdbg CLI を使用するかを具体的に示します。最初に低位 API からの利用方法について説明された後、高位 API – tf-learn Esitomator と Experiment、更には Keras や TF-Slim とともに tfdbg をどのように使用するかが記述されています。
FAQ や代表的なコマンドのシンタックス表も用意されています。
[詳細] (05/04/2018)
TensorFlow 1.8.0 リリースノート
TensorFlow 1.8 の安定版がリリースされましたので、いつものようにリリースノートを翻訳しておきます。TensorFlow 1.5 以後は 月一のベースでマイナーアップデートが繰り返されており、TensorFlow 1.5, 1.6, 1.7 そして 1.8 のリリース間隔はいずれもおよそ1ヶ月です。
バグ修正が中心で目立った新規の機能はありませんが、比較的最近導入された Eager Execution や tf.keras については各種の改良が施されています。Eager Execution では Dataset が標準的な python iterator として使用可能になっています。tf.keras では Fashion MNIST がサポートされました!
バグ修正は多岐に渡りますが、Eager Execution, tf.keras の他にも tf.data, XLA, tfdbg CLI そして tf.contrib 領域での修正が目立ちます。
[詳細] (04/28/2018)
Keras 2.1.6 リリースノート
- Keras のマイナーアップデート 2.1.6 がリリースされましたので、リリースノートを翻訳しておきました。
- 本リリースはバグ修正が中心です。仕様変更としては関数引数の追加が目立ちますが、
特に multi_gpu_model 関数において、テンプレート・モデルの重みを CPU 上にあることを強制するか否か、merge 演算を CPU 上か GPU 上で動作するかを制御するための引数が追加されました。
[詳細] (04/24/2018)
TensorFlow : Programmers’ Guide : TPU を利用する
TensorFlow の Programmer’s Guide も Getting Started と同様に再構成されています。
新たに TPU の利用方法についてのガイドが追加されましたので翻訳致しました。
本ドキュメントの主目的は Cloud TPU を効果的に活用するために必要な TensorFlow API を概観した上で、TPU の使用方法と標準的な TensorFlow の使用方法との違いを説明することです。Cloud TPU を試したい、あるいはユーザ自身の Estimator モデルを Cloud TPU 上で実行することを希望するユーザが対象となっています。
[詳細] (04/23/2018)
TensorFlow : Programmers’ Guide : GPU を利用する
TensorFlow の Programmer’s Guide も Getting Started と同様に再構成されています。
GPU の利用方法についてのガイドは以前は Tutorials に含まれていましたが、内容が改定されて Programmer’s Guide に移されましたので再翻訳致しました。
デバイス割り当てとマルチ GPU のトピックを中心に、更に GPU メモリ割り当てを TensorFlow で制御する2種類の方法が紹介されています。
[詳細] (04/21/2018)
TensorFlow : Programmer’s Guide : 低位 API – イントロダクション
TensorFlow の Programmer’s Guide も Getting Started と同様に再構成されています。
低位 API についてはテンソルやグラフ・セッションをテーマとする既存のガイドがありましたが、新たにイントロダクションとして 低位 API 全体を俯瞰できるページが設けられました。
このガイドでは Estimator に依拠する代わりに、低位 TensorFlow API (TensorFlow Core)、特に tf.Graph と tf.Session によるプログラミング、更には低位環境で高位レベルなコンポーネント (dataset, layer そして feature_columns) を利用する方法が示されます。
高位な API を使用してモデルを構築することが推奨されますが、TensorFlow Core を学習することにより、低位 TensorFlow API が利用可能な場合には実験やデバッグがよりストレートフォワードになります。また、高位 API を使用するとき内部的にどのように動作するかについてメンタルモデルを与えてくれます。
[詳細] (04/20/2018)
TensorFlow : Programmer’s Guide : データをインポートする
TensorFlow の Programmer’s Guide も Getting Started と同様に再構成されています。
TensorFlow におけるデータ処理は tf.data API として漸く統合され、その Programmer’s Guide も追加されましたので翻訳致しました。
本ガイドは tf.data モジュールによるデータのインポートについて説明されています。
tf.data API の中では tf.data.Dataset と tf.data.Iterator が特に重要な役割りを果たしていますが、各種 Dataset と Iterator オブジェクトの作成の基本、及びそれらからのデータ抽出について詳述されています。
[詳細] (04/16/2018)
TensorFlow.js : ガイド : Keras ユーザのための TensorFlow.js 層 API
TensorFlow.js は Google 社が新たに公開した機械学習 JavaScript ライブラリで、ブラウザ上でニューラルネットを訓練したり、訓練済みモデルを推論モードで実行できます。
チュートリアルとガイドを順次翻訳しています。既に Keras モデルのインポート方法については説明済みですが、このガイドでは TensorFlow.js 層 API を Keras と対比しながら解説しています。
TensorFlow.js の層 API は Keras を規範としてモデル化されていて、層 API を合理的に Keras に似せる努力がされています。これは Keras モデルを開発した経験を持つユーザが TensorFlow.js 層へマイグレートすることを容易にします。JavaScript と Python の幾つかの違い (例えばキーワード引数、あるいはキャメルケースとスネークケース) についても熟慮された上で仕様の決定が成されていることが分かります。更に、既に Eager Execution も考慮されています。
[詳細] (04/14/2018)
TensorFlow.js : チュートリアル : TensorFlow SavedModel を TensorFlow.js にインポートする
TensorFlow.js は Google 社が新たに公開した機械学習 JavaScript ライブラリで、ブラウザ上でニューラルネットを訓練したり、訓練済みモデルを推論モードで実行できます。
チュートリアルとガイドを順次翻訳しています。Keras モデルのインポート方法に続いては、TF SavedModel のインポートについての説明です。本チュートリアルは「開発者プレビュー」という位置づけで、既存の TF SavedModel をブラウザで実行するためにどのように変換してサービス提供するかが説明されており、FAQ も用意されています。
[詳細] (04/12/2018)
TensorFlow.js : チュートリアル : Keras モデルを TensorFlow.js にインポートする
TensorFlow.js は Google 社が新たに公開した機械学習 JavaScript ライブラリで、ブラウザ上でニューラルネットを訓練したり、訓練済みモデルを推論モードで実行できます。
チュートリアルとガイドを順次翻訳しています。具体例としてカーブ・フィッティングと MNIST 分類タスクを扱いましたが、本チュートリアルでは Keras モデルのインポートについて説明されています。
Keras モデルの一つを TensorFlow.js 層フォーマットに変換することが可能で、それは推論や更なる訓練のために TensorFlow.js に直接ロードできます。
[詳細] (04/11/2018)
TensorFlow Hub : コモン・シグネチャ
TensorFlow Hub は機械学習モデルの再利用可能なモジュール・パーツの公開、検索と利用を促進するためのライブラリです。モジュールは TensorFlow グラフの自己充足的な部品で、転移学習プロセスにおいて異なるタスクに渡って再利用可能です。
TensorFlow Hub のドキュメント – コモン・シグネチャの3編 (モジュールのためのコモン・シグネチャ、画像のためのコモン・シグネチャ、そしてテキストのためのコモン・シグネチャ) を翻訳しました。
[詳細] (04/11/2018)
TensorFlow Hub : キーコンセプト
TensorFlow Hub は機械学習モデルの再利用可能なモジュール・パーツの公開、検索と利用を促進するためのライブラリです。モジュールは TensorFlow グラフの自己充足的な部品で、転移学習プロセスにおいて異なるタスクに渡って再利用可能です。
TensorFlow Hub のドキュメント – キーコンセプトの3編 (モジュールの利用、新規モジュールの作成、再調整) を翻訳しました。
[詳細] (04/09/2018)
TensorFlow : Programmer’s Guide : Eager Execution
TensorFlow 1.7 では Eager Execution のプログラマーズガイドも追加されましたので翻訳致しました。
Eager execution は命令型プログラミング環境でグラフ構築ステップなしに演算を直ちに評価します。演算は計算グラフを構築する代わりに具体的な値を返しますので、Eager execution は TensorFlow を新たに始める・モデルをデバッグする・ボイラープレートなコードの削減等を容易にします。
Eager execution は殆どの TensorFlow 演算と GPU アクセラレーションをサポートします。
Eager execution は研究や実験のための柔軟な機械学習プラットフォームで、以下を提供します :
- 直感的なインターフェイス
- より簡単なデバッギング
- 自然な制御フロー
[詳細] (04/09/2018)
TensorFlow (Hub) : チュートリアル : TF-Hub によるテキスト分類器の構築
TensorFlow Hub は機械学習モデルの再利用可能なモジュール・パーツの公開、検索と利用を促進するためのライブラリです。モジュールは TensorFlow グラフの自己充足的な部品で、転移学習プロセスにおいて異なるタスクに渡って再利用可能です。
TensorFlow Hub によるテキスト分類器の構築についてのチュートリアルを翻訳しました。TF-Hub テキスト埋め込み (= embedding) モジュールを利用して転移学習を遂行します。具体的には (比較的有名な) IMDB 映画レビュー・データセット上で、異なる TF-Hub モジュールから構築した複数の感情分析器 (= sentiment classifier) を訓練して精度を比較してみます。
[詳細] (04/06/2018)
TensorFlow (Hub) : チュートリアル : 画像分類器の新カテゴリーのための再訓練
TensorFlow Hub は機械学習モデルの再利用可能なモジュール・パーツの公開、検索と利用を促進するためのライブラリです。モジュールは TensorFlow グラフの自己充足的な部品で、その重みとアセットで、転移学習プロセスにおいて異なるタスクに渡って再利用可能です。
TensorFlow Hub の画像分類器の再訓練についてのチュートリアルを翻訳しました。これは TensorFlow 全体のチュートリアルの位置づけにもなっていて、転移学習による再訓練を Hub を利用して遂行しています。
[詳細] (04/05/2018)
TensorFlow Hub : イントロダクションとインストール
TensorFlow Dev Summit 2018 において機械学習 JavaScript ライブラリ TensorFlow.js とともにフィーチャーされましたのが TensorFlow Hub です。TensorFlow Hub は 1.7 リリースから利用可能です。
TensorFlow Hub は機械学習モデルの再利用可能なモジュール・パーツの公開、検索と利用を促進するためのライブラリです。モジュールは TensorFlow グラフの自己充足的なピースで、その重みとアセットを伴い、転移学習として知られるプロセスにおいて異なるタスクに渡り再利用可能です。
簡単ですが、TensorFlow Hub のドキュメントのイントロダクションとインストールについての説明を翻訳しました。詳細ドキュメントについても順次、翻訳予定です。
[詳細] (04/04/2018)
TensorFlow.js : チュートリアル : MNIST – 畳み込みニューラルネットで手書き数字認識
TensorFlow.js は Google 社が新たに公開した機械学習 JavaScript ライブラリで、ブラウザ上でニューラルネットを訓練したり、訓練済みモデルを推論モードで実行できます。
チュートリアルとガイドを順次翻訳しています。カーブ・フィッティングの次はより実践的にお馴染みの MNIST – 手書き数字の分類タスクを扱います。畳み込み層、マックスプーリング層や完全結合層を使用して畳み込みモデルを構築し、訓練・評価してみます。
[詳細] (04/04/2018)
TensorFlow.js : チュートリアル : 訓練の最初の一歩 : 合成データに曲線をフィットさせる
TensorFlow.js は Google 社が新たに公開したオープンソースの機械学習 JavaScript ライブラリで、WebGL で高速化され、ニューラルネットワークをブラウザで訓練したり訓練済みモデルを推論モードで実行できます。
チュートリアルとガイドを順次翻訳しています。コア概念の説明に続いては実践的な内容でカーブ・フィッティングを扱います。デカルト平面上の 3 次関数にノイズを与えた合成データをデータセットとして、モデルの構築や SGD による訓練方法を一歩ずつ見ていきます。
[詳細] (04/03/2018)
TensorFlow.js : チュートリアル : TensorFlow.js の中心概念
TensorFlow.js は Google 社が新たに公開したオープンソースの機械学習 JavaScript ライブラリで、WebGL で高速化され、インストール不要でブラウザで完全に動作します。つまり、ニューラルネットワークをブラウザで訓練したり訓練済みのモデルを推論モードで実行することを可能にします。
機械学習 JavaScript ライブラリとしては deeplearn.js が既に提供されていましたが、v0.5 を持って TensorFlow.js に継承され、ドキュメントも再構成されましたので、チュートリアルとガイドを順次翻訳していきます。最初は TensorFlow.js のコア概念の説明です。
TensorFlow.js は機械学習のための下位ビルディングブロックとニューラルネットワークを構築するための高位の、Keras にインスピレーションを得た API を提供します。本ページではライブラリの中心コンポーネントの幾つかを見てみます。
[詳細] (04/03/2018)
◆ ~ 2018/03/29
TensorFlow 1.7.0 リリースノート
TensorFlow 1.7 の安定版が早くもリリースされましたので、いつものようにリリースノートを翻訳しておきます。
更新頻度が上がり、TensorFlow 1.5 と 1.6、1.6 と 1.7 の間のリリース間隔はそれぞれ丁度一ヶ月ほどですので、月一でマイナーアップデートする方針に切り替えたのかもしれません。
重要なポイントとしては、Eager モードが contrib から移動したこと、TensorFlow Debugger (tfdbg) の GUI である TensorBoard Debugger プラグインが Alpha 版になったこと、分散 Mutex / CriticalSection の追加が挙げられます。
sqlite データベースを Dataset として読むための実験的サポートも面白い試みです。
[詳細] (03/29/2018)
TensorFlow : Programmer’s Guide : Estimator
TensorFlow の Programmer’s Guide も Getting Started と同様に再構成され Web ページの追加や追記も遂行されています。本ページでは Estimator について説明されていますが、Keras モデルから Estimator を作成する方法が新たに追記されました。
既存の Keras モデルを Estimator に変換することが可能です。それは貴方の Keras モデルに分散訓練のような Estimator の強みにアクセスすることを可能にしてくれます。
[詳細] (03/28/2018)
TensorFlow : Get Started トピック : カスタム Estimator の作成
TensorFlow の Getting Started が再構成され、(概要的な入門編に加えて) 幾つかのトピックについては個別に説明されています。今回はカスタム Estimator について詳述されたページを翻訳しました。
TensorFlow のプログラミング作法は (バージョン更新とともに) Estimator を軸に再構成されてきていますが、本ページでは (ユーザ・) カスタム Estimator が紹介されています。カスタム Estimator では Estimator の挙動についてユーザが制御可能で Estimator を最適化できます。ここでは特にアイリス問題を解く際に pre-made Estimator DNNClassifier の挙動を模倣するカスタム Estimator をどのように作成するかが示されています。
[詳細] (03/28/2018)
TensorFlow : Get Started トピック : Dataset クイックスタート
TensorFlow の Getting Started が再構成され、(概要的な入門編に加えて) 幾つかのトピックについては個別に説明されています。今回は最も基礎的な概念である Dataset について詳述されたページを翻訳しました。
tf.data モジュールはクラスのコレクションを含みますが、これらはデータをロード、操作して貴方のモデルへと届けることを容易にします。本ページでは2つの単純なサンプルを一通り説明することによって次の基本的な API を紹介します : (1) NumPy 配列からメモリ上のデータを読みます、(2) CSV ファイルから行群を読みます。
[詳細] (03/18/2018)
TensorFlow : Get Started トピック : 特徴カラム
TensorFlow の Getting Started が再構成され、(概要的な入門編に加えて) 幾つかのトピックについては個別に説明されています。(チェックポイントの項目に続いて) 特徴カラムのバリエーションについて詳述されたページを翻訳しました。
特徴カラムは生データと Estimator の間の仲介役として考えることができます。特徴カラムは非常に豊富で、様々な生データを Estimator が利用できるフォーマットに変換することを可能にします。アイリス花の例では数値の特徴カラムを使用しましたが、一般には深層ニューラルネットワークへの入力は非数値の特徴も考慮しなければなりません。
[詳細] (03/15/2018)
TensorFlow : Get Started トピック : チェックポイント
TensorFlow の Getting Started が再構成され、(概要的な入門編に加えて) 幾つかのトピックについては個別に説明されています。まずはチェックポイントについて詳述されたページを翻訳しました。
TensorFlow の高位 API である Estimator で構築された TensorFlow モデルをどのようにセーブしてリストアするかを考察します。TensorFlow は2つのモデルフォーマット – checkpoint と SavedModel を提供しますが、ここでは checkpoint について説明されます。
[詳細] (03/09/2018)
TensorFlow : TensorFlow から始める Getting Started
TensorFlow の Getting Started が再構成されましたが、(先に翻訳致しました) 機械学習初心者のためのドキュメントに続いて、TensorFlow 初心者向けのドキュメントも追加されましたのでこれも翻訳しました。
先のドキュメントでは機械学習の知識を持たない読者を想定していましたが、本ドキュメントは機械学習についての基礎知識を持つ読者に対して、TensorFlow の高位 API である Estimator の使い方を流れに沿って説明しています。
[詳細] (03/06/2018)
TensorFlow 1.6.0 リリースノート
TensorFlow 1.5 のリリースから一ヶ月ほどしか経過していませんが、TensorFlow 1.6 の安定版がリリースされましたので、いつものようにリリースノートを翻訳しておきます。
1.6 リリースは前回の Eager execution や TensorFlow Lite のプレビュー版のような大きな進化はなく、バイナリが CUDA 9 と cuDNN 7 に対応している点も変更ありませんが、(予告されていたように) AVX 命令を使用していますので古い PC 上で利用する場合には注意が必要です。
また Google 社によれば、CUDA 9 及び CUDA 9.1 の PTX-to-SASS コンパイラについて (大きなオフセットを持つ) 64-bit アドレス計算上のバグを見つけたとのことで、結果として ptxas は 4GB 以上の一時メモリを使用する殆どの XLA プログラムをミスコンパイルするようです。この issue についても詳述されています。
[詳細] (03/01/2018)
TensorFlow : ML 初心者のための Getting Started
TensorFlow の Getting Started が再構成され、機械学習初心者のためのドキュメントが追加されましたので新たに翻訳しました。
これまでの TensorFlow Getting Started はテンソルの説明から始まっていましたが、本ドキュメントでは機械学習の知識を持たない読者を想定し、基本的な用語についても丁寧に説明されています。
[詳細] (02/26/2018)
TensorFlow Eager execution
Eager execution プレビュー版が TensorFlow 1.5 で利用可能になりましたので、詳細な利用方法を翻訳しておきました。Eager execution はモデル開発プロセスを劇的に改善することが期待されます。
Eager execution はまだ開発が最初期段階にあるために分散訓練/モデルのエクスポート/最適化などがサポートされていないようですが、API にある程度の互換性がありますので、eager execution を有効にして開発した上で (必要であれば) 計算グラフモデルとしてプロダクションコードを作成することもできます。
[詳細] (02/02/2018)
TensorFlow 1.5.0 リリースノート
TensorFlow 1.5 の安定版がリリースされましたので、いつものようにリリースノートを翻訳しておきます。
幾つか重要なポイントとして :
- 事前ビルドされたバイナリは CUDA 9 と cuDNN 7 に対してビルドされています。
- Eager execution: プレビュー版が利用可能になりました。
- TensorFlow Lite: dev プレビューが利用可能になりました。
[詳細] (01/26/2018)
◆ ~ 2017/12/17
TensorFlow : Mobile : モバイル配備のためのモデルを準備する
モバイルアプリケーションでモデルを配備するためには、モデル・ファイルを様々な要件を満たすように最適化する必要があります。分かりやすい例としてバイナリサイズは極力小さくすることが望ましいです。
そのためには訓練のみに必要な演算ノードは取り除く必要があります。
グラフ変換ツールはこのために有用なツールで、入力 GraphDef ファイルを取り、書き換えルールのセットを適用した結果を GraphDef として書き出してくれます。
本ドキュメントではモデル・ファイルを構成する様々なプリミティブの説明から始めて、モバイル上でモデル・ファイルを最適化するために、変換ツールを利用する方法や演算ノードの取捨選択について丁寧に説明されています。
[詳細] (12/17/2017)
TensorFlow : Mobile : TensorFlow ライブラリを統合する
TensorFlow Mobile のデモをビルド/配備できたら次に、ユーザ自身のモバイル・アプリケーションに TensorFlow ライブラリをどのように統合するかについて実践的に学習します。
具体的には、Android / iOS / Raspberry Pi それぞれの環境の上でどのように TensorFlow ライブラリをリンクして TensorFlow API を呼び出すか、サンプルコードとともに説明されます。
また、統合する際に発生しやすい2つの問題についても詳述されます。まずは REGISTER_KERNEL() マクロの実装に起因する問題を TensorFlow アーキテクチャと共に説明して対処法を示した後、Protocol Buffers のバージョンに起因する問題を扱います。
[詳細] (12/13/2017)
TensorFlow : Mobile : TensorFlow on Android をビルドする
「TensorFlow Mobile へのイントロダクション」は概念的な説明でしたが、本ガイドは TensorFlow on Android をビルドする具体的な手順について説明されています。
TensorFlow on Android を始めるために、TensorFlow モバイル・デモをビルドしてそれらを Android デバイス上に配備するための2つの方法 – IDE (Android Studio) を利用する方法とコマンドライン (Bazel でビルドして ADB で配備) を利用するが紹介されます。
デモ・アプリケーションはいずれもスマホのカメラからビデオ入力を取るもので、以下の3つが用意されています :
- TF Classify : 指し示される物体に Inception v3 モデルを使用してラベル付けします。
- TF Detect : カメラ内の人々の位置の回りにバウンディングボックスを描きます。
- TF Stylize : カメラフィード上のリアルタイムの style transfer (スタイル変換) を実装します。
[詳細] (12/12/2017)
TensorFlow : Mobile : TensorFlow Mobile へのイントロダクション
(TensorFlow Lite に続いて) TensorFlow Mobile のドキュメントも翻訳していきます。
「TensorFlow Mobile へのイントロダクション」は入門的な位置づけで、最初にモバイル機械学習のユースケースが紹介されます。
音声認識・画像認識・物体位置特定・ジェスチャー認識・光学文字認識・翻訳・テキスト分類・音声合成についてGoogle 社のプロダクトも交えながら説明されます。
そしてオンデバイスとクラウドの有効活用について説明された後、モバイル機械学習ソリューションへのアプローチ方法が示されます。
モデル選択の他、特にラベル付けとそのための良いツールの重要性について説かれています。
[詳細] (12/12/2017)
TensorFlow : Mobile : TensorFlow Lite へのイントロダクション
TensorFlow Lite のドキュメントを翻訳しておきました。
TensorFlow Lite はモバイルと組み込みデバイスのための TensorFlow の軽量ソリューションです。低レイテンシーと小さなバイナリサイズによってモバイル機械学習推論を可能にします。
TensorFlow Lite は FlatBuffers に基づく新しいモデルファイルフォーマットを定義し、Android Neural Networks API によるハードウェア・アクセラレーションもサポートします。
Inception-v3 と MobileNet の訓練済みモデルも用意されています。
[詳細] (12/10/2017)
Keras / TensorFlow : MobileNet と Inception-ResNet の概要と性能評価
MobileNet は 6 月に Google Research Blog でアナウンスされたモデルで、TF-Slim 用のモデルのチェックポイントも併せて公開されました。その名前から分かるように、モバイルや組み込み用アプリケーションのようなリソースに制約のある環境でも上手く動作するように設計されたモデルです。
Keras 実装の MobileNet も Keras 2.0.6 から利用可能になりましたので、今回は University of Oxford の VGG が提供している 102 Category Flower Dataset を題材にして、MobileNet の性能を評価してみます。
また、Keras 2.0.9 から Inception-ResNet の実装も提供されていますので、併せて評価します。
比較対象は定番の AlexNet, Inception-v3, ResNet-50, Xception を利用します。 [詳細] (12/09/2017)
![]() | ![]() |
Keras 2.1.2 リリースノート
先週末に keras 2.1.2 がリリースされました。Keras の更新頻度が上がっています。
大きな変更はありませんが、generator メソッドの仕様が少し変更されたので注意してください。
また、Keras applications の weights 引数にパスが指定できるようになりました。
いずれも以前から気になっていた箇所なので良い修正です。
[詳細] (12/05/2017)
Keras 2.1.0 & 2.1.1 リリースノート
Keras 2.1.0 及び 2.1.1 は今月中旬に続けてリリースされました。
バグ修正が中心のマイナーリリースと考えてかまいません。
[詳細] (11/26/2017)
Keras 2.0.9 リリースノート
少し遅くなりましたが、今月頭にリリースされました Keras 2.0.9 のリリースノートを翻訳しておきました。
幾つか興味深いポイントをあげておきますと :
- 高速な GPU トレーニング & 推論のために CuDNNLSTM と CuDNNGRU 層を追加します、これはNVIDIA cuDNN ライブラリをバックエンドとします。
- keras.utils.multi_gpu_model によるより容易なマルチ GPU データ並列処理。
- “fashion mnist” を keras.datasets.fashion_mnist.load_data() として追加します。
[詳細] (11/26/2017)
TensorFlow 1.4.0 リリースノート
TensorFlow 1.4 の安定版がリリースされましたので、いつものようにリリースノートを翻訳しておきます。
幾つか重要なポイントとして :
- 総ての事前ビルドされたバイナリは CUDA 8 と cuDNN 6 でビルドされています。
併せて、TensorFlow 1.5 の CUDA 9 と cuDNN 7 によるリリースが予告されています。
※ TF 1.3 リリース時には cuDNN 7 が予告されていましたが、結局、cuDNN 6 で落ち着いたようです。 - tf.keras と tf.data がコア TensorFlow API の一部となりました。つまり、contrib の指定が不要になりました。
tf.data は後方互換性が保証されるようですので、安心して利用できます。 - GCS / S3 / Hadoop ファイルシステムのサポートがデフォルトで有効になったようです。
[詳細] (11/08/2017)
◆ お問合せ
本件に関するお問い合わせ先は下記までお願いいたします。
株式会社クラスキャット |
セールス・マーケティング本部 セールス・インフォメーション |
E-Mail:sales-info@classcat.com |
WebSite: http://www.classcat.com/ |
※ TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.
※ AWS は米国その他の諸国における Amazon.com, Inc. またはその関連会社の商標です。
※ その他、記載されている会社名・製品名は各社の登録商標または商標です。