Python lee todos los archivos en el archivo del conjunto de datos y baraja la división para generar archivos txt de prueba de entrenamiento (genera train.txt, test.txt, el orden es aleatorio, la proporción predeterminada es 8: 2)

Porque cada vez que leo un conjunto de datos, tengo que escribir código de carga, lo cual es una pérdida de tiempo, y soy vago. Por lo tanto, escribí una pequeña herramienta de Python, operación de un clic, leí todos los archivos debajo del archivo de conjunto de datos y mezclé la división para generar archivos txt de prueba de entrenamiento (generar train.txt, test.txt, el orden es aleatorio, el predeterminado proporción es 8: 2), muy conveniente.

Antes de ejecutar el script, debe organizar las carpetas en esta forma:
root = "C: \ Users \ hq \ Desktop \ HoldingObject \ pokemon" (recuerde cambiar a su propia ruta raíz) El
árbol de ruta es el siguiente (el número de carpetas e imágenes es ilimitado
): -pokemon
- 0
(aquí la

)etiqueta con el ---- 1, .jpg, 2.jpg, 3.jpg,. . . (El nombre aquí no importa y no afecta)
——1 (La carpeta se denomina etiqueta aquí)
———— 1, .jpg, 2.jpg, 3.jpg ,. . . (El nombre aquí no importa y no afecta)
——2 (La carpeta se denomina etiqueta aquí)
———— 1, .jpg, 2.jpg, 3.jpg ,. . . (El nombre aquí no importa y no afecta) **

La carpeta del autor es como se muestra en la siguiente figura:
Inserte la descripción de la imagen aquí

import os
import numpy as np

root = r"C:\Users\hq\Desktop\HoldingObject\pokemon"

#构建所有文件名的列表,dir为label
filename = []
#label = []
dirs = os.listdir(root)
for dir in dirs:
    dir_path = root + '\\' + dir
    names = os.listdir(dir_path)
    for n in names:
        filename.append(dir_path + '\\' + n + '\t' + dir)

#打乱文件名列表
np.random.shuffle(filename)
#划分训练集、测试集,默认比例4:1
train = filename[:int(len(filename)*0.8)]
test = filename[int(len(filename)*0.8):]

#分别写入train.txt, test.txt	
with open('train.txt', 'w') as f1, open('test.txt', 'w') as f2:
    for i in train:
        f1.write(i + '\n')
    for j in test:
        f2.write(j + '\n')

print('成功!')

El archivo generado se muestra a continuación:

Inserte la descripción de la imagen aquí
train.txt
Inserte la descripción de la imagen aquí
test.txt
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44414948/article/details/110205546
Recomendado
Clasificación