LoginSignup
24
15

More than 5 years have passed since last update.

TensorFlowはGoogleが開発した機械学習/深層学習のライブラリで、GitHubにオープンソースソフトウェアとして公開されています。TensorFlowという名は、機械学習/深層学習にメインに携わっている人でなくても、その名前知っている方は多いかと思います。

TensorFlowはドキュメントやサンプルが充実していることから、TensorFlowを使うだけであれば、情報不足により困ることはほとんどありません。しかし、TensorFlowの内部構造を説明した資料は非常に少なく、TensorFlowの内部を理解するためにはソースコードを読む必要があります。

そこで、TensorFlowの内部構造を説明する記事を、連載で書きたいと思います。
現状書こうと考えている記事は以下の通りですが、執筆を進める中で構成の変更や記事の追加も考えたいと思います。

  1. データ構造
    1. Protocol Buffers形式のデータ構造
  2. Python API
    1. グラフ構築
    2. Session立ち上げ
    3. Python APIからC APIの呼び出し(SWIG)
    4. Operation自動生成
  3. C API
    1. C-C++への接続
  4. コア処理
    1. Session
    2. グラフ構築(GraphConstructor)
    3. デバイス割り当て(Placer)
    4. 計算グラフ最適化処理1 Grappler
    5. グラフ分割処理(Partition)
    6. 計算グラフ最適化処理2 GraphOptimizationPass
    7. 計算グラフ最適化処理3 GraphOptimizer
    8. ノードと演算の対応(Node、OpKernel間の関係)
    9. グラフ実行制御(Executor、スレッド割り当て)
    10. 各演算の実行(OpKernelContext、OpKernel)
    11. 各演算処理(OpKernel)
    12. デバイスの登録
    13. Tensorメモリの確保
  5. OpKernelの実装
    1. ConstantOp
    2. VariableOp
    3. PlaceHolderOp
  6. その他
    1. TensorFlowのデータ型
    2. Profiler機能
24
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
15