в текущих руководствах для ноутбуков (gpflow 2.0) все теги @ tf.function включают параметр autograph = False, например (https://gpflow.readthedocs.io/en/2.0.0-rc1/notebooks/advanced/gps_for_big_data.html):
@tf.function(autograph=False)
def optimization_step(optimizer, model: gpflow.models.SVGP, batch):
with tf.GradientTape(watch_accessed_variables=False) as tape:
tape.watch(model.trainable_variables)
objective = - model.elbo(*batch)
grads = tape.gradient(objective, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
return objective
Кто-нибудь знаете, почему это так, или какова причина этого? Насколько я понял, autograph=True
просто позволяет преобразовать поток управления python в структуру графа. Имеет ли установка / сохранение значения true, даже если функциональность не требуется, какие-либо недостатки?
Я полагаю, что это всего лишь небольшие накладные расходы во время компиляции графика, но они должны быть незначительными. Это неправильно?
Спасибо