Я построил нейронную сеть для университетского проекта. Цель состоит в том, чтобы выяснить, могут ли данные датчика (температура, влажность и свет) предсказать, случился ли восход солнца в течение заданного периода времени. Итак, это бинарная классификация. Проблема в том, что сеть не узнает. Точность приближается к 0,8 и не меняется примерно через 5 эпох. То же самое с потерей, которая через несколько эпох составляет около 0,4921. Я пробовал несколько вещей, например, изменить функцию активации или количество скрытых слоев, но ничего не помогло.
Я также создал набор данных с равным количеством точек данных «sunrise = 1» и «sunrise = 0». Точность оказалась ровно 0,5. Поэтому я думаю, что что-то не так с самой настройкой сети.
У вас есть идеи, что может быть не так?
Вот мой код:
def build_network():
input = keras.Input(shape=(4,25), name="input")
hidden = layers.Dense(1000, activation="sigmoid", name="dense1")(input)
hidden = layers.Dense(1000, activation="sigmoid", name="dense2")(hidden)
hidden = layers.Flatten()(hidden)
hidden = layers.Dense(500, activation="sigmoid", name="dense3")(hidden)
hidden = layers.Dense(500, activation="sigmoid", name="dense4")(hidden)
hidden = layers.Dense(10, activation="sigmoid", name="dense5")(hidden)
output = layers.Dense(1, activation="sigmoid", name="output")(hidden)
model = keras.Model(inputs=input, outputs=output, name="sunrise_model")
return model
def train_model():
training_files = r'data/training'
test_files = r'data/test'
print('reding files...')
train_x, train_y = load_data(training_files)
test_x, test_y = load_data(test_files)
print("training network")
# compile model
model = build_network()
model.compile(
loss=keras.losses.BinaryCrossentropy(from_logits=False),
optimizer=keras.optimizers.RMSprop(),
metrics=["accuracy"],
)
# Train / fit
model.fit(train_x, train_y, batch_size=100, epochs=200)
# evaluate
test_scores = model.evaluate(test_x, test_y, verbose=2)
print("Test loss:", test_scores[0])
print("Test accuracy:", test_scores[1])
Вот вывод: потеря: 0,4921 - точность: 0,8225
Потеря теста: 0,4921109309196472, точность теста: 0,8225
А вот пример данных: https://hastebin.com/hazipagija.json