Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Finetuning loader requires pretraining reconstruction targets (uv_face_points/uv_edge_points) that the CE loss never uses

Abierto Apto para principiantes
#7 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
python

Línea de trabajo

Comienza en datasets/finetuning_dataset.py siguiendo load_face y load_one_sample, y luego compara sus comprobaciones con los objetivos de classification.py y segmentation.py. Confirma que los registros de clasificación y segmentación sin objetivos de reconstrucción se cargan correctamente, mientras que los objetivos siguen comprobándose cuando un objetivo los utiliza; prueba tanto casos de claves faltantes como casos de formas no válidas para verificar el comportamiento.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Summary

The finetuning data loader hard-requires the pretraining reconstruction targets
(uv_face_points and uv_edge_points) for every sample, including classification
and segmentation runs, even though the downstream cross-entropy loss never reads
them. This makes preparing a new labeled downstream dataset harder than it needs to
be: you must run the pretraining target-sampling step to attach reconstruction
targets to data that will only ever be used for a class/segmentation head.

Where

datasets/finetuning_dataset.py:

  • load_face lists uv_face_points in required_keys and raises KeyError if it
    is absent.
  • load_one_sample additionally asserts the shapes:
    • face["uv_face_points"].shape == (num_faces, 3, 3, 3)
    • topo["uv_edge_points"].shape == (num_edges, 3, 3)
      and raises ValueError otherwise.

The finetune objectives in classification.py and segmentation.py compute
F.cross_entropy(logits, labels) and never consume uv_face_points or
uv_edge_points.

Why it matters

When bringing a new labeled dataset to the finetune loader (per-face labels for
segmentation, or a class label per solid), the face and topo files produced by the
tokenizer / topology step do not carry uv_face_points / uv_edge_points; those
are attached by the pretraining target-sampling stage. As a result the loader
rejects otherwise-complete finetune records with a KeyError/ValueError for a
target the task does not use. In practice this forces users to graft or recompute
reconstruction targets purely to satisfy a validation check.

Suggestion

Gate the uv_face_points / uv_edge_points requirement on the task. For
classification and segmentation, treat them as optional (skip the key check and the
shape assertions when absent), and require them only for objectives that actually
use them. A minimal version is to move those two keys out of the unconditional
required_keys set and behind an if "uv_face_points" in labels: shape check.

Happy to send a small PR if that direction is agreeable.

Lenguaje dominante
Python
Estrellas
14
Forks
3
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de thuml/Brep2Shape

Todos los issues de thuml/Brep2Shape

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.