+-

我在Keras工作,我有两个问题,我想解决(一个分类和其他回归)与相同的输入和不同的输出分类将使用所有的数据,也为回归,区别只是在输出层创建单一的模型,每一个如下面的例子为分类
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))#
它的工作原理很好,同样的模型与改变在最后一个模型的工作原理很好的回归problemy的问题是如何整合两个任务在多任务学习神经网络,采取一个输入和输出的两个任务si搜索了很多,但我没有达到的解决方案,我想注意:我的工作与数据在CSV文件格式。
不胜感激
0
投票
投票
这是一个使用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})
我用了你报告的结构来做分类和做回归,唯一的区别就是输出。两个密集层,一个是回归,另一个是分类(我想是一个二元分类器)。
我也应用了不同的损失进行回归和分类。你也可以用不同的方式来平衡它们