Стоит ли снизить производительность при вызове специальных функций scipy / numpy с тензорами Tensorflow в качестве аргументов? В отличие от использования функций, предоставляемых tensorflow.math
?
Я спрашиваю, потому что некоторые специальные функции доступны в Scipy, но не в Tensorflow (например, scipy.special.erfcx
). Я предполагаю, что Tensorflow предоставляет функции в tensorflow.math
вместо того, чтобы рекомендовать использовать numpy или scipy напрямую, потому что это обеспечивает некоторое ускорение?
Редактировать: Обратите внимание, что я пытался использовать @tf.function
:
import scipy.special
import tensorflow as tf
@tf.function
def erfcx(x):
return tf.convert_to_tensor(scipy.special.erfcx(x))
но я получаю сообщение об ошибке при вызове tf.Tensor
.
A = tf.random.uniform((5,6))
erfcx(A)
# NotImplementedError: Cannot convert a symbolic Tensor (x:0) to a numpy array.
Есть предложения?