機械学習用語集: TensorFlow

このページでは、TensorFlow 用語集について説明します。用語集のすべての用語については、こちらをクリックしてください。

B

バッチ推論

#TensorFlow
#GoogleCloud

より小さなサブセット(「バッチ」)に分割された複数のラベルのないサンプルに対して予測を推論するプロセス。

バッチ推論では、アクセラレータ チップの並列化機能を活用できます。つまり、複数のアクセラレータがラベルのないサンプルの異なるバッチに対して同時に予測を推測できるため、1 秒あたりの推論数が大幅に増加します。

C

Cloud TPU

#TensorFlow
#GoogleCloud

Google Cloud 上の ML ワークロードを高速化するために設計された専用のハードウェア アクセラレータ。

D

Dataset API(tf.data)

#TensorFlow

データを読み取り、機械学習アルゴリズムに必要な形式に変換するための高レベルの TensorFlow API。tf.data.Dataset オブジェクトは要素のシーケンスを表します。各要素には 1 つ以上のテンソルが含まれます。tf.data.Iterator オブジェクトは、Dataset の要素へのアクセスを提供します。

Dataset API の詳細については、TensorFlow プログラマー ガイドの tf.data: TensorFlow 入力パイプラインの構築をご覧ください。

デバイス

#TensorFlow
#GoogleCloud

次の 2 つの定義があるオーバーロードされた用語:

  1. TensorFlow セッションを実行できるハードウェアのカテゴリ(CPU、GPU、TPU など)。
  2. アクセラレータ チップ(GPU または TPU)で ML モデルをトレーニングする場合、実際にテンソルエンベディングを操作するシステムの部分。デバイスはアクセラレータ チップで動作します。一方、ホストは通常、CPU 上で実行されます。

E

積極的実行

#TensorFlow

オペレーションoperationsがすぐに実行される TensorFlow プログラミング環境。一方、グラフ実行で呼び出されるオペレーションは、明示的に評価されるまで実行されません。積極的実行は、多くのプログラミング言語のコードとよく似た命令型インターフェースです。一般的に、積極的実行プログラムはグラフ実行プログラムよりもデバッグがはるかに簡単です。

Estimator

#TensorFlow

非推奨の TensorFlow API。Estimator の代わりに tf.keras を使用します。

F

2つのステップが含まれます

#fundamentals
#TensorFlow

以下のステップを含むプロセス。

  1. モデルのトレーニングに役立つ特徴を決定する。
  2. データセットからの元データを、これらの機能の効率的なバージョンに変換する。

たとえば、temperature が有用な機能であると判断した場合、その後、バケット化を試して、モデルがさまざまな temperature 範囲から学習できる内容を最適化できます。

特徴量エンジニアリングは、特徴量抽出または特徴量化とも呼ばれます。

機能の仕様

#TensorFlow

tf.Example プロトコル バッファから features データを抽出するために必要な情報を記述します。tf.Example プロトコル バッファは単なるデータのコンテナであるため、以下を指定する必要があります。

  • 抽出するデータ(つまり、特徴のキー)
  • データ型(例: float、int)
  • 長さ(固定または可変)

1 階

グラフ

#TensorFlow

TensorFlow では、計算の仕様。グラフ内のノードはオペレーションを表します。エッジは有向であり、演算の結果(テンソル)を別の演算のオペランドとして渡すことを表します。TensorBoard を使用してグラフを可視化します。

グラフ実行

#TensorFlow

TensorFlow プログラミング環境。プログラムで最初にグラフを作成してから、そのグラフの全部または一部を実行します。グラフ実行は TensorFlow 1.x のデフォルトの実行モードです。

積極的実行とは対照的です。

H

主催者

#TensorFlow
#GoogleCloud

アクセラレータ チップ(GPU または TPU)で ML モデルをトレーニングする場合、システム内で次の両方を制御する部分。

  • コードの全体的なフロー。
  • 入力パイプラインの抽出と変換。

