Galerie de cartes mentales dossier de données et dossier de modèles
Il s'agit d'une carte mentale sur le dossier de données et le dossier modèle. Le dossier de données et le dossier modèle sont respectivement responsables du stockage des données et des fichiers liés au modèle dans le projet et constituent une partie importante de la gestion et de l'exploitation du projet.
Modifié à 2024-02-08 15:42:24Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
thème central
dossier de données
lionceau
Diviser
Test.csv
ensemble d'essai
Train.csv
Ensemble d'entraînement
Val.csv
Ensemble de validation
Miniimagenet
Diviser
Get_unlabel.py
Définir la liste des catégories d'images
Extraire les données de trois fichiers CSV (train.csv, val.csv et test.csv) liés à l'ensemble de données Mini-ImageNet, en rassemblant les noms de fichiers et les étiquettes de catégorie dans un dictionnaire (mini_info) avec les étiquettes de catégorie triées dans l'ordre
Lisez les données de trois fichiers CSV dans le répertoire tiersimagenet/split et organisez les noms de fichiers et les étiquettes de catégorie dans un autre dictionnaire (tiered_info).
Les catégories qui apparaissent dans la tiered_class_list mais pas dans la mini_class_list sont identifiées et ces catégories sans étiquette sont stockées dans la liste sans étiquette. Ensuite, imprimez le nombre de catégories sans étiquette et leur contenu
Écrivez des informations non étiquetées dans un fichier CSV pour former un fichier unlabel.csv
ensemble de données d'origine
train.csv
val.csv
test.csv
Ensemble de données généré
supprimer l'étiquette.csv
Données de test et de validation supplémentaires
Aux_test.csv
Aux_val.csv
Tieredimagenet
Diviser
Get_spilt.py
Parcourez différentes parties de l'ensemble de données (train, val, test), générez les fichiers CSV correspondants et écrivez le chemin et l'étiquette du fichier dans le fichier CSV pour les tâches ultérieures de traitement des données et de formation du modèle.
Ensemble de données généré
train.csv
val.csv
test.csv
dossier modèle
Chargeur de données
Cub.py
Une classe d'ensemble de données PyTorch CUB pour charger l'ensemble de données CUB (Caltech-UCSD Birds-200-2011).
Définit des constantes telles que le chemin de l'image de l'ensemble de données, le chemin de segmentation et le chemin du cache.
Fonction de prétraitement des données get_transforms :
Générez les transformations requises pour la transformation des données en fonction des paramètres d'entrée, notamment le recadrage aléatoire, le retournement horizontal aléatoire, la perturbation des couleurs et la normalisation.
Définissez différentes normalisations de données en fonction des différents types de backbone pour vous adapter aux différents besoins de formation du modèle.
Classe d'ensemble de données CUB :
Hérite de la classe Dataset de PyTorch et est utilisé pour charger des ensembles de données CUB.
Les opérations suivantes sont effectuées dans la fonction d'initialisation __init__ : analyser le fichier CSV et obtenir des données et des étiquettes.
Comptez le nombre de catégories dans un ensemble de données.
Appelez la méthode get_transforms pour obtenir les transformations requises pour la transformation des données.
La méthode parse_csv est utilisée pour analyser les fichiers CSV et obtenir des données et des informations sur les étiquettes.
La méthode __len__ renvoie la longueur de l'ensemble de données.
La méthode __getitem__ est utilisée pour obtenir l'échantillon à l'index spécifié, ce qui inclut : essayer d'utiliser la bibliothèque jpeg4py pour décoder l'image JPEG, et si cela échoue, utiliser la bibliothèque PIL pour ouvrir l'image.
Appliquez la transformation des données (prétraitement) et renvoyez les images et les étiquettes.
Mini_imagenet.py
Créez une classe d'ensemble de données PyTorch (classe MiniImageNet) pour travailler avec l'ensemble de données MiniImageNet. Cette classe d'ensemble de données est utilisée pour charger des données d'image et fournir des opérations d'amélioration et de prétraitement de données correspondantes pour la formation de modèles de réseaux neuronaux.
Fonction d'amélioration des données get_transforms : renvoie la séquence de transformation de deux méthodes de transformation d'image (améliorée et non améliorée) en fonction de la taille d'image spécifiée, de la structure du réseau neuronal (épine dorsale) et de l'intensité de l'amélioration des données.
Classe d'ensemble de données MiniImageNet MiniImageNet : inclut des fonctions telles que le chargement de données, l'analyse du chemin d'image et l'amélioration des données.
Méthode __init__ : initialisez la classe d'ensemble de données, acceptez le nom de la division de l'ensemble de données et certains paramètres, et appelez la fonction get_transforms pour obtenir la méthode de transformation de données.
Méthode parse_csv : analyse les chemins d’image et les étiquettes des fichiers CSV pour créer des ensembles de données.
Méthode __len__ : renvoie la longueur de l'ensemble de données (nombre d'images).
Méthode __getitem__ : récupérez l'élément de données en fonction de l'index, essayez d'utiliser la bibliothèque jpeg4py pour décoder l'image au format JPEG, en cas d'échec, utilisez la bibliothèque PIL.
Échantillonneurs.py
Pour les tâches de méta-apprentissage et de classification, le code implémente différentes classes d'échantillonneurs pour fournir des méthodes flexibles d'échantillonnage et de chargement de données pour les tâches de méta-apprentissage et un cadre flexible d'échantillonnage et de chargement de données pour les tâches de méta-apprentissage. Cela facilite la tâche des chercheurs et des développeurs. mettre en œuvre et tester différents algorithmes de méta-apprentissage.
CatégoriesClasse Sampler :
Lors de l'initialisation, transmettez l'étiquette (label), le nombre d'échantillons dans chaque lot (n_batch), le nombre d'échantillons dans chaque catégorie (n_cls) et le nombre d'échantillons échantillonnés dans chaque lot de chaque catégorie (n_per).
Générez chaque lot de données via la méthode __iter__, sélectionnez au hasard n_per échantillons pour chaque catégorie et renvoyez un tenseur unidimensionnel aplati.
CatégoriesViewSampler classe :
Lors de l'initialisation, transmettez l'étiquette (label), le nombre d'échantillons dans chaque lot (n_batch), le nombre d'échantillons dans chaque catégorie (n_cls), le nombre d'échantillons dans chaque catégorie pour l'ensemble de support (n_shot), et le nombre d'échantillons dans chaque catégorie pour la requête. Le nombre d'échantillons dans l'ensemble (n_query) et le nombre de vues dans chaque tâche (n_view).
La méthode __iter__ génère chaque lot de données pour chaque catégorie, des échantillons n_shot n_query sont sélectionnés au hasard, parmi lesquels le premier n_shot est utilisé pour l'ensemble de support et le dernier n_query est utilisé pour l'ensemble de requêtes. Les ensembles de supports sont étiquetés avec des informations supplémentaires indiquant le numéro de vue.
Classe RandomSampler :
Lors de l'initialisation, transmettez l'étiquette (label), le nombre d'échantillons dans chaque lot (n_batch) et le nombre d'étiquettes par échantillon dans chaque lot (n_per).
La méthode __iter__ génère des données pour chaque lot et n_per échantillons sont sélectionnés au hasard pour chaque lot.
Classe ClassSampler :
Lors de l'initialisation, transmettre le label (label) et le nombre d'échantillons par lot (n_per) pour chaque catégorie.
La méthode __iter__ génère des données pour chaque lot et pour chaque catégorie, n_per échantillons sont sélectionnés au hasard.
Classe InSetSampler :
Utilisé pour ResNet Fine-Tune, le nombre d'échantillons dans chaque lot (n_batch), le nombre d'étiquettes pour chaque échantillon dans chaque lot (n_sbatch) et le pool d'échantillons (pool) sont transmis lors de l'initialisation.
La méthode __iter__ génère des données pour chaque lot, et chaque lot sélectionne de manière aléatoire n_sbatch échantillons dans le pool d'échantillons.
Tiered_imagenet_raw.py
Principalement utilisé pour charger l'ensemble de données Tiered ImageNet, fournissant des fonctions de prétraitement des données, de chargement d'images et de traitement d'étiquettes.
Des modèles
_init_.py
Si un répertoire contient un fichier nommé __init__.py, Python traitera le répertoire comme un package, vous permettant d'utiliser l'instruction import pour importer des modules ou des sous-packages dans le répertoire.
Indique à Python d'importer également la classe FewShotModel dans le module model.models.base lors de l'importation du package actuel.
Maml.py
Le cadre MAML (Model-Agnostic Meta-Learning) implémenté à l'aide de PyTorch est utilisé pour le méta-apprentissage, implémente des modèles MAML et fournit différentes méthodes d'évaluation, notamment l'évaluation par permutation et l'évaluation intégrée. Il s'agit d'un cadre général de méta-apprentissage, applicable à une variété de tâches.
Section 1 : Importation de bibliothèques et de modules
Paragraphe 2 : fonction update_params
Cette fonction accepte une valeur de perte, un dictionnaire de paramètres (params) et met à jour les paramètres à l'aide de la descente de gradient. La fonction renvoie les paramètres mis à jour.
Paragraphe 3 : fonction inner_train_step
La fonction inner_train_step représente l'étape de formation interne dans le méta-apprentissage. Il accepte un modèle, des données de support et certains paramètres, puis effectue une formation interne et renvoie les paramètres mis à jour après la formation interne.
Paragraphe 4 : Classes MAML
Effectue une passe avant de MAML, en utilisant des paramètres formés en interne. Il existe d'autres méthodes d'évaluation telles que forward_eval, forward_eval_perm et forward_eval_ensemble.
Paragraphe 5 : Mise en œuvre du modèle
Sélectionnez ResNetMAML comme réseau fédérateur en fonction de la catégorie de réseau fédérateur donnée et initialisez les paramètres du modèle. La mise à jour des paramètres est effectuée dans inner_train_step, en utilisant la fonction de perte d'entropie croisée pour la formation interne. Les résultats de la prédiction sont mis à l'échelle en utilisant le paramètre de température.
MAMLUnicorn.py
Implémentation d'un algorithme de méta-apprentissage, en particulier une variante basée sur le méta-apprentissage indépendant du modèle (MAML), pour les tâches d'apprentissage Few-Shot
Réseaux
Convnet.py
Définit un modèle de base de réseau neuronal convolutif (ConvNet)
Sa fonction principale est de traiter l'image d'entrée via des opérations de convolution et de pooling, et enfin de générer un tenseur de fonctionnalités avec des canaux z_dim, qui peut être utilisé pour diverses tâches, telles que la classification d'images, l'extraction de fonctionnalités, etc.
Convnet_maml.py
Un modèle basé sur le méta-apprentissage est implémenté, en particulier l'algorithme MAML (Model-Agnostic Meta-Learning) pour le méta-apprentissage sur de petits échantillons de tâches d'apprentissage.
Dropblock.py
Définit un module PyTorch appelé DropBlock qui implémente une technique de régularisation appelée DropBlock
Res12.py
Réseau neuronal conçu sur la base de l'architecture ResNet, principalement utilisé pour les tâches d'apprentissage Few-Shot
L'ensemble du réseau adopte la structure de ResNet, mais la conception prend en compte les caractéristiques de la tâche Few-Shot Learning, notamment l'introduction de DropBlock et l'ajustement dynamique de certains paramètres. Parallèlement, le code contient également des opérations d'initialisation des paramètres du modèle.
Res12_maml.py
Un réseau de neurones basé sur l'architecture ResNet, principalement utilisé pour l'adaptabilité des modèles (Model-Agnostic Meta-Learning, MAML) et le partage des paramètres du modèle en méta-apprentissage (Meta-Learning).