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.

Error en tiempo de ejecución: Se ha intentado iniciar un nuevo proceso antes de que el proceso actual haya finalizado su fase de arranque.

Desarrollé un código que realiza la modelación de redes neuronales utilizando Pytorch. Mi código funciona muy bien en mi consola de Pycharm, pero no funciona cuando lo ejecuto desde un script. Lo revisé varias veces y no veo ningún problema obvio.

El error completo que obtengo es:

“RuntimeError: Se ha intentado iniciar un nuevo proceso antes de que el proceso actual haya completado su fase de arranque”.

Esto probablemente significa que no estás utilizando “fork” para iniciar tus procesos secundarios y que olvidaste usar el idioma correcto en el módulo principal:

Si name = ‘main’:
freeze_support()

La línea “freeze_support()” se puede omitir si el programa no va a estar congelado para producir un ejecutable.

El error en mi código parece originarse en mi entrenador (y más específicamente en la última línea, es decir, en “val_split = 0.1”):

trainer.fit(
X_tab=X_tab,
target=target,
n_epochs=5,
batch_size=256,
val_split=0.1)

Utilizo Python 3.7 y Windows, si eso ayuda. ¿Podría ser un problema de multiprocesamiento u otra cosa?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando usar el módulo de multiprocessing en tu código. El error que estás viendo está relacionado con el hecho de que estás intentando iniciar un nuevo proceso antes de que el proceso actual haya terminado su fase de arranque.

    Para solucionar esto, necesitas usar el idiomático adecuado en el módulo principal:

    if __name__ == '__main__':
        freeze_support()
        ...
    

    La línea freeze_support() se puede omitir si el programa no va a ser congelado para producir un ejecutable.

Comments are closed.