【问题标题】:LSTM with varying k-hot encoded vector具有不同 k-hot 编码向量的 LSTM
【发布时间】:2017-04-19 06:21:48
【问题描述】:

来自LSTM with keras的后续问题

在这个例子中,一个热编码向量用于使用 LSTM 执行分类。这个 LSTM 如何用于执行 k-hot 编码,其中k 值不是一个常数值。例如,k 可能是 3k 可能是 5k 在某些样本中可能是其他一些变化的整数?

【问题讨论】:

  • 我的回答对你有用吗?

标签: python machine-learning tensorflow neural-network keras


【解决方案1】:

这是一个多类分类任务。为了解决这个问题,您需要:

  1. 将输出激活设置为 sigmoid:

    model.add(Dense(150, activation='sigmoid'))
    
  2. 将目标设置为指标编码:

    如果你例如4 个类,对于给定的示例集类 0 和 2,您的输出应该是 [1, 0, 1, 0]

  3. 使用以下损失:

    import keras.backend as K
    
    def multiclass_loss(y_true, y_pred):
        EPS = 1e-5
        y_pred = K.clip(y_pred, EPS, 1 - EPS)
        return -K.mean((1 - y_true) * K.log(1 - y_pred) + y_true * K.log(y_pred))
    
    model.compile(optimizer=..., loss=multiclass_loss)
    

【讨论】:

  • 你如何传入这个自定义损失
  • 查看我提供的示例。
  • 知道了!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 2019-10-27
  • 2018-05-05
  • 1970-01-01
  • 2018-02-22
  • 2021-05-01
相关资源
最近更新 更多