Когда мне нужно использовать @ tf.function - PullRequest
0 голосов
/ 07 августа 2020

Я просматриваю учебник TensorFlow Pix2Pix здесь https://www.tensorflow.org/tutorials/generative/pix2pix

Создается функция загрузки, которая считывает изображение и возвращает его. Таким образом, эта функция просто вызывается для построения некоторых изображений из набора данных. Затем определяются другие функции. Функция изменения размера и функция random_crop. Они используются следующим образом:

@tf.function()
def random_jitter(input_image, real_image):
  # resizing to 286 x 286 x 3
  input_image, real_image = resize(input_image, real_image, 286, 286)

  # randomly cropping to 256 x 256 x 3
  input_image, real_image = random_crop(input_image, real_image)

  if tf.random.uniform(()) > 0.5:
    # random mirroring
    input_image = tf.image.flip_left_right(input_image)
    real_image = tf.image.flip_left_right(real_image)

  return input_image, real_image

Мой вопрос в том, почему мы используем здесь @ tf.function, когда мы можем просто вызвать функцию загрузки, подобную этой

inp, re = load(PATH+'train/100.jpg')
# casting to int for matplotlib to show the image
plt.figure()
plt.imshow(inp/255.0)
plt.figure()
plt.imshow(re/255.0)

1 Ответ

0 голосов
/ 07 августа 2020

@tf.function () часто используется для ускорения работы моделей. Это обеспечивает более быстрое выполнение, особенно если функция состоит из множества небольших операций. Для этого он компилирует его в вызываемый граф TensorFlow, который очень быстро работает на графических процессорах.

@tf.function () также очень полезен при создании и использовании вычислительных графиков

* 1004 используйте его, если вы хотите ускорить свою модель во время обучения, но вам это не обязательно, и это может быть головной болью при отладке.

Документацию можно прочитать здесь - https://www.tensorflow.org/api_docs/python/tf/function

...