Обучающие кераты с несколькими заданиями (объединение двух заданий в одно задание) - PullRequest
0 голосов

я работаю с керасом, у меня есть две проблемы, которые я хочу решить (одна классификация и другая регрессия) с одним и тем же входным сигналом и разным в выходных данных, для классификации будут использоваться все данные, а также для регрессии, разница только в выходном слое i создайте отдельную модель для каждой из них в качестве следующего примера для классификации

model = Sequential()
model.add(Dense(300, activation='relu', input_dim=377))
model.add(Dense(256, activation='relu'))
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(56, activation='relu'))
model.add(Dense(16, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(1))# 

, и она работает хорошо; та же модель с изменением в последней модели хорошо работает для задачи регрессии. Мой вопрос заключается в том, как объединить две задачи в нейронная сеть с многозадачным обучением, которая берет один вход и выводит две задачи, которые я ищу много, но не достигла решения, которое я хочу отметить: я работаю с данными в формате файла CSV

любая помощь будет оценил

1 Ответ

0 голосов
/ 03 мая 2020

это пример с функционалом keras api

inp = Input((377,))
x = Dense(300, activation='relu')(inp)
x = Dense(256, activation='relu')(x)
x = Dense(128, activation='relu')(x)
x = Dropout(0.1)(x)
x = Dense(56, activation='relu')(x)
x = Dense(16, activation='relu')(x)
x = Dropout(0.1)(x)

out_reg = Dense(1, name='reg')(x)
out_class = Dense(1, activation='sigmoid', name='class')(x) # I suppose bivariate classification problem

model = Model(inp, [out_reg, out_class])

model.compile('adam', loss={'reg':'mse', 'class':'binary_crossentropy'}, 
              loss_weights={'reg':0.5, 'class':0.5})

Я использовал структуру, о которой вы сообщили, для классификации и регрессии, единственное различие заключается в выходе: 2 плотных слоя, одна регрессия и другая классификация (Я полагаю, двоичный классификатор)

Я применил также другую потерю для регрессии и классификации. Вы также можете сбалансировать их по-другому

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...