Python 基于条件向量将特定输入转发到不同的图形操作

Python 基于条件向量将特定输入转发到不同的图形操作,python,python-3.x,tensorflow,Python,Python 3.x,Tensorflow,我试图在TensorFlow中创建一个计算图,它能够根据指定要使用哪个操作的补充输入向量,将输入数据的不同部分转发到不同的操作 例如,假设您有一个输入张量A,其维度为(3,2,10,10)。我想做的是根据向量c=[1,0,1]将输入数据A转发到特定操作。特别地,第一行A[0]应转发到与向量c中的值1相关联的操作,第二行A[1]应转发到与值0相关联的操作,依此类推 假设每个操作都在一个函数中定义,该函数的参数如下所示: def build_op_1(input, param1, param2, p

我试图在TensorFlow中创建一个计算图,它能够根据指定要使用哪个操作的补充输入向量,将输入数据的不同部分转发到不同的操作

例如,假设您有一个输入张量A,其维度为(3,2,10,10)。我想做的是根据向量c=[1,0,1]将输入数据A转发到特定操作。特别地,第一行A[0]应转发到与向量c中的值1相关联的操作,第二行A[1]应转发到与值0相关联的操作,依此类推

假设每个操作都在一个函数中定义,该函数的参数如下所示:

def build_op_1(input, param1, param2, param3):
    # returns tensor operation for op_1
    pass

def build_op_2(input, param1, param2, param3, param4):
    # returns tensor operation for op_2
    pass
其中输入是A的第i行。如您所见,我需要为输入的第I行检索正确的操作并在其上执行它。必须对A中包含的所有行执行此操作

我已经看到有一些操作能够管理图中的条件流(即case、switch等),但我认为它们不能将特定数据转发给特定操作。有没有办法在TensorFlow中实现这种行为

提前谢谢大家,


Alessandro

我相信您希望使用tensorflow映射来迭代行,再加上tensorflow cond来有条件地运行不同的子图。

我相信您希望使用tensorflow映射来迭代行,再加上tensorflow cond来有条件地运行不同的子图。

如果我回答晚了,对不起。我使用tf.map_fn和tf.case的组合精确地解决了我的问题。无论如何,谢谢你的帮助!对不起,如果我回答晚了。我使用tf.map_fn和tf.case的组合精确地解决了我的问题。无论如何,谢谢你的帮助!