Mecanismo de carga versión pytorch del modelo preentrenado

Al realizar la detección de objetivos bidimensionales, modificaremos algunas partes de la red neuronal, como agregar CBAM o modificar FPN, etc. Sin embargo, cuando se entrena la red modificada, el proceso de carga de los pesos previos al entrenamiento no reportará un error, e incluso el rendimiento no aumentará sino que disminuirá después de modificar la red. Los puntos de conocimiento contenidos en esto se resumen en este artículo.

El código para importar pesos preentrenados en la red en pytorch es muy simple:

net = model()
net.to(device)
net.load_state_dict(torch.load('params.pth'))

en:

  • torch.load('params.pth') solo carga los parámetros del modelo y no coloca los parámetros en la red . Aquí, los parámetros se cargan en la memoria en forma de pares clave-valor.
  • El método load_state_dict es poner el diccionario de parámetros en la red.

Cuando hayamos hecho modificaciones a la red, solo necesitamos hacer lo siguiente para cargar los pesos preentrenados anteriores en la nueva red. En mmdetection o algún código fuente abierto de Daniel, los pesos previos al entrenamiento aún se pueden cargar después de modificar la red por las siguientes razones

Supongo que te gusta

Origin blog.csdn.net/qq_42308217/article/details/123140481
Recomendado
Clasificación