ホストは通常、アクセラレータ チップではなく CPU 上で稼働します。デバイスはアクセラレータ チップのテンソルを操作します。

L

Layers API(tf.layers)

#TensorFlow

レイヤの複合としてディープ ニューラル ネットワークを構築するための TensorFlow API。Layers API を使用すると、次のようなさまざまなタイプのレイヤを構築できます。

Layers API は、Keras レイヤ API の規則に従います。つまり、Layers API のすべての関数には、接頭辞が異なる以外は、Keras レイヤ API の対応する関数と同じ名前とシグネチャがあります。

M

メッシュ

#TensorFlow
#GoogleCloud

ML 並列プログラミングで、データとモデルを TPU チップに割り当て、これらの値をシャーディングまたは複製する方法を定義することに関連する用語。

メッシュは、次のいずれかを意味する過負荷用語です。

  • TPU チップの物理レイアウト。
  • データとモデルを TPU チップにマッピングするための抽象的な論理構造。

いずれの場合も、メッシュはシェイプとして指定します。

metric

#TensorFlow

重視する統計情報。

目標とは、ML システムが最適化を試みる指標です。

N

ノード(TensorFlow グラフ)

#TensorFlow

TensorFlow グラフ内の演算。

O

オペレーション(op)

#TensorFlow

TensorFlow において、テンソルを作成、操作、または破棄するプロシージャ。たとえば、行列乗算は、2 つのテンソルを入力として受け取り、1 つのテンソルを出力として生成する演算です。

P

パラメータ サーバー(PS)

#TensorFlow

分散設定でモデルのパラメータを追跡するジョブ。

Q

キュー

#TensorFlow

キューデータ構造を実装する TensorFlow オペレーション。通常は I/O で使用されます。

R

階数(テンソル)

#TensorFlow

テンソルの次元数。たとえば、スカラーはランク 0、ベクトルはランク 1、行列はランク 2 です。

rank (ordinality) と混同しないでください。

ルート ディレクトリ

#TensorFlow

TensorFlow チェックポイントのサブディレクトリと複数のモデルのイベント ファイルをホストするために指定するディレクトリ。

S

SavedModel

#TensorFlow

TensorFlow モデルの保存と復元に推奨される形式。SavedModel は、言語に依存しない復元可能なシリアル化形式です。これにより、上位レベルのシステムとツールで TensorFlow モデルを生成、使用、変換できます。

詳細については、TensorFlow プログラマー ガイドの保存と復元の章をご覧ください。

割安便

#TensorFlow

モデルのチェックポイントの保存を担当する TensorFlow オブジェクト

シャード

#TensorFlow
#GoogleCloud

トレーニング セットまたはモデルの論理区分。通常、なんらかのプロセスで、またはパラメータを(通常は)同じサイズのチャンクに分割してシャードを作成します。その後、各シャードは異なるマシンに割り当てられます。

モデルのシャーディングはモデル並列処理と呼ばれ、データのシャーディングはデータ並列処理と呼ばれます。

概要

#TensorFlow

TensorFlow では、特定のステップで計算される 1 つまたは複数の値。通常はトレーニング中にモデル指標を追跡するために使用されます。

T

Tensor

#TensorFlow

TensorFlow プログラムの主要なデータ構造。テンソルは N 次元(N が非常に大きくてもよい)データ構造であり、一般的にはスカラー、ベクトル、または行列です。テンソルの要素は、整数値、浮動小数点値、文字列値のいずれかを保持できます。

TensorBoard

#TensorFlow

1 つ以上の TensorFlow プログラムの実行中に保存されたサマリーを表示するダッシュボード。

TensorFlow

#TensorFlow

大規模な分散型 ML プラットフォーム。この用語は、Dataflow グラフの一般的な計算をサポートする TensorFlow スタックのベース API レイヤも表します。

TensorFlow は主に ML に使用されますが、Dataflow グラフを使用した数値計算を必要とする ML 以外のタスクにも TensorFlow を使用できます。

