我现在要做的是从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是测试值和预测值。
答案 0 :(得分:0)
为社区的利益在“答案”部分提供解决方案。
问题是使用categorical_crossentropy
会导致tensor
,而不是numpy
。
将categorical_crossentropy
转换为numpy
格式,然后将其附加到numpy列表中需要花费更多时间。
相反,将所有tensor
的数据连接为cross entropies
形式,然后在端处将其转换为numpy
可以更快。