Я не понимаю, почему объявление конкретной функции TF 2. игнорирует тензорную форму, я ожидал, что следующий код не будет работать, но он работает,
@tf.function
def tf_cube(x):
return x ** 3
concrete_function2 = tf_cube.get_concrete_function(tf.TensorSpec(shape=([3,3]),
dtype=tf.float32))
x = tf.constant([[1., 2., 3.],[2.,3.,4.]])
print(concrete_function2(x))
выводит:
[[ 1. 8. 27.]
[ 8. 27. 64.]], shape=(2, 3), dtype=float32)
Однако, если я изменю dtype
, он сломается