付録GTensorFlowグラフ

この付録ではTF関数が生成するグラフ(12章参照)を詳しく説明する。

G.1 TF関数と具象関数

TF関数はポリモーフィックで、データ型や形が異なる入力をサポートする。たとえば、次のtf_cube()関数について考えてみよう。

@tf.function
def tf_cube(x):
    return x ** 3

新しいデータ型と形の組み合わせでTF関数を呼び出すたびに、TF関数はこの組み合わせのための独自グラフを持つ新しい具象関数(concrete function)を生成する。すでに扱ったことのある入力シグネチャでTF関数が呼び出されたときには、以前生成された具象関数が使われる。たとえば、tf_cube(tf.constant(3.0))を呼び出すと、TF関数はtf_cube(tf.constant(2.0))のために使ったのと同じ具象関数(32ビット浮動小数点数のスカラテンソル用)を再利用する。しかし、tf_cube(tf.constant([2.0]))tf_cubetf.constant(([3.0]))を呼び出すと新しい具象関数(形が[1]の32ビット浮動小数点数用テンソル)を作り、tf_cube(tf.constant([[1.0, 2.0], [3.0, 4.0]]))を呼び出すとさらに新しい具象関数(形が[2,2]の32ビット浮動小数点数用テンソル)を作る。また、TF関数のget_concrete_function()メソッドを使えば、入力の特定の組合せのための具象関数が作れる。この具象関数は通常の関数と同じように呼び出せるが、1種類の入力シグネチャしかサポートしない(この場合は、32ビット浮動小数点数スカラテンソル用)。 ...

Get scikit-learn、Keras、TensorFlowによる実践機械学習 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.