TensorFlow Playground

#TensorFlow

さまざまなハイパーパラメータがモデル(主にニューラル ネットワーク)のトレーニングにどのように影響するかを可視化するプログラム。 http://playground.tensorflow.org にアクセスして TensorFlow Playground を試す。

TensorFlow Serving

#TensorFlow

トレーニング済みモデルを本番環境にデプロイするためのプラットフォーム。

TPU(Tensor Processing Unit)

#TensorFlow
#GoogleCloud

ML ワークロードのパフォーマンスを最適化するアプリケーション固有の集積回路(ASIC)。これらの ASIC は、複数の TPU チップとして TPU デバイスにデプロイされます。

テンソル ランク

#TensorFlow

ランク(テンソル)を参照してください。

テンソル形状

#TensorFlow

テンソルに含まれる要素の数(次元数)。たとえば、[5, 10] テンソルの形状はある次元では 5、別の次元では 10 です。

テンソルサイズ

#TensorFlow

テンソルに含まれるスカラーの総数。たとえば、[5, 10] Tensor のサイズは 50 です。

tf.Example

#TensorFlow

ML モデルのトレーニングや推論に使用する入力データを記述するための標準の プロトコル バッファ

tf.keras

#TensorFlow

TensorFlow に統合された Keras の実装。

TPU

#TensorFlow
#GoogleCloud

Tensor Processing Unit の略語。

TPU チップ

#TensorFlow
#GoogleCloud

ML ワークロード用に最適化された、高帯域幅メモリを内蔵したプログラム可能な線形代数アクセラレータ。複数の TPU チップが TPU デバイスにデプロイされます。

TPU デバイス

#TensorFlow
#GoogleCloud

複数の TPU チップ、高帯域幅ネットワーク インターフェース、システム冷却ハードウェアを備えたプリント回路基板(PCB)。

TPU マスター

#TensorFlow
#GoogleCloud

ホストマシン上で実行される中央の調整プロセス。データ、結果、プログラム、パフォーマンス、システムの健全性に関する情報を TPU ワーカーと送受信します。また、TPU マスターは、TPU デバイスのセットアップとシャットダウンも管理します。

TPU ノード

#TensorFlow
#GoogleCloud

特定の TPU タイプを持つ Google Cloud 上の TPU リソース。TPU ノードは、ピア VPC ネットワークから VPC ネットワークに接続します。TPU ノードは、Cloud TPU API で定義されたリソースです。

TPU Pod

#TensorFlow
#GoogleCloud

Google データセンター内の TPU デバイスの特定の構成。TPU Pod 内のすべてのデバイスは、専用の高速ネットワークを介して相互に接続されています。TPU Pod は、特定の TPU バージョンで使用できる TPU デバイスの最大構成です。

TPU リソース

#TensorFlow
#GoogleCloud

お客様が作成、管理、または使用する Google Cloud 上の TPU エンティティ。たとえば、TPU ノードTPU タイプは TPU リソースです。

TPU スライス

#TensorFlow
#GoogleCloud

TPU スライスは、TPU Pod 内の TPU デバイスの小数部分です。TPU スライス内のすべてのデバイスは、専用の高速ネットワークで相互に接続されています。

TPU タイプ

#TensorFlow
#GoogleCloud

特定の TPU ハードウェア バージョンを持つ 1 つ以上の TPU デバイスの構成。TPU タイプは、Google Cloud で TPU ノードを作成するときに選択します。たとえば、v2-8 TPU タイプは、8 コアの単一の TPU v2 デバイスです。v3-2048 TPU タイプには、256 個のネットワーク TPU v3 デバイスと合計 2,048 コアがあります。TPU タイプは、Cloud TPU API で定義されているリソースです。

TPU ワーカー

#TensorFlow
#GoogleCloud

ホストマシンで実行され、TPU デバイスで ML プログラムを実行するプロセス。