Diagrama de flujo de realización de ingeniería del código de extracción de entidad general

 

Dividida en 2 partes, la primera parte es una introducción general y la segunda parte es mi propia comprensión del código.

Tabla de contenido

Proceso general de código de tarea de marcado de secuencia

Proceso de implementación

(1) Procesamiento previo de datos: convierta los datos de la etiqueta manual en datos en formato de etiqueta biológica

(2) Construcción del modelo

   (3) Entrenamiento de modelos y ajuste de parámetros

  (4) Guarde el modelo en formato ckpt

  (5) Despliegue del modelo

Interpretación del bloque de código de la tarea de anotación de secuencia

Preprocesamiento de datos

Construcción del modelo


Proceso general de código de tarea de marcado de secuencia

  • Se utiliza principalmente para proyectos de extracción de entidades, pero también para otros proyectos de etiquetado de secuencias, basados ​​en BiLSTM + CRF

Proceso de implementación

 

(1) Procesamiento previo de datos: convierta los datos de la etiqueta manual en datos en formato de etiqueta biológica

(2) Construcción del modelo

   (3) Entrenamiento de modelos y ajuste de parámetros

  • batch_size se usa para establecer el tamaño del lote, la computadora local generalmente se establece en 32
  • hidden_dim se utiliza para establecer la dimensión de la capa oculta
  • lr se usa para establecer la tasa de aprendizaje, generalmente comenzando a elegir 0.001, cuando la precisión del entrenamiento es difícil de mejorar, cargar el modelo óptimo, ajustar la tasa de aprendizaje a 1/10 del anterior y entrenar nuevamente
  • cudnnlstm se usa para elegir si usar cudnnlstm para el entrenamiento
  • El parámetro de abandono se utiliza para fortalecer la capacidad de generalización del modelo. Por lo general, se establece en 0.5. Cuando el modelo se entrena y se convierte de ckpt a pb, es necesario eliminar el abandono


  (4) Guarde el modelo en formato ckpt

  (5) Despliegue del modelo

   Utilice el lenguaje java para escribir código de implementación

Lo anterior se refiere a la introducción anterior a gitlab

Interpretación del bloque de código de la tarea de anotación de secuencia (tome la implementación del tren como ejemplo)

 

La entrada principal del código está en main.py

Seleccione el modo de programa que se ejecutará de acuerdo con los hiperparámetros, el modo es test_ckpt, test_pb, y el hiperparámetro de tren está predeterminado para entrenar

Preprocesamiento de datos

El código dataPreprocess.py hace principalmente 3 cosas

1. Gire bio   

Exportar el contenido de la base de datos de mongo según el resultId

Convierta los datos en un formato de etiqueta de secuencia, y el formato de datos guardados es
ID de etiqueta, ID de resultado de etiqueta, tabla de colección de etiquetas

2, obtener etiqueta

Según los datos de entrenamiento, convertidos a datos con etiquetas antiguas

3. Almacene el contenido por separado

cutFile se divide en tres partes: f1, f2 y f3 según el tamaño de num.

Construcción del modelo

Compruebe el tren en la clase Aplicar en main.py

Función principal de entrenamiento de modelos

Importe un archivo que básicamente contenga todas las palabras y conviértalo en forma de char-id e id-char para la copia de seguridad

Entonces la función load_data regresa

train_data, dev_data, tag2id, id2tag

train_data, dev_data se entrenará, el conjunto de prueba devuelve la palabra índice-palabra carácter índice-marca índice

tag2id, id2tag serializar etiqueta como (E-proj_name: 9)

Luego la función BatchManager, regresa

Redondea para obtener cuántos nudos hay en total

----------- Creo que a partir de aquí, el proceso de preentrenamiento finalmente ha terminado

Luego abre una sesión de tensorflow,

Crea modelos y reutiliza parámetros

Puedes ver todas las capas de construcción en el módulo de modelo.

self.add_placeholders () agregar marcadores de posición 
self.lookup_layer_op () agregar características "palabras" 
self.bilstm_op () agregar lstm bidireccional 
self.loss_layer_op () capa de pérdida crf usar 
self.optimizer_op () definir optimizador 
self.add_summary () agregar resumen

Luego ejecute el modelo por lotes

Luego evalúa carreras y retornos

valor f1

Entonces modelo guardado

Completar

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_45316122/article/details/108533014
Recomendado
Clasificación