Python Keras回归模型不能同时拟合两个标签

Python Keras回归模型不能同时拟合两个标签,python,keras,regression,Python,Keras,Regression,我试图用keras做非线性回归。我模拟了90000个数据集,并用2个参数对它们进行了标记。我的目标是在训练后有一个完全连接的神经网络来估计这两个参数。目前,该模型仅适用于一个标签。作为测试,我已经尝试独立地拟合每个标签,这很好,但是当我想同时拟合两个标签时,它失败了(即,模型准确地预测了一个标签,而不是另一个。在某些情况下,第二个标签的偏差为1000倍,而在其他情况下,它只是读取[0]…取决于我的输出层的激活)。1个标签的顺序为1e7,另一个标签在0和1之间变化。我尝试将两个标签规格化为介于0和

我试图用keras做非线性回归。我模拟了90000个数据集,并用2个参数对它们进行了标记。我的目标是在训练后有一个完全连接的神经网络来估计这两个参数。目前,该模型仅适用于一个标签。作为测试,我已经尝试独立地拟合每个标签,这很好,但是当我想同时拟合两个标签时,它失败了(即,模型准确地预测了一个标签,而不是另一个。在某些情况下,第二个标签的偏差为1000倍,而在其他情况下,它只是读取[0]…取决于我的输出层的激活)。1个标签的顺序为1e7,另一个标签在0和1之间变化。我尝试将两个标签规格化为介于0和1之间-这没有帮助。每个输入应该是一个大小为1024的向量,并与2个标签关联

任何关于如何适应多标签数据的帮助或文献建议都将不胜感激。下面是我的模型的代码。多谢各位

# Build The Model
model = Sequential()

# The Input Layer :
    model.add(Dense(1024, kernel_initializer='normal', input_dim=1024, activation='relu'))

# The Hidden Layers :
    model.add(Dense(1024, kernel_initializer='normal',activation='relu'))
    model.add(Dense(1024, kernel_initializer='normal',activation='relu'))
    model.add(Dense(1024, kernel_initializer='normal',activation='relu'))

# The Output Layer :
    model.add(Dense(2, kernel_initializer='normal', activation='relu'))

# Compile the network :
    model.compile(loss='MSE', optimizer='adam', metrics=['MSE'])
    model.summary()

您的最后一层已激活relu。这意味着您的模型无法预测负值。这是设计的吗?是的,两个标签都是正面的。我想我的另一个问题是,我先验地知道1个标签被限制在0和1之间-有没有任何方法可以将其提供给模型。通常,对于回归,在最后一层上不需要任何激活函数。但是,如果您知道标签始终在0和1之间,
sigmoid
可能值得一试。但我从未将其用于回归,因此我无法对此进行限定评论。您必须定义一个自定义损失函数以最小化,MSE期望一个标签和预测值