【问题标题】:Keras issue with top k categorical accuracy with 3d tensorsKeras 问题与 3d 张量的前 k 个分类精度
【发布时间】:2019-10-03 22:01:11
【问题描述】:

我在使用 keras 中排名前 k 的分类准确度指标时遇到问题。我正在对基因组数据进行培训,大约有 10,000 个人,每个人都有 4,000 个核苷酸,可以是四个碱基之一,因此它们是一个热编码的。输出类似,但不是四个碱基,而是三个类别。

输入形状 (10000, 4000, 4) 输出形状 (10000, 4000, 3)

我尝试使用前 k 个分类准确度,但我得到: ValueError:形状必须为 2 级,但对于 'metrics/top_k_categorical_accuracy/in_top_k/InTopKV2'(操作:'InTopKV2')为 3 级,输入形状为:[?,?,3], [?,?], []。

显然 keras 不喜欢 3d 张量。我该如何解决这个问题?

【问题讨论】:

  • 为什么投反对票?这真的是一个我不知道如何解决的错误。这个问题是不是太模棱两可了?
  • 我通常包含我使用的代码。在我看来,这不是投反对票的好理由,但通常还是建议这样做。
  • 好的,谢谢您的回复。我对最初的反对票感到非常困惑,但很高兴能得到一些反馈。
  • 不客气。当然,这只是我的猜测,因为我没有投反对票。

标签: python tensorflow machine-learning keras


【解决方案1】:

This 可能会对您有所帮助。

简单地说,top k 分类准确度没有被定义为维度灵活。

您需要转换数据以适应。

import keras.backend as K 
def my_top_k(true, pred, num):
    true = K.reshape(true, (-1, features_num))   
    pred = K.reshape(pred, (-1, features_num))
    return top_k_categorical_accuracy(true, pred, k=num)

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多