[Les chiens et les chats] pour lire l'ensemble des données dataset deuxième façon

Télécharger le jeu de données:

Lien: https: //pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw
Code d'extraction: 2xq4

Créer un ensemble de données: https://www.cnblogs.com/xiximayou/p/12398285.html

La lecture des ensembles de données: https://www.cnblogs.com/xiximayou/p/12422827.html

Formation: https://www.cnblogs.com/xiximayou/p/12448300.html

Enregistrez le modèle et la formation continue: https://www.cnblogs.com/xiximayou/p/12452624.html

Charger un modèle enregistré et le test: https://www.cnblogs.com/xiximayou/p/12459499.html

côté division jeu de formation et de validation bord vérification: https://www.cnblogs.com/xiximayou/p/12464738.html

Utiliser des stratégies d' apprentissage et le taux d'atténuation du bord latéral test de formation: https://www.cnblogs.com/xiximayou/p/12468010.html

Tensorboard utilisation de la formation visuelle et le processus de test: https://www.cnblogs.com/xiximayou/p/12482573.html

Recevoir les paramètres de ligne de commande: https://www.cnblogs.com/xiximayou/p/12488662.html

l' utilisation Top1 de top5 et de précision pour mesurer le modèle: https://www.cnblogs.com/xiximayou/p/12489069.html

L'utilisation du modèle resnet18 pré-formation: https://www.cnblogs.com/xiximayou/p/12504579.html

Le calcul de la moyenne et la variance de l'ensemble de données: https://www.cnblogs.com/xiximayou/p/12507149.html

La relation entre l'époque, le BatchSize, STEP: https://www.cnblogs.com/xiximayou/p/12405485.html

 

pytorch lire des ensembles de données de deux manières. La présente section décrit un deuxième mode de réalisation.

La structure du répertoire est stocké dans l'ensemble de données:

Tout d'abord, nous avons besoin d'une image du chemin et étiquette stockée txt fichier, créer un nouveau fichier dans le dossier utils Img_to_txt.py

importation os
 de glob importation glob 
root = " / content / lecteur / Mon disque / notebooks CoLab / data / dogcat / " 
train_path = root + " Train " 
val_path = racine + " val " 
test_path = racine + " Test " 
DEF img_to_txt (chemin): 
  tmp = path.strip () split (. " / " ) [- 1 ] 
  filename = tmp + " txt " 
  avec ouverte (nom de fichier, ' un ' ,encoding =" Utf-8 " ) sous la forme fp: 
    i = 0
     pour f dans trié (os.listdir (path)):
       pour l' image en glob (chemin + " / " + str (f) + " /*.jpg " ): 
        fp. écriture (images + "  " + str (i) + " \ n " ) 
      i + 1 = 
img_to_txt (train_path) 
#img_to_txt (val_path) #img_to_txt (test_path)

Caractérisé en ce que os.listdir () pour obtenir une liste des fichiers dans le chemin du dossier, [ « cat », « chien »]. glob () pour obtenir tous les fichiers correspondants dans le répertoire. Pour être en mesure de catégorie marque numérique dans l'ordre, nous devons trier la liste des répertoires. Nous allons ensuite chat marqué comme 0, chien étiqueté 1. Et l'image chemin correspondant et des étiquettes pour ajouter au txt.

Après avoir exécuté des résultats similaires ont été obtenus:

Ensuite, nous voulons atteindre leur classe ensemble de données défini, doivent hériter classe Dataset, et passer outre __getitem __ () et la méthode __len __ (): Créez un nouveau fichier dans les utils read_from_txt.py

de torch.utils.data importation Dataset
 de PIL importation image 

classe Dogcat (Dataset):
   def  __init__ (self, txt_path, transform = Aucun, target_transform = Aucun): 
    super (Dogcat, auto). __init__ () 
    self.txt_path = txt_path 
    self.transform = transformer 
    self.target_transform = target_transform 
    fp = open (txt_path, ' r ' ) 
    imgs = []
     pour ligne à fp: 
      ligne= Line.strip (). Split ()
       # impression (ligne) 
      img = ligne [0] + "  " + ligne [1] + "  " + ligne [2 ]
       # [ '/ content / lecteur / Mon', « Drive / colab », 'notebooks / data / dogcat / train / chat / cat.9997.jpg', '0'] 
      # imgs.append ((line [0], int (line [-1]))) 
      imgs.append ((img, int (line [-1 ]))) 
      self.imgs = DIM
   def  __getitem__ (self, index): l' 
    image, l' étiquette = self.imgs [index] 
    images = Image.open (image) .convert ( " RGB ' )
     si l' auto.transformerest  pas None: l' 
      image = self.transform (image)
     retour d' image, l' étiquette
   def  __len__ (auto):
     retour len (self.imgs)

Puisque nous avons un espace dans le chemin, le chemin pris note et lorsque l'image de l'étiquette.

Après la rdata.py

de torch.utils.data importation DataLoader
 importation torchvision
 importation torchvision.transforms que transforme
 l' importation torche
 de utils importer read_from_txt 

def load_dataset_from_dataset (batch_size):
     # 预处理
  impression (batch_size) 
  train_transform = transforms.Compose ([transforms.RandomResizedCrop (224 ), transforme .ToTensor ()]) 
  val_transform = transforms.Compose ([transforms.Resize ((224224 )), transforms.ToTensor ()]) 
  test_transform = transforms.Compose ([transforms.Resize ((224224)), transforms.ToTensor ()]) 
  racine = " / / content / lecteur / Mon lecteur / colab ordinateurs portables / utils " 
  train_loader = DataLoader (read_from_txt.Dogcat (racine + " train.txt " , train_transform), batch_size = batch_size, lecture aléatoire = True, num_workers = 6 ) 
  val_loader = DataLoader (read_from_txt.Dogcat (racine + " val.txt " , val_transform), batch_size = batch_size, lecture aléatoire = True, num_workers = 6 ) 
  test_loader = DataLoader (read_from_txt.Dogcat (racine + " test.txt " , test_transform), batch_size = batch_size, lecture aléatoire = True, num_workers = 6 )
   retour train_loader, val_loader, test_loader

Ensuite main.py sont prêts à l'emploi.

 train_loader, val_loader, test_loader = rdata.load_dataset_from_dataset (batch_size)

Vérifiez l'erreur sous train.txt trouver des noms de fichiers en double, ces fichiers en double à supprimer.

Dernière exécution:

Ce dernier étant donné:

L'adresse de l'image n'a pas été lu à DataLoader rejoint dans le? Thread-safe? Cependant, pour trouver une solution. Mais le processus de création d'un ensemble de données dans son ensemble est un exemple.

 

Je suppose que tu aimes

Origine www.cnblogs.com/xiximayou/p/12516735.html
conseillé
Classement