【问题标题】:Accessing order of data in keras batch predict访问keras批量预测中的数据顺序
【发布时间】:2020-09-28 09:18:50
【问题描述】:

我有一个训练有素的 keras 模型和一个实现 keras.utils.Sequence 的自定义数据集。 现在对于给定的数据集,我想预测模型输出并将其保存为 numpy 数组以供进一步计算。现在我需要验证数据的顺序,以便我知道哪个预测属于哪个输入数据。我想使用尽可能多的内置功能来利用 keras 的 gpu 和并行计算能力。

我的代码:

# load model
model = keras.models.load_model(model_path)

# data is my Dataset, implementing tensorflow.keras.utils.Sequence
print(data.current_epoch_index_order[:10])
predictions = model.predict(data, verbose=2)
print(data.current_epoch_index_order[:10])
# save predictions as npz

我自己在我的 DataSet 中洗牌,current_epoch_index_order 是我在内部保持顺序的方式。在on_epoch_end 中,我再次对批处理索引进行洗牌。 predict 之前和之后的 print 语句正在打印不同的内容,如果在 predict() 计算了预测之后数据被打乱,这是可以的。 我现在可以假设对 current_epoch_index_order 的第一次调用是我正在搜索的 id 顺序,但是我该如何验证呢? 我尝试在序列的数据集实现中插入 print() 语句,但不知何故它们没有被打印出来。

我不可能是唯一一个为此苦苦挣扎的人,对吗?

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    我认为最简单的方法是实现我的 DataSet 的一个版本,该版本从不打乱并且具有我知道的固定顺序。

    【讨论】:

      猜你喜欢
      • 2016-09-22
      • 1970-01-01
      • 2017-09-15
      • 2016-10-21
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多