首页 > 解决方案 > 从张量流中的张量中检索值的最快方法是什么?

问题描述

我现在要做的是从 1 X 1 大小的张量中获取一个值,我有近 6000 个。

到目前为止,我已经尝试过使用 eval()、session()。我能想到的最好的方法是将张量更改为 numpy 以从中获取价值。但问题是它非常慢,尤其是在处理大量数据时。有什么快速的方法可以从张量中检索数据?

只是为了获取更多信息,这是我尝试实现的代码的一部分。

cross_IF = []
count = 0
for i in range(len(test_IF)):
  if (count % 100 == 0):
    print(count)
  count += 1
  c = keras.losses.categorical_crossentropy(test_IF[i], prediction_IF[i])
  element = keras.backend.eval(tf.reduce_sum(c))
  cross_IF.append(element)

cross_IF 是我将用于堆叠来自张量“tf.reduce_sum(c)”的值的列表。test_IF 和 prediction_IF 是测试值和预测值。

标签: pythonnumpytensorflowtensor

解决方案


为了社区的利益,在答案部分提供解决方案。

问题是 usingcategorical_crossentropy导致tensor,而不是numpy.

转换categorical_crossentropynumpy格式然后将其附加到 numpy 列表中需要更多时间。

相反,将tensor所有数据连接为一种形式cross entropies,然后numpy最后将其转换为更快。


推荐阅读