Le modèle de projet Pytorch est parrainé par l'outil suivant; Veuillez aider à nous soutenir en jetant un coup d'œil et en vous inscrivant à un essai gratuit
Modèle de projet Pytorch
Implémentez vos projets Pytorch de la manière intelligente.
Un modèle évolutif pour les projets Pytorch, avec des exemples de segmentation d'image, de classification des objets, de Gans et d'apprentissage par renforcement.
Compte tenu de la nature des projets d'apprentissage en profondeur, nous n'avons pas la chance de réfléchir beaucoup à la structure du projet ou à la modularité du code. Après avoir travaillé avec différents projets d'apprentissage en profondeur et fait face à des problèmes avec l'organisation des fichiers et la répétition du code, nous avons proposé une structure de projet modulaire pour accueillir tout projet Pytorch. Nous voulions également fournir une base pour différents modèles Pytorch pour que la communauté puisse s'appuyer.
Ceci est un travail conjoint entre Hager Rady et Mo'Men Abdelrazek
Table des matières:
- Modèle de projet Pytorch
- Pourquoi ce modèle?
- Tutoriels
- Contribution
- Schéma de cours de modèle
- REPOS référencés
- Résumé des migrations de repose
- Structure de réapprovisionnement du modèle
- Exigences
- Travail futur
- Licence
Pourquoi ce modèle?
Nous proposons une base de référence pour que tout projet Pytorch vous donne un démarrage rapide, où vous aurez le temps de vous concentrer sur la mise en œuvre de votre modèle et nous gérerons le reste. La nouveauté de cette approche réside dans:
- Fournir une structure de projet évolutive , avec un fichier de modèle pour chacun.
- Présentation de l'utilisation d'un fichier de configuration qui gère tous les hyper paramètres liés à un certain problème.
- Incorporer des exemples de divers problèmes à l'intérieur du modèle, où vous pouvez exécuter l'un d'eux indépendamment avec un seul changement dans le nom du fichier de configuration.
- Tutoriels pour vous aider à démarrer.
Tutoriels:
Nous fournissons une série de tutoriels pour démarrer votre démarrage
- Tutoriel de démarrage: où nous fournissons un guide sur les étapes principales pour commencer votre projet.
- Tutoriel MNIST: Ici, nous prenons un modèle NN déjà implémenté sur MNIST et l'adaptons à notre structure de modèle.
Contribution:
- Nous voulons que ce modèle soit un lieu central pour de nombreuses variations des modèles d'apprentissage en profondeur de Pytorch bien connus.
- Nous accueillons toute contribution de la communauté qui réalisera cela, nous exhortons donc les gens à ajouter leurs modèles de pytorch dans le modèle.
- Nous accueillons également tous les modifications ou discussions proposées sur le modèle de conception de classe utilisé dans ce projet.
Diagramme de classe de modèle:

Repositions référencées:
- Erfnet: un modèle de segmentation sémantique , formé sur Pascal COV
- DCGAN: Réseaux d'adversation génératifs convolutionnels Deep, exécutez sur Celeba DataSet.
- Condensnenet: un modèle de classification d'images , formé sur l'ensemble de données CIFAR10
- DQN: Modèle de réseau Deep Q, un exemple d'apprentissage en renforcement , testé sur Cartpole-V0
- Recae: Autoencoder Autoenccoder basé sur les réseaux de neurones récurrents pour la détection d'anomalies des séries chronologiques , exécuté sur un ensemble de données ECG5000
Résumé de la migration des repos:
- Nous avons commencé par DCGAN, ajoutant ses configurations personnalisées dans le fichier JSON. DCGAN a à la fois un générateur et un modèle de discriminateur, il n'a donc pas de fichier de modèle.
- Ensuite, nous avons ajouté Condensenet, où il était nécessaire de créer un dossier de blocs personnalisés à l'intérieur du dossier des modèles pour inclure les définitions des couches personnalisées dans le modèle.
- Après cela, nous avons ajouté le projet DQN, où toutes les classes liées à l'environnement ont été ajoutées aux Utils. Nous avons également ajouté la sélection d'action et l'optimisation du modèle dans l'agent de formation.
- Erfnet était le dernier exemple pour rejoindre le modèle; L'agent, le modèle et les utils ont été ajoutés à leurs dossiers sans conflits.
Il s'agit de garantir que notre structure de projet proposée est compatible avec différents problèmes et peut gérer toutes les variations liées à l'une d'entre elles.
Structure de repo:
Après avoir ajouté tous nos exemples, le repo a la structure suivante:
├── 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
Exigences:
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
Travaux futurs:
Nous prévoyons d'ajouter plus d'exemples dans notre modèle pour inclure diverses catégories de problèmes. Ensuite, nous allons inclure ce qui suit:
- Mobilenetv2
- visual-interaction-networks-pytorch
- variation-autoencoder-pytorch
Licence:
Ce projet est autorisé sous licence MIT - voir le fichier de licence pour plus de détails