У меня большой набор данных, состоящий из поля ввода 18260 с 4 выходами.Я использую Keras и Tensorflow для создания нейронной сети, которая может обнаружить возможный выходной сигнал.
Однако я пробовал много решений, но точность не становится выше 55%, если я не использую функцию активации sigmoid
во всех слоях модели.кроме первого, как показано ниже:
def baseline_model(optimizer= 'adam' , init= 'random_uniform'):
# create model
model = Sequential()
model.add(Dense(40, input_dim=18260, activation="relu", kernel_initializer=init))
model.add(Dense(40, activation="sigmoid", kernel_initializer=init))
model.add(Dense(40, activation="sigmoid", kernel_initializer=init))
model.add(Dense(10, activation="sigmoid", kernel_initializer=init))
model.add(Dense(4, activation="sigmoid", kernel_initializer=init))
model.summary()
# Compile model
model.compile(loss='sparse_categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
return model
Правильно ли использовать sigmoid
для активации во всех слоях?Точность достигает 99,9% при использовании сигмоида, как показано выше.Поэтому мне было интересно, если что-то не так в реализации модели.