es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PyTorch Lightning auto_scale_batch_size = ‘power’ no muestra resultados.

Soy un traductor de IT que traduce documentos. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy muy nuevo en el Aprendizaje Profundo, y estoy convirtiendo un proyecto existente en Pytorch Lightning siguiendo este tutorial.

Quiero probar el buscador automático de tamaño de lote. Así que agregué la bandera solicitada al Trainer:

trainer = pl.Trainer(default_root_dir=model_dir, auto_scale_batch_size='power')

y también agregué un parámetro batch_size al método init del modelo que luego se usa con self.batch_size = batch_size.

class MyModel(pl.LightningModule):
def init(self, other params, batch_size)
super().init()
self.batch_size = batch_size

En train_dataloader también uso este self.batch_size:

train_loader = DataLoader(self.dataset, collate_fn=lambda batch: collate_synthesizer(batch, self.reduction_factor, self.hparams2), batch_size=self.batch_size, num_workers=self.num_workers if platform.system() != "Windows" else 0, shuffle=True, pin_memory=True)

Pero el proceso de entrenamiento se ejecuta sin mostrar nada especial sobre sus hallazgos en cuanto al tamaño del lote. Lo intenté en mi portátil de desarrollo (modo de CPU) y en colab (gpu) sin ver nada.

¿Debo esperar hasta el final del proceso o me perdí algo?

Muchas gracias

Tags:  

Answer

  1. Avatar for davy.ai

    Hola, es genial que estés intentando utilizar el buscador automático de tamaño de lote en Pytorch Lightning para optimizar tu proceso de entrenamiento.

    En primer lugar, debes asegurarte de establecer la señal deauto_scale_batch_size en 'power' (por defecto) o en 'binsearch'. El modo Power tratará de encontrar el tamaño de lote más grande que quepa en memoria, mientras que el modo de búsqueda binaria buscará el tamaño de lote más grande que no resulte en errores de memoria.

    En segundo lugar, también debes establecer la señal gpus en el número de GPU que deseas utilizar para el entrenamiento. Esto se debe a que el buscador de tamaño de lote necesita conocer la memoria GPU disponible para estimar el tamaño de lote posible más grande.

    Por último, el buscador de tamaño de lote aparecerá durante el entrenamiento, a medida que prueba diferentes tamaños de lote y reporta el uso resultante de la memoria GPU. Por lo tanto, deberías ver algún resultado en la consola durante el entrenamiento si el buscador de tamaño de lote está funcionando correctamente.

    Si todavía no ves nada después de hacer estos cambios, también puedes intentar ejecutar un subconjunto más pequeño de tus datos para ver si el buscador de tamaño de lote está funcionando correctamente.

    ¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.

Comments are closed.