O modelo de projeto Pytorch está sendo patrocinado pela seguinte ferramenta; Ajude -nos a nos apoiar dando uma olhada e se inscrevendo em uma avaliação gratuita
Modelo de projeto Pytorch
Implementar seu Pytorch projeta a maneira inteligente.
Um modelo escalável para projetos de Pytorch, com exemplos em segmentação de imagens, classificação de objetos, GANS e aprendizado de reforço.
Dada a natureza dos projetos de aprendizado profundo, não temos a chance de pensar muito na estrutura do projeto ou na modularidade do código. Depois de trabalhar com diferentes projetos de aprendizado profundo e enfrentar problemas com a organização de arquivos e a repetição de código, criamos uma estrutura modular do projeto para acomodar qualquer projeto Pytorch. Também queríamos fornecer uma base para diferentes modelos de Pytorch para a comunidade se basear.
Este é um trabalho conjunto entre Hager Rady e Mo'men Abdelrazek
Índice:
- Modelo de projeto Pytorch
- Por que esse modelo?
- Tutoriais
- Contribuição
- Diagrama da classe de modelo
- Repositórios referenciados
- Resumo da migração de repositórios
- Estrutura do repo de modelos
- Requisitos
- Trabalho futuro
- Licença
Por que esse modelo?
Estamos propondo uma linha de base para qualquer projeto Pytorch para dar um início rápido, onde você terá tempo para se concentrar na implementação do seu modelo e lidaremos com o resto. A novidade dessa abordagem está em:
- Fornecendo uma estrutura de projeto escalável , com um arquivo de modelo para cada um.
- Apresentando o uso de um arquivo de configuração que lida com todos os hiper-parâmetros relacionados a um determinado problema.
- Incorporar exemplos de vários problemas dentro do modelo, onde você pode executar qualquer um deles independentemente com uma única alteração no nome do arquivo de configuração.
- Tutoriais para você começar.
Tutoriais:
Estamos fornecendo uma série de tutoriais para começar
- Tutorial de início: onde fornecemos um guia sobre as etapas principais para começar seu projeto.
- Tutorial do MNIST: Aqui pegamos um modelo NN já implementado no MNIST e o adaptamos à nossa estrutura de modelos.
Contribuição:
- Queremos que esse modelo seja um local central para muitas variações dos conhecidos modelos de aprendizado profundo de Pytorch.
- Estamos recebendo qualquer contribuição da comunidade que tornará isso realidade, por isso pedimos que as pessoas adicionem seus modelos de Pytorch ao modelo.
- Também estamos recebendo quaisquer alterações ou discussões propostas sobre o padrão de design de classe usado neste projeto.
Diagrama de classe de modelo:

Repositórios referenciados:
- Erfnet: um modelo para segmentação semântica , treinada no Pascal VOC
- DCGAN: Redes adversárias generativas convolucionais profundas, executadas no conjunto de dados do Celeba.
- Condensenet: um modelo para classificação de imagem , treinado no conjunto de dados CIFAR10
- DQN: Modelo de rede Q Deep, um exemplo de aprendizado de reforço , testado no CartPole-V0
- RECAE: Redes neurais recorrentes baseadas no autoencoder para detecção de anomalia da série temporal , executada no conjunto de dados ECG5000
Resumo da migração de repositura:
- Começamos pela DCGAN, adicionando suas configurações personalizadas ao arquivo JSON. O DCGAN possui um modelo gerador e discriminador para que não possua um único arquivo de modelo.
- Em seguida, adicionamos condensenet, onde era necessário criar uma pasta de blocos personalizados dentro da pasta Modelos para incluir as definições para camadas personalizadas dentro do modelo.
- Depois disso, adicionamos o projeto DQN, onde todas as classes relacionadas ao ambiente foram adicionadas aos utilitários. Também adicionamos a seleção de ação e a otimização do modelo ao agente de treinamento.
- Erfnet foi o último exemplo a ingressar no modelo; Agente, modelo e utilitários foram adicionados às suas pastas sem conflitos.
Isso é para garantir que nossa estrutura de projeto proposta seja compatível com diferentes problemas e possa lidar com todas as variações relacionadas a qualquer uma delas.
Estrutura de repo:
Depois de adicionar todos os nossos exemplos, o repo tem a seguinte estrutura:
├── agents
| └── dcgan.py
| └── condensenet.py
| └── mnist.py
| └── dqn.py
| └── example.py
| └── base.py
| └── erfnet.py
|
├── configs
| └── dcgan_exp_0.py
| └── condensenet_exp_0.py
| └── mnist_exp_0.py
| └── dqn_exp_0.py
| └── example_exp_0.py
| └── erfnet_exp_0.py
|
├── data
|
├── datasets
| └── cifar10.py
| └── celebA.py
| └── mnist.py
| └── example.py
| └── voc2012.py
|
├── experiments
|
├── graphs
| └── models
| | └── custome_layers
| | | └── denseblock.py
| | | └── layers.py
| | |
| | └── dcgan_discriminator.py
| | └── dcgan_generator.py
| | └── erfnet.py
| | └── erfnet_imagenet.py
| | └── condensenet.py
| | └── mnist.py
| | └── dqn.py
| | └── example.py
| |
| └── losses
| | └── loss.py
|
├── pretrained_weights
|
├── tutorials
|
├── utils
| └── assets
|
├── main.py
└── run.sh
Requisitos:
easydict==1.7
graphviz==0.8.4
gym==0.10.5
imageio==2.3.0
matplotlib==2.2.2
numpy==1.14.5
Pillow==5.2.0
scikit-image==0.14.0
scikit-learn==0.19.1
scipy==1.1.0
tensorboardX==1.2
torch==0.4.0
torchvision==0.2.1
tqdm==4.23.4
Trabalho futuro:
Planejamos adicionar mais exemplos ao nosso modelo para incluir várias categorias de problemas. Em seguida, incluiremos o seguinte:
- MobileNetv2
- Interacção visual-networks-pytorch
- Variational-AutoEncoder-Pytorch
Licença:
Este projeto está licenciado sob licença do MIT - consulte o arquivo de licença para obter detalhes