从张量流中的张量中检索值的最快方法是什么?
What's the fastest way to retrieve a value from a tensor in tensorflow?
我现在要做的是从 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是测试值和预测值。
为了社区的利益在答案部分提供解决方案。
问题是使用 categorical_crossentropy
导致 tensor
,而不是 numpy
。
将 categorical_crossentropy
转换为 numpy
格式,然后将其附加到 numpy 列表中需要更多时间。
相反,将所有 cross entropies
数据串联为 tensor
形式,然后在 端 将其转换为 numpy
让它更快。
我现在要做的是从 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是测试值和预测值。
为了社区的利益在答案部分提供解决方案。
问题是使用 categorical_crossentropy
导致 tensor
,而不是 numpy
。
将 categorical_crossentropy
转换为 numpy
格式,然后将其附加到 numpy 列表中需要更多时间。
相反,将所有 cross entropies
数据串联为 tensor
形式,然后在 端 将其转换为 numpy
让它更快。