1. 磐创AI首页
  2. Medium

Treinando Modelos de detecção de Objetos mais rápido com TPU

一个深入学习的私生子利用zada,essencialmente quando o objetivo da tarefa Envolve a Localização dos Objetos na imagem ou quando mais de um objeto de Interest aparece amente。

Porém,Uma das desvantagens desse métodoéo Customo Computacional Elevado,Requiisitando o USO de GPU Modern nas e,ainda assim,poendo levarhoras ou atédias para se Complar o Treinamento.Pensando Nisso,o objetivo desse artigoémofer comoépossível利用zar um Hardware especíFICO para Deep Learning,作为TPU,e treina Modelos dezenas de veze mais rápido利用zando a API de detecção de Objetos do TensorFlow NA Plataforma grauita do Google Colab。

您的位置:我也知道>生活>家庭生活>您的位置在哪里?

计算机辅助设计组件Possui Uma Função específica e sua Arquietura física foi pensada para melhor servir ao seu objetivo.作为中央处理器,或示范,会议激光雷达com多样化的tarefas同时,além de realizar Operaçáes de leitura e escrita利用zadas o tempo todo em nossa interação com o Sistema Operaconal。当GPU são unidds Specializadas em Realizar Operaçóes matemáticas de maneira rápida possível,sendo capazes de lidar com tarefas Complex as como renderizaçáes 3D e simaçáes físicas。

Dito isso,作为TPU(张量处理单元)形成的Criadas pelo Google e anuncadas em 2016 com o objetivo de serum硬件专门用于深度学习,postsuindo Uma Arquietura que conSegue lidar com os tensores multisionais de maneira Efforente,Conform me explicado em detales aqui.aqui

委员会,因为TPU são利用zadas em cluster com dezenas ou centenas de nós,acessíveis através de serviços de cloud。您的位置:www.google Colab permite o USO grucuito de um cluster com Algan nós de TPU,sendo capaz de treina Modelos mais rapidamente do que qualquer OUTRA GPU disonível pelo serviço.

Utilzando TPU no Google Colab

PARA示例o USO das TPU no Colab,vamos利用数据集do Kaggle para检测gatos e cachorros。作为anotaçáes foram produzidas pelo软件,LabelImg e Todo o Código Fonte se Enconta no Github。PARAYVIITAR o cluster de TPU do Colab basa acessar o Menu de Ambiente de execução e clicar em“Alternar tipo do amilente”,conformme Ilustrado abaixo:dataset do Kaggle LabelImg Github

我不会的,我不会让你失望的。Tenha em mente Que a Quate de USO desse Recursoélimitado,DeVido ao Fato do serviço ser gratuito(embora Haja Uma versão pro)(Enbora Haja Uma versão pro)。o Google não Specifica quanto tempo o usuário conSegue ter acesso ao Hardware,masminha recomendação não selecionar o uso de TPus a menos que de Fato Uma!

Criando os arquivos TFRecord

o Primeiro Passo necessário em qualquer Pipeline de detecção de Objetos com o TensorFlowéTransformar os arquivos XML Contendo as Label das imagens em arquivos binários do tipo TFRecord das imagens em arquivos binários do tipo TFRecord。Esses arquivos são otimizados para funcionar em diffsas API do TensorFlow,entre ELAs o TF data,use zado para ingestão de forma Paralela e com alto desempenho.TF Data paralela e com alto desempenho

佩剑的存在存在ncia e funcionamento da ingestão de dadoséessenSocial para se利用作为TPU de maneira correta,visto que o process amento de dados nesse tipo de dispostivo ocorre de maneira muito acelerada,gerando um gargalo no processator parler e Transform arquivos em Massa。探索简单(Detales Podem Service Vistos Aqui)o Treinamento dos Modelos de Deep Learning geralmente Psam por duas etapas。Na Primeira etapa,一个CPU FAZ a leitura de um Batch de arquivos(24幅图像或范例)e aplica transaçáes a Essas imagens(reduz a ensionão e aplica técnicas de aumento de dados)。非也是如此,因为图像预先处理的São转变为一个嗯硬件的数字硬件(GPU和TPU)e estes realizam o Treinamento do Modelo(图形单元或TPU)e estes realizam o Treinamento do Modelo。aqui

Entretanto,quando o Hardware Processing as image a Uma velocidade muito alta,épossível que a CPU não consiga ler e pré-process ar o Batch de dados na Mesma velocidade que o Modelo requer parser treinado。

Ese Problemésolvido atravido através da API do TF data,com a leitura Efiente paralelizada dos dados use zados em Treinamento.Porém,um detalhe muita das vezeségearadoéa form em que os arquivos TFRecord devem ser Criados.Ação do TensorFlow建议criar um conjuto de arquivos que não sejam nem tão Grand es e nem tão pequios.Dito isso,Uma boa práticaé,ao invés de possuir umúNico arquivo TFRecord com 5 GB,ter 10 arquivos com 500MB cada um,facilando a paralização da leitura.

