TensorFlowを利用したプログラムの開発は進んでいますか?
TensorFlow以外に、TensorBoardやTensorFlow PlaygroundといったTensorFlowに関連がありそうなプロジェクトを目にしたことがあると思います。
今日は、「TensorBoardやTensorFlow Playground以外に関連プロジェクトはどれくらいあるの?」という疑問に答えます!
TensorFlowの周辺にも視野を広げて、活用できそうなモノがないか探してみましょう!
TensorFlowとは
TensorFlowは、機械学習や深層学習のプログラムを実装する際に使用できるライブラリです。
GitHubで開発が進められており、ソースコードも自由にダウンロードできます。
TensorFlowとは何か?については、以下の記事で説明していますので、よく分からない方は確認してみてくださいね。
もちろん、インストールについても触れられていますので、安心してください!
TensorFlowのGitHub
TensorFlow関連プロジェクトの目次とでもいうべきページと、TensorFlow本体が置いてあるTensorFlowリポジトリは、別のURLで提供されています。
TensorFlow関連プロジェクトのページ
参考:https://github.com/tensorflow
TensorFlow本体のリポジトリ
参考:https://github.com/tensorflow/tensorflow
TensorFlow関連プロジェクトのページからアクセスできる関連プロジェクト
TensorFlow関連プロジェクトのページからアクセスできるプロジェクトをざっと紹介します。
正直、何?というものもありますが、一部、唸るようなプロジェクトもありますので、ぜひご覧ください。
TensorFlowや機械学習を理解する
TensorFlowを理解したり、機械学習を理解したりすることの助けになるようなプロジェクトです。
視覚的に面白いモノも含めましたので、playgroundや、embedding-projector-standaloneは、ぜひご覧ください。
lucidはキレイですが、理解するのは難しいです。
TensorFlowでモデルができあがってからなら、TensorBoardも面白いです。
playground
TensorFlow Playgroundを開発するプロジェクト
参考:https://github.com/tensorflow/playground
TensorFlow Playgroundについては、以下の記事でも取り上げました。
embedding-projector-standalone
多次元データを視覚化するEmbedding Projectorを開発するプロジェクト
参考:https://github.com/tensorflow/embedding-projector-standalone
lucid
TensorFlowのモデルが学習した内容を可視化するためのプロダクトを開発するプロジェクト
参考:https://github.com/tensorflow/lucid
tensorboard
TensorFlowの処理を視覚化するためのプロジェクト
参考:https://github.com/tensorflow/tensorboard
tensorstore
TensorBoardストレージコードのプレースホルダを提供するプロジェクト
参考:https://github.com/tensorflow/tensorstore
tensorboard-plugin-example
TensorBoardプラグインのサンプルプロジェクト
参考:https://github.com/tensorflow/tensorboard-plugin-example
workshops
TensorFlowワークショップイベントで利用したデータをホストするプロジェクト
参考:https://github.com/tensorflow/workshops
models
TensorFlowで構築したモデルをまとめたプロジェクト。CIFAR-10を学習するモデル(CNN)や、PTBデータセットを学習するモデル(RNN)などがある
参考:https://github.com/tensorflow/models
CIFAR-10やPTBデータセットを学習するモデルについては、以下の記事で取り上げました。
nmt
ニューラル機械翻訳の公式チュートリアルをホストするプロジェクト
参考:https://github.com/tensorflow/nmt
ニューラル機械翻訳の公式チュートリアルについては、以下の記事で取り上げました。
様々なプログラミング言語からTensorFlowを利用する
Python、Java、C++以外のプログラミング言語からもTensorFlowを利用できるようになりそうですね。楽しみです。
haskell
HaskellでTensorFlowを利用するプロジェクト
tfjs
ハードウェアアクセラレーションに対応したJavaScriptライブラリであるTensorFlow.jsを開発するプロジェクト
参考:https://github.com/tensorflow/tfjs
tfjs-core
TensorFlow.jsの中心となるプロジェクト
参考:https://github.com/tensorflow/tfjs-core
tfjs-layers
TensorFlow.jsの高レベルなモデル構築APIを開発するプロジェクト
参考:https://github.com/tensorflow/tfjs-layers
tfjs-models
TensorFlow.jsの学習済モデルをホストするプロジェクト
参考:https://github.com/tensorflow/tfjs-models
tfjs-converter
TensorFlowやKerasで構築したモデルをTensorFlow.jsで利用するためのプロジェクト
参考:https://github.com/tensorflow/tfjs-converter
tfjs-examples
TensorFlow.jsのサンプルをまとめたプロジェクト
参考:https://github.com/tensorflow/tfjs-examples
tfjs-website
TensorFlow.jsのWebサイト(https://js.tensorflow.org/)を構築するためのプロジェクト
参考:https://github.com/tensorflow/tfjs-website
tfjs-node
TensorFlow.jsをNode.jsで動かすためのプロジェクト。TenosrFlow.jsは、JavaScriptでTensorFlowを利用するプロダクトである
参考:https://github.com/tensorflow/tfjs-node
rust
RustでTensorFlowを利用するためのプロジェクト
参考:https://github.com/tensorflow/rust
swift
SwiftでTensorFlowを利用するためのプロジェクト
参考:https://github.com/tensorflow/swift
swift-bindings
Swift for TensorFlowを作成するためのプロダクトを開発するプロジェクト
参考:https://github.com/tensorflow/swift-bindings
swift-models
Swift for TensorFlowで作成したモデルをホストするプロジェクト
参考:https://github.com/tensorflow/swift-models
TensorFlowを応用する
囲碁AIを作るなど、TensorFlowを応用したプロジェクトです。
minigo
TensorFlowを使用してニューラルネットワークを構築した囲碁AIを開発するプロジェクト。Google製囲碁AIとして非常に有名なAlphaGoではない
参考:https://github.com/tensorflow/minigo
magenta
美術や音楽を創造する際の機械学習の役割を探る研究プロジェクト
参考:https://github.com/tensorflow/magenta
magenta-js
magentaをブラウザで実行するためのプロジェクト
参考:https://github.com/tensorflow/magenta-js
magenta-demos
magentaのデモをホストするプロジェクト
参考:https://github.com/tensorflow/magenta-demos
moonlight
楽譜(PNG画像)を読み込みMusicXMLを出力するプロダクトを開発するプロジェクト
参考:https://github.com/tensorflow/moonlight
kfac
Kronecker-Factored Approximate Curvature(K-FAC)を実装するプロジェクト
参考:https://github.com/tensorflow/kfac
deepmath
深層学習や機械学習技術を使った自動定理証明を改善するプロジェクト。自動定理証明は、コンピュータプログラムによって数学的定理に対する証明を発見することである
参考:https://github.com/tensorflow/deepmath
TensorFlow関連の成果を共有する
TensorFlowを利用して開発したモデルなどを他の人と共有するときに便利そうなプロジェクトです。
serving
機械学習モデルを本番環境で運用するために柔軟で高性能なサービスシステムを開発するプロジェクト
参考:https://github.com/tensorflow/serving
hub
TensorFlowにおいて様々なリソースや学習済モデルを共有するためのプラットフォームを開発するプロジェクト
参考:https://github.com/tensorflow/hub
tpu
CLOUD TPUで使用されるモデルとツールを開発するプロジェクト
参考:https://github.com/tensorflow/tpu
ecosystem
TensorFlowを他のオープンソースフレームワークと統合する例をホストするプロジェクト。docker、kubernetes、Marathon、hadoop、sparkなどと統合する例が含まれている
参考:https://github.com/tensorflow/ecosystem
その他
その他、うまく分類できなかったプロジェクト群です。
tensor2tensor
TensorFlowで構築した主要要素(モデルなど)の再現や入れ替えを容易にするプロジェクト
参考:https://github.com/tensor2tensor
benchmarks
TensorFlowのベンチマーク(性能テスト)用コードを開発するためのプロジェクト
参考:https://github.com/tensorflow/benchmarks
profiler-ui
TensorFlowのモデルをプロファイリングするためのGUIを提供するプロジェクト
参考:https://github.com/tensorflow/profiler-ui
model-analysis
TensorFlowのモデルを評価するためのライブラリを開発するプロジェクト
参考:https://github.com/tensorflow/model-analysis
cleverhans
敵対的サンプル(意図的なノイズ)を生成するサンプルを生成するライブラリを開発するプロジェクト
参考:https://github.com/tensorflow/cleverhans
lattice
機械学習の訓練データにノイズがあった場合でも正しく学習させるためのプロジェクト
参考:https://github.com/tensorflow/lattice
transform
TensorFlowを利用してデータを前処理するためのライブラリを開発するプロジェクト
参考:https://github.com/tensorflow/transform
metadata
TensorFlowを使用して機械学習モデルをトレーニングする際に役立つメタデータの標準表現を提供するプロジェクト
参考:https://github.com/tensorflow/metadata
fold
構造化データを使用するモデルを作成するためのライブラリを開発するためのプロジェクト
参考:https://github.com/tensorflow/fold
agents
TensorFlowを使って強化学習を行うためのインフラを提供するプロジェクト
参考:https://github.com/tensorflow/agents
probability
TensorFlowにおける確率論的推論と統計解析のためのライブラリを開発するプロジェクト
参考:https://github.com/tensorflow/probability
compression
参考:https://github.com/tensorflow/compression
TensorFlowのためのデータ圧縮ライブラリを開発するプロジェクト
まとめ
TensorFlowだけでも理解することが大変なのに、TensorFlowの周辺プロダクトがこれほど沢山公開されているとは、本当に驚きますね。
自分に必要そうであったり、興味が湧いたプロジェクトがあれば、ぜひ試してみて、分かったことをブログ記事を書いていただければと思います!
私も、理解できないところは多々あり、世界はどんどん進んでいることを実感しました。
がんばりましょう!