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.

¿No hay atributo ‘RRef’ al cargar archivos .ckpt en una máquina Windows?

Generé archivos ckpt con ModelCheckpoint de Pytorch Lightning (save_last=True) en mi cluster que utiliza Linux.

En el propio cluster puedo cargarlos sin problemas, pero en mi máquina Windows no puedo y obtengo este error:

AttributeError: El módulo ‘torch.distributed.rpc’ no tiene el atributo ‘RRef’

Realmente necesito ayuda, ya que tengo un plazo de entrega en 3 horas. ¿Tiene que haber alguna manera para que mi código sea reproducible?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema aquí está relacionado con la compatibilidad de las distribuciones de PyTorch entre su clúster y su máquina local con Windows. El error sugiere que el módulo torch.distributed.rpc en su máquina con Windows no tiene el atributo RRef que se espera en sus archivos ckpt.

    Una posible solución para este problema es asegurarse de que tanto su clúster como su máquina con Windows estén utilizando la misma versión de PyTorch y PyTorch Lightning. Puede verificar las versiones en su clúster ejecutando el siguiente comando en su terminal:

    python -c "import torch; print(torch.__version__)"
    

    Para PyTorch Lightning, puede verificar la versión ejecutando:

    python -c "import pytorch_lightning as pl; print(pl.__version__)"
    

    Luego, en su máquina con Windows, puede instalar las mismas versiones de PyTorch y PyTorch Lightning usando pip. Por ejemplo, si su clúster está utilizando PyTorch v1.7.1 y PyTorch Lightning v1.1.6, puede instalar las mismas versiones en su máquina con Windows ejecutando:

    pip install torch==1.7.1
    pip install pytorch-lightning==1.1.6
    

    Una vez que tenga las mismas versiones instaladas en ambas máquinas, intente cargar los archivos ckpt nuevamente y vea si el problema persiste. Si todavía tiene problemas, también puede intentar cargar los archivos ckpt utilizando la función torch.load() en lugar de ModelCheckpoint de PyTorch Lightning.

    Por último, para garantizar la reproducibilidad de su código, siempre es una buena práctica incluir las versiones de todas las dependencias en su repositorio de código junto con cualquier archivo de configuración relevante. Esto asegurará que otros puedan reproducir su código exactamente como usted lo pretendía, independientemente de la máquina en la que lo ejecuten.

Comments are closed.