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.
insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui
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.
insira a descrição da imagem aqui
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.
insira a descrição da imagem aqui
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.

insira a descrição da imagem aqui
Como estamos usando a biblioteca YoloV4-Tiny-Pytorch desta vez, carregamos seus pesos pré-treinados para a pasta model_data.
insira a descrição da imagem aqui

2. Abra o Colab e configure o ambiente

1. Crie um caderno

Nesta etapa, primeiro abrimos o site oficial do Colab.
insira a descrição da imagem aqui
Em seguida, clique no arquivo para criar um notebook, que criará um notebook jupyter.
insira a descrição da imagem aqui
Após a conclusão da criação, altere o nome do arquivo para ficar melhor.
insira a descrição da imagem aqui
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.
insira a descrição da imagem aqui
insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui
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.
insira a descrição da imagem aqui
Abra o gdrive, que tem nosso conjunto de dados.
insira a descrição da imagem aqui

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/

insira a descrição da imagem aqui

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 ./

insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui
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

insira a descrição da imagem aqui

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

insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui
Substitua model_path à direita.
insira a descrição da imagem aqui

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 .
insira a descrição da imagem aqui

3. Comece a treinar

Neste ponto no notebook digite:

!python train.py

para começar a treinar.
insira a descrição da imagem aqui

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.

Acho que você gosta

Origin blog.csdn.net/weixin_44791964/article/details/123659637
Recomendado
Clasificación