O Primeiro Passo para atingir is soémapear as anotaçáes XML e as imagens em um arquivos CSV.isso pode ser feito através do script“xml_to_csv”dispuvel no Github com o seguinte comando:Github

python3 xml_to_csv.py -i caminho-do-dataset -o ./train_labels.csv

作为标志-i e-o são利用zadas para Specificar o caminho em que o seu数据集se Enconta e o caminho em que o result tado do arquivo XML serágerado。

feito isso,épriciso ecutar o script“Generate_tfRecords”para Transformar as anotaçáes efetivamente nos arquivos binários。o seguinte comando pode ser usezado para esse fim:

python3 generate_tfrecord.py --csv_input tpu-training/train_labels.csv --output_path tpu-training/train.tfrecord --label_map tpu-training/label_map.pbtxt --n_splits 2 --img_path tpu-training/dataset/train

OS parâmetros利用zados no script são explicados em detales abaixo:

  • CSV_INPUT:卡米尼奥做Arquivo CSV Gerado没有帕索前锋。
  • OUTPUT_PATH:nome base e caminho do arquivo TFRecord que seráCriado.
  • LABEL_MAP:Caminho做arquivo Contendo as Label das Classed a Serem Detectadas。
  • N_Splits:número de arquivos TF记录一个系列。
  • img_path:Caminho das imagens do数据集。

APós a execução do algoritmo,dois arquivos TFRecord são grados,conform me Specificado nos parâmetros。Nesse Example o em específio,os arquivos têm pouco mais de 10MB e podriam service apenas umúnico arquivo.o número de arquivos pode variar conforme vocêquiser,porém,eu geralmente Tento Manter um máximo de 300MB cada um.

Anbos脚本foram Criados Origalmente Por esse Autor,Porém,o arquivo de geração de TFRecord foi modficado por mim de modo a Posablitar a criação de múltiplos arquivos,além de algumas melhorias feitas na geração do CSV(csv:a criação de múltiplos arquivos,além de algumas melhorias feitas na geração do CSV!)esse autor

谷歌云服务

Ao criar os arquivos TFRecord estamos ablitados a treina o Modelo.这是一个很重要的问题,因为它不是可能的,也不可能出现在我们的生活中,所以我们不能把它聚集在一起,而不是把它放在树上,而不是把它们放在一起,而不是把它们放在一起,这样做是不可能的。

正常,quando realizamos o Treinamento de um Modelo no Google Colab Uma GPU,POR Example,a execução do código acontece no mesmo biamente em que o笔记本éinstanciado,便利性和做一个摄取ão de dados。Por conta disso,Podemos facilmente nos conectar ao Google Drive,clonar um reposedório do git ou ainda Fazer Upload diretamente,como forma de acessar os dados(TFRecords)que serão use zados no Treinamento.

泉多利用zamos作为TPU,或者por outro lado,o treinamento ocorre em um cluster hospedado em umma cloud fora do amente jupyter em que estamos trabalhando。Por conta disso,os dados use zados(TF没有记录任何案例)preisam estar hospedados em algum serviço de Nuvem,além de estarem disoníveis para acesso externo.OS dados呈现的是Na Sessão do Colab ou no Google Drive não Conseguem ser diretamente acessados ao realizar o Treinamento Por TPU。

Dentre as inúmeras formas possíveis de se Fazer isso,a mais fácel que encontreiéuplailzar os serviços do Google Cloud Platform(GCP),Mais Specificamento Cloud Storage。o Primeiro Passoécriar e ativar Uma conta no GCP,sendo não sógratuito como Dando$300 dólares de créditos para usezar em testes dos serviços do GCP。Entretando,seránecessário cadastrar um cartão de crédito válido.一片宁静,一片宁静,一片宁静。Google Cloud Platform

Feito isso,épressiso acessar o serviço de Cloud Storage,onde iremos armazenar os arquivos TFRecord que serão use zados no Treinamento。épossível acessar esse serviço没有菜单做控制台做GCP。

这句话的意思是:“我的意思是,我没有更好的菜单,更好的服务,更好的服务,就像我的配置一样:”(这句话的意思是:“我的名字是:”我的名字是“我的名字”),我的名字是“我的名字是我的名字”,因为我的名字是“我的名字”。

  • APós nomear o bucket conform me achar melhor,épriciso selecionar a região de armazenamento.Paro propósito de armazenar os dados para Treinamento eu recomendo use zar Umaúnica região,de Preferenceência na Carolina do Sul(US-East1)。
  • 一个Armazenamento PODE SERVAL类的标准。
  • 没有控制菜单,去掉了一个OPção“aplicar a Prevenção de acesso público neste Bucket”(应用a Prevenção de acesso público筑巢桶)。
  • nproteção de dados,pode-se manter a opção“nenhum”。
  • Basta clicar em呐喊e seu bucket estarádisonível。


