Rede neural aprendendo pequeno registro 70 - Pytorch usa o Google Colab para aprendizado profundo
Precauções
Este artigo usa o conjunto de dados VOC como exemplo, portanto, class_path, etc.
estudo prefácio
O Colab é uma plataforma de aprendizado em nuvem fornecida pelo Google, Very Nice. Recentemente, o cartão não é suficiente e decidi me prostituir de graça. Este blog explicará apenas como usar o Colab para treinar o armazém de deep learning existente e não dirá como acessar a rede externa, como se registrar, etc.
Este blog é apenas para demonstrar o uso do Colab, principalmente para familiarizá-lo com o funcionamento do Colab, análise específica de problemas específicos, operação imprópria e alterações de versão levarão a erros de etapas, se houver um erro, recomenda-se ir ao Baidu, observe o código e as instruções e verifique a causa do erro , Ao mesmo tempo, é recomendável que alunos com um certo conhecimento básico usem o Colab.
O que é o Google Colab
O Google Colab é um ambiente de notebook Jupyter gratuito fornecido pelo Google, que pode ser usado sem nenhuma configuração e configuração de ambiente e é executado inteiramente na nuvem. Não afeta o uso local.
O Google Colab fornece aos pesquisadores uma certa quantidade de GPUs gratuitas para escrever e executar código, todas disponíveis gratuitamente por meio de um navegador. Os alunos podem executar facilmente estruturas de aprendizado profundo, como Tensorflow e Pytorch.
Embora o Google Colab forneça alguns recursos gratuitos, a quantidade de recursos é limitada e todos os tempos de execução do Colab serão redefinidos após um período de tempo. Os assinantes do Colab Pro ainda terão uso limitado, mas aproximadamente o dobro do limite que os não assinantes podem desfrutar. Os assinantes do Colab Pro+ também obtêm maior estabilidade.
Links Relacionados
Site oficial do Colab: https://colab.research.google.com/
(requer uma rede externa para entrar)
ipynb Github: https://github.com/bubbliiiing/Colab
Treinamento com Colab
Este artigo toma como exemplo o treinamento da versão YoloV4-Tiny-Pytorch para demonstrar o uso do Colab.
1. Upload de conjuntos de dados e pesos pré-treinamento
1. Upload do conjunto de dados
O Colab e o próprio disco na nuvem do Google estão muito bem vinculados, por isso precisamos primeiro fazer o upload do conjunto de dados para o disco da nuvem. O processo de upload é realmente muito simples e o conjunto de dados é preparado localmente primeiro.
Como todas as bibliotecas que carreguei usam o conjunto de dados VOC, precisamos colocá-las de acordo com o conjunto de dados VOC. Este artigo usa diretamente o conjunto de dados VOC07+12 como exemplo para demonstrar.
JPEGImages armazena arquivos de imagem, Annotations armazena arquivos de rótulo e ImageSets armazena arquivos txt que distinguem conjuntos de validação, conjuntos de treinamento e conjuntos de teste.
Em seguida, empacote todo o arquivo VOCdevkit. Deve-se notar que as três pastas acima não são empacotadas, mas o VOCdevkit é empacotado, de forma a atender o formato de processamento de dados.
Depois de obter o pacote compactado, faça upload do pacote compactado para o Google Cloud Drive. Criei uma nova pasta VOC_datasets no Google Cloud Drive para armazenar o pacote compactado.
Neste ponto, o upload do conjunto de dados está concluído.
2. Carregamento de pesos pré-treinados
Para criar uma pasta no Google Cloud Disk, primeiro crie Models, depois crie yolov4-tiny-pytorch em Models e, em seguida, crie logs e model_data em yolov4-tiny-pytorch.
model_data coloca os arquivos de pré-treinamento.
Os logs colocam os pesos gerados durante o processo de treinamento da rede.
Como estamos usando a biblioteca YoloV4-Tiny-Pytorch desta vez, carregamos seus pesos pré-treinados para a pasta model_data.
2. Abra o Colab e configure o ambiente
1. Crie um caderno
Nesta etapa, primeiro abrimos o site oficial do Colab.
Em seguida, clique no arquivo para criar um notebook, que criará um notebook jupyter.
Após a conclusão da criação, altere o nome do arquivo para ficar melhor.
Em seguida, clique no programa de execução de código, clique em Alterar tipo de tempo de execução, selecione GPU na seção do acelerador de hardware, o Colab configurará uma máquina com GPU e o notebook será criado.
2. Configuração simples do ambiente
O Colab integrou o ambiente pytorch e não há necessidade de configurar o pytorch especificamente, mas a versão do torch usada é relativamente nova.
Como nosso conjunto de dados está no Google Cloud Disk, também precisamos montar o disco na nuvem.
from google.colab import drive
drive.mount('/content/gdrive')
Inserimos o código acima no notebook para execução. Monte o disco de nuvem no servidor. Em seguida, clique em executar.
Neste ponto, clique na coluna da esquerda, algo semelhante a uma pasta, você pode abrir a pasta e ver a implantação do arquivo. gdrive é o disco de nuvem do Google que configuramos. Se não, vá para a esquerda e atualize.
Abra o gdrive, que tem nosso conjunto de dados.
3. Baixe a biblioteca de aprendizado profundo
Nesta etapa, precisamos concluir o download do repositório de deep learning, usamos o comando git clone para fazer o download. Depois de executar o seguinte comando, a pasta yolov4-tiny-pytorch é adicionada ao arquivo à esquerda . Se não, vá para a esquerda e atualize.
Em seguida, movemos o diretório raiz para a pasta yolov4-tiny-pytorch através do comando cd.
!git clone https://github.com/bubbliiiing/yolov4-tiny-pytorch.git
%cd yolov4-tiny-pytorch/
4. Cópia e descompactação do conjunto de dados
A organização direta do conjunto de dados no Google Cloud Disk resultará em uma grande quantidade de transferência de dados do disco na nuvem, que é muito mais lenta que o arquivo local, portanto, precisamos copiar o conjunto de dados para o local para processamento.
Inserimos o seguinte código para copiar e descompactar o arquivo. A primeira coisa a executar é excluir a pasta VOCdevkit vazia original. Em seguida, descompacte.
Como o arquivo zip é usado aqui, é usado o comando unzip, caso seja outra forma de pacote compactado, o comando precisa ser modificado de acordo com o formato do pacote compactado ( por favor, alunos do Baidu ). Após executar o comando a seguir, você pode descobrir que o conjunto de dados VOC foi descompactado no arquivo à esquerda . Se não, vá para a esquerda e atualize.
!rm -rf ./VOCdevkit
!cp /content/gdrive/MyDrive/VOC_datasets/VOC07+12+test.zip ./
!unzip ./VOC07+12+test.zip -d ./
5. Salve as configurações de caminho
O caminho de salvamento padrão do código fornecido neste artigo é a pasta de logs, mas o Colab tem um problema instável e será desconectado após a execução por um período de tempo.
Se os pesos forem salvos na pasta de logs no diretório raiz original, o treinamento da rede será inútil se houver uma desconexão e muito tempo será desperdiçado.
O disco da nuvem do Google pode ser conectado de forma flexível ao diretório raiz, portanto, mesmo que a conexão seja desconectada, os pesos permanecerão no disco da nuvem.
A pasta de logs foi criada no disco da nuvem antes deste artigo. Vincule esta pasta.
!rm -rf logs
!ln -s /content/gdrive/MyDrive/Models/yolov4-tiny-pytorch/logs logs
3. Comece a treinar
1. Processamento de arquivos de anotação
Abra o arquivo voc_annotation.py. Como estamos usando o conjunto de dados VOC diretamente, já dividimos o conjunto de treinamento, o conjunto de validação e o conjunto de teste, então definimos annotation_mode como 2.
Em seguida, digite o comando para concluir o processamento da etiqueta e gere 2007_train.txt e 2007_val.txt.
!python voc_annotation.py
2. Processamento de arquivos de treinamento
O processamento de arquivos de treinamento inclui principalmente três partes:
1. O uso de arquivos de pré-treinamento.
2. A configuração do período de armazenamento. Essa configuração ocorre porque o espaço de armazenamento do disco em nuvem é limitado e cada geração de armazenamento fará com que o espaço de armazenamento fique cheio.
a. Uso de arquivos de pré-treinamento
Primeiro modifique model_path para apontar para o arquivo de pesos que enviamos para o Google Cloud Drive. Na coluna do arquivo à esquerda, encontre models/yolov4-tiny-pytorch/model_data e copie o caminho dos pesos.
Substitua model_path à direita.
b. Salve a configuração do ciclo
Alguns repositórios foram atualizados, e os parâmetros de salvamento de quantas gerações são adicionados. Você pode modificar diretamente o save_period. Neste artigo, definimos o save_period para 4, ou seja, salva a cada 4 gerações.
Armazéns que não foram atualizados só podem ser salvos em cada geração. Lembre-se de acessar o disco da nuvem do Google para excluí-los ocasionalmente .
3. Comece a treinar
Neste ponto no notebook digite:
!python train.py
para começar a treinar.
O que devo fazer se a linha for desconectada?
1. Medidas anti-queda
Ouvi dizer que você pode reduzir a frequência de chamadas perdidas clicando automaticamente.
Pressione F12 no Google colab, clique no console da página da web e cole o seguinte código:
function ConnectButton(){
console.log("Connect pushed");
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click()
}
setInterval(ConnectButton,60000);
2. Acabou ou está desconectado?
Não tem jeito, coisas baratas devem ter suas desvantagens.
Siga as etapas novamente e, em seguida, defina os pesos de pré-treinamento para o arquivo de pesos treinados na pasta de logs.
Além disso, parâmetros como Init_epoch também precisam ser ajustados.
Resumir
O mais importante no treinamento do Colab é lidar com a relação entre os caminhos, descobrir qual arquivo está onde, e onde está o diretório de execução da pasta, você pode simplesmente executar o programa, mas o Colab tem um problema de desconexão, nós preciso mantê-lo em todos os momentos do arquivo, então eu salvo os pesos diretamente no disco da nuvem para que eles não sejam perdidos.