Как применить функцию к каждому элементу 2d-тензора?

#python #tensorflow

#python #тензорный поток

Вопрос:

Я ищу способ применить tensorflow op к каждому элементу 2d-тензора, например

 input = tf.Variable([[1.0, 2.0], [3.0, 4.0]])
# final result should look like: 
# [[myCustomOp(1.0), myCustomOp(2.0)]), [myCustomOp(3.0), myCustomOp(4.0)]]
  

Комментарии:

1. вы можете применить любую операцию к каждому элементу, например, myCustomOp(ввод [0,0])

2. Мне нужно затронуть весь тензор (см. Желаемый результат)

Ответ №1:

Работает следующий код:

   def myOp(t):
    return t 1
  shape = tf.shape(input)
  elems = tf.reshape(input, [-1])
  res = tf.map_fn(fn=lambda t: myOp(t), elems=elems)
  res = tf.reshape(res, shape)