首页 > 解决方案 > 获取tensorflow迭代张量中的对象列表

问题描述

所以我想在张量流中返回一个对象列表,当我尝试时,列表对象是使用大小为 [n,k,d] 的张量 X 构造的:

listofobject = [Myobject(x) for x in X]

它返回:

OperatorNotAllowedInGraphError: iterating over `tf.Tensor` is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature.

我也试过:

listofobject = tf.map_fn(lambda x:Myobject(x), X)

并得到这个错误:

 ValueError: Tried to convert 'y' to a tensor and failed. Error: None values not supported.

当我检查对象的构造函数内部时,有时我的 x 形状是 [None, d] 不确定我在这里缺少什么。我的问题是,在张量流中返回这样的对象列表的正确方法是什么?

标签: pythontensorflowobjecttensorflow2.0

解决方案


您能否详细说明您为什么需要它。

两种方法:

tf.ragged.constant([Myobject(x) for x in X])

2:

tf.map_fn(Myobject,elems=X,fn_ouput_signature=tf.RaggedTensorSpec(dtype=tf.float32orWHATEVER))

因为问题是衣衫褴褛,或者这些值是占位符,请您注意一下。


推荐阅读