如何在 MultiOutput LSTM Tensorflow 中优先考虑某些输出?

Posted

技术标签:

【中文标题】如何在 MultiOutput LSTM Tensorflow 中优先考虑某些输出?【英文标题】:How to prioritise certain output in MultiOutput LSTM Tensorflow? 【发布时间】:2021-10-28 02:44:55 【问题描述】:

基本上,我正在使用 Tensorflow 创建一个 LSTM 模型,我的输入数据的形状类似于

(10000 个用户,6 个时间步长,20 个特征列)=> (10000,6,20)

该模型使用 LSTM 进行二元分类,其中 20 个输出列的形状为 (10000, 20)。

PS。我不是在做 20 个类的分类,而是在做一个为每个人提供 20 个二进制输出的分类

是否可以优先考虑某些 输出 列,例如赋予某些列比其他列更多的权重或重要性,这样当我们训练模型时,它会比其他列更惩罚对这些更重要输出列的错误预测,或者为这些重要的列创建单独的模型是否更有意义?

【问题讨论】:

【参考方案1】:

很容易在 TensorFlow 中使用类权重来实现此目的。见 model.fit() 的 class_weight 参数:https://www.tensorflow.org/api_docs/python/tf/keras/Model#fit

【讨论】:

以上是关于如何在 MultiOutput LSTM Tensorflow 中优先考虑某些输出?的主要内容,如果未能解决你的问题,请参考以下文章

Python Scikit-learn MultiOutput Regression - 在预测数值时强制执行下限

使用KNN模型进行多输出分类实战(Multioutput Classification)

ValueError: Classification metrics can‘t handle a mix of continuous-multioutput and multiclass targe

如何在keras中堆叠多个lstm?

如何在一系列日期上训练 LSTM?

如何在 Keras 的两个 LSTM 层之间添加注意力层