[Perros y gatos] para leer el conjunto de datos conjunto de datos segunda forma

Descargar el conjunto de datos:

Link: https: //pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw
código de extracción: 2xq4

Crear un conjunto de datos: https://www.cnblogs.com/xiximayou/p/12398285.html

La lectura de los conjuntos de datos: https://www.cnblogs.com/xiximayou/p/12422827.html

Formación: https://www.cnblogs.com/xiximayou/p/12448300.html

Guardar el modelo y la formación continua: https://www.cnblogs.com/xiximayou/p/12452624.html

Cargar un modelo guardado y la prueba: https://www.cnblogs.com/xiximayou/p/12459499.html

Formación y validación del conjunto de la división de verificación borde lateral: https://www.cnblogs.com/xiximayou/p/12464738.html

Uso de estrategias y la tasa de atenuación de la prueba de entrenamiento borde lateral de aprendizaje: https://www.cnblogs.com/xiximayou/p/12468010.html

uso Tensorboard entrenamiento visual y el proceso de pruebas: https://www.cnblogs.com/xiximayou/p/12482573.html

Recibir los parámetros de línea de comandos: https://www.cnblogs.com/xiximayou/p/12488662.html

uso top5 TOP1 y precisión para medir el modelo: https://www.cnblogs.com/xiximayou/p/12489069.html

El uso de pre-formados modelo resnet18: https://www.cnblogs.com/xiximayou/p/12504579.html

El cálculo de la varianza media y la del conjunto de datos: https://www.cnblogs.com/xiximayou/p/12507149.html

La relación entre la Época, el BatchSize, el PASO: https://www.cnblogs.com/xiximayou/p/12405485.html

 

pytorch leer los conjuntos de datos de dos maneras. En esta sección se describe una segunda forma de realización.

La estructura de directorio se almacena en el conjunto de datos:

En primer lugar, necesitamos una imagen de la trayectoria y la etiqueta almacenada para el archivo txt, crear un nuevo archivo en las utilidades Img_to_txt.py

importación OS
 de pegote importación pegote 
raíz = " / content / unidad / Mi unidad / cuadernos Colab / datos / dogcat / " 
train_path = raíz + " tren " 
val_path = raíz + " val " 
test_path = raíz + " prueba " 
def img_to_txt (ruta): 
  tmp = path.strip split () (. " / " ) [- 1 ] 
  nombre de archivo = tmp + " .txt " 
  con abierto (nombre de archivo, ' un ' ,encoding =" UTF-8 " ) como fp: 
    i = 0
     para f en ordenados (os.listdir (ruta de acceso)):
       para la imagen en glob (ruta + " / " + str (f) + " /*.jpg " ): 
        fp. escritura (imagen + "  " + str (i) + " \ n " ) 
      i + = 1 
img_to_txt (train_path) 
#img_to_txt (val_path) #img_to_txt (test_path)

En el que el os.listdir () para obtener una lista de archivos en la ruta de la carpeta, [ 'gato', 'perro']. glob () para obtener todos los archivos correspondientes en el directorio. Para poder categoría digitalmente marca el fin, necesitamos ordenar la lista de directorios. Vamos a continuación, gato marcado como 0, 1 perro etiquetado. Y el camino de las etiquetas y que corresponde a añadir a la txt.

Después de ejecutar Se obtuvieron resultados similares:

Entonces queremos lograr su clase de conjunto de datos definido, necesidad de heredar la clase de conjunto de datos, y anular __getitem __ () y __len __ () método: Crear un nuevo archivo en las utilidades read_from_txt.py

de torch.utils.data importación de conjunto de datos
 de PIL importación Imagen 

clase Dogcat (conjunto de datos):
   def  __init__ (auto, txt_path, transformar = Ninguno, target_transform = None): 
    super (Dogcat, sí). __init__ () 
    self.txt_path = txt_path 
    self.transform = transformar 
    self.target_transform = target_transform 
    fp = abierto (txt_path, ' r ' ) 
    imgs = []
     para línea en fp: 
      línea= Line.strip (). Split ()
       # de impresión (línea) 
      img = línea [0] + "  " + línea [1] + "  " + línea [2 ]
       # [ '/ content / unidad / Mi', 'Drive / colab', 'cuadernos / data / dogcat / tren / cat / cat.9997.jpg', '0'] 
      # imgs.append ((línea [0], int (línea [-1]))) 
      imgs.append ((img, int (línea [-1 ]))) 
      self.imgs = imgs
   def  __getitem__ (self, índice): 
    imagen, etiqueta = self.imgs [índice] 
    imagen = Image.open (imagen) .convert ( ' RGB ' )
     si uno mismo.transformar es  no Ninguno: 
      imagen = self.transform (imagen)
     de retorno de imagen, etiqueta
   def  __len__ (self):
     retorno len (self.imgs)

Puesto que tenemos una imagen de la etiqueta del espacio en el camino, el camino tomado nota y cuándo.

Después de la rdata.py

de torch.utils.data importación DataLoader
 importación torchvision
 importación torchvision.transforms como transformadas de
 importación antorcha
 de utils importar read_from_txt 

def load_dataset_from_dataset (batch_size):
     # 预处理
  de impresión (batch_size) 
  train_transform = transforms.Compose ([transforms.RandomResizedCrop (224 ), las transformadas .ToTensor ()]) 
  val_transform = transforms.Compose ([transforms.Resize ((224224 )), transforms.ToTensor ()]) 
  test_transform = transforms.Compose ([transforms.Resize ((224224)), transforms.ToTensor ()]) 
  de la raíz = " / content / unidad / Mi unidad / colab cuadernos / utils / " 
  train_loader = DataLoader (read_from_txt.Dogcat (raíz + " train.txt " , train_transform), batch_size = batch_size, reproducción aleatoria = True, num_workers = 6 ) 
  val_loader = DataLoader (read_from_txt.Dogcat (raíz + " val.txt " , val_transform), batch_size = batch_size, barajar = True, num_workers = 6 ) 
  test_loader = DataLoader read_from_txt.Dogcat (raíz + ( " test.txt " , test_transform), batch_size = batch_size, barajar = True, num_workers = 6 )
   de retorno train_loader, val_loader, test_loader

Entonces main.py están listos para usar.

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

Compruebe el error bajo train.txt encuentran los nombres de archivos duplicados, estos archivos duplicados que desea eliminar.

Última ejecución:

Este último ser dada a:

La dirección de la imagen no se han leído a DataLoader se unió en el? Hilo de seguridad? Sin embargo, para encontrar una solución. Sin embargo, el proceso de creación de un conjunto de datos en su conjunto es uno de esos.

 

Supongo que te gusta

Origin www.cnblogs.com/xiximayou/p/12516735.html
Recomendado
Clasificación