#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, поскольку это зависит от множества факторов и в основном от используемых вами данных. Я предлагаю вам обратиться к этому блогу, который может помочь вам с производительностью модели.