Количество времени для запуска каждой эпохи, очевидно, будет одинаковым, пока вы ничего не измените в сети. Просто запустить его на более крупном графическом процессоре - здесь не ответ.
Прежде всего, если вы можете изменить свою сеть, чтобы уменьшить количество параметров, это будет здорово. Итак, уменьшение вашей модели, очевидно, является первым, что заставит ее работать быстрее.
Но, если это невозможно, вот две вещи, которые вы можете сделать:
- Используйте tf. mixed_precision для ускорения работы модели.
from tensorflow.keras.mixed_precision import experimental as mixed_precision
policy = mixed_precision.Policy('mixed_float16')
mixed_precision.set_policy(policy)
Он предлагает значительное ускорение вычислений за счет выполнения операций в формате половинной точности, сохраняя при этом минимальную информацию с одинарной точностью, чтобы сохранить как можно больше информации в критических части сети.
Используйте XLA.
import tensorflow as tf
tf.config.optimizer.set_jit(True)
Accelerated Linear Algebra, XLA - это компилятор c, специфичный для домена, для матричных операций. Это может сделать вашу сеть быстрее без каких-либо изменений в исходном коде.
Попробуйте оба из них. Я лично использовал смешанную точность, и это, безусловно, сокращает время сети.
Также, пожалуйста, в следующий раз не переходите на более крупные инстансы, так как это пустая трата ваших денег. Просто попробуйте уменьшить количество параметров (т.е. размер сети) или воспользуйтесь этими двумя приемами. Я обновлю этот ответ, если найду новый трюк.