Модель не обучается на увеличивающемся количестве слоев

#machine-learning #keras

Вопрос:

Я пытаюсь обучить модель CNN на основе текстовых данных. Но когда я пытаюсь увеличить количество слоев (слои >= 2), модель не будет обучаться, а точность и точность проверки остаются постоянными. Я попытался изменить оптимизатор и скорость обучения, но модель ведет себя точно так же. Каков может быть наилучший подход для решения таких проблем? У меня есть около 1000 точек данных для обучения сети. Ниже приведен мой код…

 import tensorflow as tf 
from tensorflow.keras.layers import *
from tensorflow.keras import Sequential, Input, Model

def model_autoenc(layers):
  model = Sequential()
  model.add(Embedding(21, 100, mask_zero = True, input_shape = (50, ) ))
  for i in range(layers):
    model.add(Conv1D(64 * (i   1), 3,2, padding = "same", activation  = "relu", kernel_regularizer= tf.keras.regularizers.l1(1e-4)))
    model.add(Conv1D(64 * (i   2), 3,1, padding = "same", activation  = "relu", kernel_regularizer= tf.keras.regularizers.l1(1e-4)))
    model.add(Conv1D(64 * (i   3), 3,1, padding = "same", activation  = "relu", name = "cam_layer_{}".format(i 1), kernel_regularizer= tf.keras.regularizers.l1(1e-4)))
  model.add(GlobalAveragePooling1D(name = "global_avg_layer"))
  model.add(Dense(1, "sigmoid"))
  model.compile(tf.keras.optimizers.Adam(0.001), "binary_crossentropy", metrics= ["acc"])
  return model


model = model_autoenc(4)

print(model.summary())
model.fit(padded, out, validation_split = 0.1, epochs = 100, batch_size = 132)
 
 Epoch 96/100
13/13 [==============================] - 0s 10ms/step - loss: 0.6983 - acc: 0.5006 - val_loss: 0.6983 - val_acc: 0.5054
Epoch 97/100
13/13 [==============================] - 0s 10ms/step - loss: 0.6983 - acc: 0.5006 - val_loss: 0.6983 - val_acc: 0.5054
Epoch 98/100
13/13 [==============================] - 0s 9ms/step - loss: 0.6983 - acc: 0.5006 - val_loss: 0.6983 - val_acc: 0.5054
Epoch 99/100
13/13 [==============================] - 0s 9ms/step - loss: 0.6983 - acc: 0.5006 - val_loss: 0.6982 - val_acc: 0.5054
Epoch 100/100
13/13 [==============================] - 0s 10ms/step - loss: 0.6983 - acc: 0.5006 - val_loss: 0.6982 - val_acc: 0.5054
 

Комментарии:

1. Не может быть уникального решения для повышения производительности NN, поскольку это зависит от множества факторов и в основном от используемых вами данных. Я предлагаю вам обратиться к этому блогу, который может помочь вам с производительностью модели.