我在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))#
它运行良好,与上一个模型中的变化相同的模型对回归问题运行良好我的问题是如何在多任务学习神经网络中集成这两个任务,该网络接受一个输入并输出两个任务我搜索了很多,但没有找到我想要的解决方案注意:我使用CSV文件格式的数据
如有任何帮助,将不胜感激
这是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个密集层,一个回归和另一个分类(我假设是二元分类器(
我还对回归和分类应用了不同的损失。你也可以用不同的方式来平衡