Aqui estão algumas dicas para corrigir problemas inesperados.
Operação não permitida no âmbito da estratégia de distribuição
Erro como : Criar um gerador dentro de um escopo de estratégia não é permitido, porque há ambigüidade sobre como replicar um gerador (por exemplo, ele deve ser copiado para que cada réplica obtenha os mesmos números aleatórios ou 'dividido' para que cada réplica obtenha números aleatórios diferentes. números).
Solução : passar distribution_strategy='auto'
para run
a API agrupa todo o seu script em uma estratégia de distribuição TF baseada na configuração do cluster fornecida. Você verá o erro acima ou algo semelhante, se por algum motivo uma operação não for permitida dentro do escopo da estratégia de distribuição. Para corrigir o erro, passe None
para o parâmetro distribution_strategy
e crie uma instância de estratégia como parte de seu código de treinamento, conforme mostrado neste exemplo.
Tempo limite de construção da imagem Docker
Erro como : requests.exceptions.ConnectionError: ('Conexão abortada.', timeout('A operação de gravação expirou'))
Solução : o diretório usado como ponto de entrada provavelmente possui muitos dados para a imagem ser construída com êxito e pode haver dados estranhos incluídos na construção. Reformate sua estrutura de diretórios de forma que a pasta que contém o ponto de entrada inclua apenas os arquivos necessários para o projeto atual.
Versão não compatível com treinamento de TPU
Erro como : Ocorreu um erro ao enviar o trabalho. Campo: tpu_tf_version Erro: A versão de tempo de execução especificada '2.3' não é suportada para treinamento de TPU. Especifique uma versão de tempo de execução diferente.
Solução : Use o TF versão 2.1. Consulte Estratégia de TPU na seção Configuração de estratégia de cluster e distribuição .
Construção noturna do TF.
Aviso como : a imagem pai do Docker '2.4.0.dev20200720' não existe. Usando a versão noturna mais recente do TF.
Solução : se você não fornecer o parâmetro docker_config.parent_image
, por padrão, usaremos imagens docker TF pré-construídas como imagem pai. Se você não tiver o TF instalado no ambiente onde run
é chamado, a imagem do Docker do TF para a versão estável latest
será usada. Caso contrário, a versão da imagem docker corresponderá à versão do TF instalada localmente. No entanto, as imagens do docker TF pré-construídas não estão disponíveis para as noites TF, exceto as mais recentes. Portanto, se o seu TF local for uma versão noturna mais antiga, atualizamos automaticamente para a versão noturna mais recente e geramos este aviso.
Misturando objetos de estratégia de distribuição.
Erro como : RuntimeError: Misturando diferentes objetos tf.distribute.Strategy.
Solução : Forneça distribution_strategy=None
quando você já tiver uma estratégia de distribuição definida em seu código de modelo. Especificar distribution_strategy'='auto'
envolverá seu código em uma estratégia de distribuição do TensorFlow. Isso causará o erro acima, se já houver um objeto de estratégia usado em seu código.