Red de conocimiento informático - Problemas con los teléfonos móviles - Entrenamiento de Pytorch interrumpido, continuar entrenando (Trans)

Entrenamiento de Pytorch interrumpido, continuar entrenando (Trans)

El método para guardar el modelo en pytorch es muy simple. Hay dos métodos principales:

En términos generales, los parámetros se pueden guardar usando una declaración:

. donde modelo se refiere es la variable de instancia que define el modelo, como model=vgg16(), ruta es la ruta para guardar los parámetros, como ruta='./model.pth', ruta='./model.tar ', ruta='./model.pkl ', el archivo que guarda los parámetros debe tener una extensión de sufijo.

En particular, si también desea guardar información como el optimizador, la época, etc. utilizada en una capacitación específica, puede usar "..." para guardar esta información.

Para el primer caso anterior, también puedes cargar el modelo con una sola frase:

Para el segundo método de guardar en forma de diccionario, el método de carga es el siguiente:

Tenga en cuenta que el método de cargar solo parámetros carga un modelo consistente con el modelo original y en una instancia del modelo (se supone que se llama modelo). Es decir, antes de usar la declaración de carga anterior, Se ha definido y creado una instancia de una red idéntica al modelo original con model=Net().

Además, si desea guardar parámetros cada época o cada n épocas, puede establecer una ruta diferente, por ejemplo: ruta='./model' str(epoch) '.pth', en De esta manera, los parámetros de diferentes épocas se pueden guardar en diferentes archivos. Lo mismo ocurre con la elección de guardar los parámetros del modelo con la tasa de reconocimiento más alta. Simplemente agregue una declaración de juicio if antes de guardar la declaración del modelo.

El siguiente es un programa de muestra que solo guarda los parámetros más recientes:

Al entrenar el modelo, el programa puede interrumpirse debido a algunos problemas o, con frecuencia, es necesario observar cambios en la situación de entrenamiento para Para cambiar parámetros como la tasa de aprendizaje, debe cargar el modelo guardado antes de la interrupción y continuar entrenando en función de él. La función main() en el ejemplo anterior se puede modificar en consecuencia. La función main() modificada es la siguiente:

Si desea operar el método anterior en la línea de comando, simplemente agregue el parámetro del módulo argpase. , Los métodos relevantes se pueden encontrar en mi blog

Se puede hacer referencia al método del ejemplo anterior.