Santiago Ahumada Lozano
EstudianteErik Elyager
EstudianteOrlando Murcia Perdomo
EstudianteDiego Sepúlveda
EstudianteNixon Rolando García Ramírez
EstudianteMassimo Angelini
EstudianteRobinson Raúl Ríos Vicuña
EstudianteJuan Carlos Montilla Sánchez
EstudianteJonathan Cristian Villamea
EstudianteMARIA TERESA PANIAGUA RIVERA
EstudianteNixon Rolando García Ramírez
EstudianteHola creo que en minuto 2:28 hay un corto del video como de 20 segundos o más
En la función solo asegúrate de usar el mismo nombre de variable para inputs
def process_example(example): inputs = feature_extractor(example['image'], return_tensors='pt') inputs['labels'] = example['labels'] return inputs
Para los que les generaba la duda, un stack dentro de pytorch puede entenderse como un array de tensores (Si estoy mal corrijanme) y permite apilar tensores un sobre otro en una dimension determinada, como el parametro no se especifica esta por default 0. Permiten realizar operaciones de manipulación de tensores complejas.
Profesor habló del tema sobre .map vs transform. Pero no sería una ventaja tener los datos con map listos para que luego el siguiente proceso sea más rápido? Entiendo que un .map sobre 100K puede ser lento y que hacer la transformación a medida que se ocupe sea mejor, pero no otorga otra ventaja hacerlo con el map antes? Lo digo para ver si entiendo bien
return_tensors ( stro TensorType , opcional ): si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son: 'tf': Devuelve tf.constantobjetos TensorFlow. 'pt': Devuelve torch.Tensorobjetos PyTorch. 'np': Devuelve np.ndarrayobjetos Numpy
Aqui pongo la documentacion de feature extractor. https://huggingface.co/docs/transformers/main_classes/feature_extractor#transformers.SequenceFeatureExtractor.pad.return_tensors
Tengo una duda: el feature extraction ¿qué fase del transformer es? Es decir, se trata de: a) El escalado de las fotos para el tamaño que admite el modelo b) La creación de los patches que luego se procesarán para generar un embedding c) El embedding en sí de las imágenes.
Por la respuesta de la función, tengo la impresión que es el a), ya que de lo contrario en b) veríamos más dimensiones más allá de un (1,3,200,200) donde 200x200 es la imagen, 3 es el RGB y 1 es la imagen entiendo. Si fuera b) sería algo tipo (9, 3, 200, 200) dividiendo la imagen en 9 patches. En el caso de c) sería un vector; así pues me queda que es a), pero me gustaría asegurar.
Por otro lado, cómo es que el modelo ya viene con un feature extraction? Esto ocurre para todos los modelos publicados en hugging face o es una especie de buenas prácticas que la gente intenta mantener?
Gracias de antemano
Aplique la función de manera un poco mas directa de la siguiente forma.
def preprocess_data(example):
return feature_extractor(example['image'], return_tensors='pt')
prepared_ds = dataset.map(preprocess_data, batched=True, remove_columns=(['image_file_path', 'image']))
Se llega al mismo resultado
prepared_ds['train'][0:2].keys()
dict_keys(['labels', 'pixel_values'])
def process_example(example): inputs = feature_extractor(example["image"], return_tensors="pt") inputs["labels"] = example["labels"] return inputs ```en el último return, debe retornar inputs en plural y no en singular
Si a alguien le sirve me funciono esta sintaxis en una parte del video. Saludos
process_example(example=ds["train"][10])
Gracias
return_tensors ( stro TensorType , opcional ): si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son: 'tf': Devuelve tf.constantobjetos TensorFlow. 'pt': Devuelve torch.Tensorobjetos PyTorch. 'np': Devuelve np.ndarrayobjetos Numpy