我有以下代码:
def map_per_image(class_index_array):
def index_to_label_f(index):
index_to_label = {0:label_Vehicles, 1:label_Roads, 2:label_None}
#print(index.eval())
label = index_to_label[index]
return label
translated = tf.map_fn(index_to_label_f, class_index_array)
return translated
在Tensorflow环境之外,使用普通地图就可以了。但是参数class_index_array
的值是一个张量,因此它的元素index
也是张量。
我需要以某种方式将张量index
转换为int值,以便查找字典。我尝试了index.eval()
,但收到了错误:
ValueError: Operation 'map_8/while/map/while/TensorArrayReadV3' has been marked as not fetchable.
如果没有这样的转换,由于使用张量值来查找字典,我会得到不同的错误:
KeyError: <tf.Tensor 'map_9/while/map/while/TensorArrayReadV3:0' shape=() dtype=int32>
我想知道在Tensorflow执行(会话)环境中表达上述实现逻辑的正确方法是什么?