付録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.