Разница между ними запутана в моей голове, несмотря на нюансы того, что стремится, а что нет. Исходя из того, что я понял, у @tf.function
есть два преимущества:
- , он преобразует функции в графики TensorFlow для повышения производительности, а
- допускает более Pythoni c стиль кодирование путем интерпретации многих (но не всех) общих Python операций в тензорные операции, например,
if
в tf.cond
, et c.
Из определения tf.py_function
Похоже, что это просто # 2 выше. Следовательно, зачем беспокоиться о tf.py_function
, когда tf.function
выполняет работу с улучшением производительности для загрузки и без невозможности сериализации первого?