当然,我不会带任何桶去吃意大利面,也不会带去任何东西。EM cada意大利面,basa fazer o Upload dos arquivos TFRecord spectivos arrastando eles para意大利面ou clicando em“Fazer Upload de arquivos”(“Fazer Upload de arquivos”)。

上传Do Modelo基础

Uma técnica muito comum na detecção de ObjetoséUma técnica muito and detecção de ObjetEsses Modelos Podem ser escolhidos没有模型动物园做TensorFlow Basado没有权衡Entre Customo Computacional电子地图。Ao escolher o Modelo base,épriso Baixá-lo e Fazer o Upload no bucket do GCP,visto que o mesmo também Deveráestar accessível pelo cluster de TPU que serátility zado no Treinamento。model zoo

o arquivo Contendo作为标签做Modelo,geralmente Chamado de label_map.pbtxt também Deveráser disponibilizado没有桶。没有总数,São 4 Objetos que Deverão ser Colocados没有桶,São eles:意大利面de Treinamento e意大利面de teste com os分别为TFRecords,Modelo base pré-treinado e o label_map。

配置管道

Todo Modelo de detecção de Objetos do TensorFlow possui um arquivo de configuração,geralmente Chamado Pipeline.config.Esse arquivo possui,como nome sugere,Uma série de hiperparâmetros e configuraçáes base para execução do Modelo,conformme Special ficado pelo usuário。um passo necessário antes de realizar o Treinamento no Colabégarantir que esse arquivo iráconter os caminhos dos arquivos de Treinamento,validação e do Modelo Prétreinado corretamente configuration ados,conformme intruido:

  • Altere o“FINE_TUNE_CHECKPOINT”pelo caminho do checkpoint do Modelo Pré-treinado no bucket do GCP.没有我的赌场,o result tadoéesse:

fine_tune_checkpoint: "gs://tpu-object-detection/pretrained_model/efficientdet_d1_coco17_tpu-32/checkpoint/ckpt-0"

关于“TPU-目标检测”éo nome do meu bucket e“pretracted_model”éUma意大利面criada por mim para colocar o Modelo。

  • Altere o label_map_path(Em Dois Lugares)pelo caminho do seu label_map

label_map_path: "gs://tpu-object-detection/label_map.pbtxt"

  • Altere o“INPUT_PATH”QUE FICA Dentro de“Train_Input_Reader”com os caminhos dos TF Records de Treinamento
  • Altere o“input_path”que fica dentro de“eval_input_read”com os caminhos dos TFRecords de test.

Treinando o Modelo com o Google Colab

最后,他呼喊着不喝可乐,因为它是一种结构上的实现。部分,里约热内卢普里梅罗iniciar a Conexão com o cluster de TPus na cloud,através do seguinte código:

执行人员esse comando,vocêveráinformaçáes relativas de TPU a qual conseguiu acesso,como a Quantidade de nós disoníveis:

O Próximo PassoéFazer a finição dos hiperparâmetros necessários para execução do Modelo de detecção de Objetos,como número de Steps de Treinamento e validação e o批次大小。[晓雨-0920交稿]批次大小为Multiicado pelo número de réplicas(nós)disoníveis no cluster,conformme mostrado no código abaixo:(nós)disoníveis no cluster,conform me mostrado no código abaixo:

Anes de efetuar o Treinamento,éceriso se autenticar com a conta do Google para garantir que vocêpoderáacessar os itens no bucket,ecutando o seguinte código:

from google.colab import auth

Por fim,basa Executar o Comando que inicia o Treinamento do Modelo:

这是一种很好的娱乐方式,它可以让你的生活变得更美好,也更有节奏感,因为它是一种精准的分割方式,它可以帮助你更好地利用自己的生活方式,更好地满足人们对生活的需求,更好地满足人们对生活的需求,同时也是一种全新的生活方式,因为它是一种完美的生活方式,它可以帮助人们更好地享受生活和生活的乐趣。

Conforme vocêiráservar,o Treinamento com TPusémuito mais rápido do que use zando apenas Uma GPU,além do Fato de Conseguir usezar um Batch maior de imagens por Iteração,aumentando a velocidade em que Umaépocaéprocessada。

结论ão

o Treinamento利用zando TPUéum pouco mais trabalhoso do que em uma简化CPU ou GPU。Entretando,tarefas Complex as como detecção de Objetos Podem seracelerados dezenas de veze através do USO desse tipo de Hardware,aumentando a velocidade de Iteração e testes de hipóteese do Modelo.

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/10/09/treinando-modelos-de-deteccao-de-objetos-mais-rapido-com-tpu/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息