Отладка облачных рабочих процессов TensorFlow

Вот несколько советов по устранению непредвиденных проблем.

Операция запрещена в рамках стратегии распространения

Ошибка типа : Создание генератора в рамках стратегии запрещено, поскольку существует двусмысленность относительно того, как реплицировать генератор (например, следует ли его копировать, чтобы каждая реплика получала одинаковые случайные числа, или «разделять», чтобы каждая реплика получала разные случайные числа). цифры).

Решение . distribution_strategy='auto' для run API включает весь ваш скрипт в стратегию распространения TF на основе предоставленной конфигурации кластера. Вы увидите указанную выше ошибку или что-то похожее на нее, если по какой-либо причине операция не разрешена в рамках стратегии распространения. Чтобы исправить ошибку, передайте None distribution_strategy и создайте экземпляр стратегии как часть вашего обучающего кода, как показано в этом примере.

Тайм-аут сборки образа Docker

Ошибка типа : Requests.Exceptions.ConnectionError: («Соединение прервано.», timeout («Тайм-аут операции записи истек»))

Решение . Каталог, используемый в качестве точки входа, вероятно, содержит слишком много данных для успешной сборки образа, и в сборку могут быть включены посторонние данные. Переформатируйте структуру каталогов так, чтобы папка, содержащая точку входа, включала только файлы, необходимые для текущего проекта.

Версия не поддерживается для обучения ТПУ.

Ошибка типа : произошла ошибка при отправке задания. Поле: tpu_tf_version Ошибка: указанная версия среды выполнения «2.3» не поддерживается для обучения TPU. Укажите другую версию среды выполнения.

Решение : используйте TF версии 2.1. См. Стратегию TPU в разделе «Конфигурация кластера и стратегии распределения» .

Ночная сборка TF.

Предупреждение типа : родительский образ Docker «2.4.0.dev20200720» не существует. Используем последнюю ночную сборку TF.

Решение . Если вы не указали параметр docker_config.parent_image , то по умолчанию мы используем предварительно созданные образы Docker TF в качестве родительского образа. Если у вас не установлен TF в среде, где вызывается run , будет использоваться образ докера TF для latest стабильной версии. В противном случае версия образа Docker будет соответствовать локально установленной версии TF. Однако готовые образы докеров TF недоступны для ночных TF, за исключением последних. Таким образом, если ваш локальный TF является более старой ночной версией, мы автоматически обновимся до последней ночной версии и выведем это предупреждение.

Смешение объектов стратегии распределения.

Ошибка типа : RuntimeError: смешивание разных объектов tf.distribute.Strategy.

Решение . Если у вас уже есть стратегия распространения, определенная в коде вашей модели, укажите distribution_strategy=None . Если указать distribution_strategy'='auto' , ваш код будет заключен в стратегию распространения TensorFlow. Это приведет к указанной выше ошибке, если в вашем коде уже используется объект стратегии.