Tensorflow具有a map style operation。但是,它需要一个仅输入一个功能。如果我的函数需要多个输入张量,那么此操作将很难使用。
例如,如果我要将矩阵中每行的最后n
个元素设置为0,其中n
是按行确定的,则可以执行以下操作来获取单行操作:
def row_zero(input_array, n):
return tf.pad(input_array[:-n], [[0,n]])
哪个给:
>>> with tf.Session('') as sesh:
... sesh.run(row_zero(tf.constant([1,2,3,4,5]),3))
...
array([1, 2, 0, 0, 0], dtype=int32)
但是,如果我想按行执行此操作:
def rowwise_row_zero(input_matrix, array_of_n):
return tf.map_fn(...)
我遇到了一个障碍,因为tf.map_fn
仅会映射到单个输入。在香草蟒蛇中,我可以zip
和input_matrix
和array_of_n
。但是,在tensorflow
中,没有类似zip
的功能。如何在张量流中映射具有多个输入的函数?