A continuación, se ofrecen algunos consejos para solucionar problemas inesperados.
Operación no permitida dentro del alcance de la estrategia de distribución
Error como : No se permite la creación de un generador dentro de un alcance de estrategia, porque existe ambigüedad sobre cómo replicar un generador (por ejemplo, ¿debería ser copiado para que cada réplica obtenga los mismos números aleatorios, o 'dividir' para que cada réplica sea diferente aleatoriamente números).
Solución : pasar distribution_strategy='auto'
para run
API envuelve todo su script en una estrategia de distribución TF basada en la configuración del clúster proporcionada. Verá el error anterior o algo similar, si por alguna razón no se permite una operación dentro del alcance de la estrategia de distribución. Para corregir el error, pase None
al parámetro distribution_strategy
y cree una instancia de estrategia como parte de su código de entrenamiento como se muestra en este ejemplo.
Tiempo de espera de creación de imagen de Docker
Error como : solicitudes.excepciones.ConnectionError: ('Conexión cancelada', tiempo de espera ('La operación de escritura agotó el tiempo de espera'))
Solución : Es probable que el directorio que se utiliza como punto de entrada tenga demasiados datos para que la imagen se compile correctamente y es posible que se incluyan datos extraños en la compilación. Vuelva a formatear la estructura de su directorio de modo que la carpeta que contiene el punto de entrada solo incluya los archivos necesarios para el proyecto actual.
Versión no compatible con el entrenamiento de TPU
Error como : Hubo un error al enviar el trabajo. Campo: tpu_tf_version Error: La versión de tiempo de ejecución especificada '2.3' no es compatible con el entrenamiento de TPU. Especifique una versión de tiempo de ejecución diferente.
Solución : utilice TF versión 2.1. Consulte Estrategia de TPU en la sección Configuración de estrategia de distribución y clúster .
TF construcción nocturna.
Advertencia como : la imagen principal de Docker '2.4.0.dev20200720' no existe. Usando la última compilación nocturna de TF.
Solución : si no proporciona el docker_config.parent_image
, entonces, de forma predeterminada, usamos imágenes de Docker TF predefinidas como imagen principal. Si no tiene TF instalado en el entorno donde se llama a run
, se utilizará la imagen de la ventana acoplable TF para la latest
versión estable. De lo contrario, la versión de la imagen de la ventana acoplable coincidirá con la versión de TF instalada localmente. Sin embargo, las imágenes de la ventana acoplable TF predefinidas no están disponibles para los nightlies TF, excepto en la última. Por lo tanto, si su TF local es una versión nocturna anterior, actualizamos automáticamente a la última versión nocturna y presentamos esta advertencia.
Mezcla de objetos de estrategia de distribución.
Error como : RuntimeError: Mezcla de diferentes objetos tf.distribute.Strategy.
Solución : proporcione distribution_strategy=None
cuando ya tenga una estrategia de distribución definida en el código de su modelo. Si especifica distribution_strategy'='auto'
, ajustará su código en una estrategia de distribución de TensorFlow. Esto provocará el error anterior, si ya hay un objeto de estrategia utilizado en su código.