Как получить доступ к значениям тензора в режиме ожидания

#python #tensorflow #tensorflow2.0

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

Вопрос:

Я использую функцию map для своего набора данных. В отображаемой функции я хочу получить доступ к значениям тензора, чтобы использовать его, например, в «если».

Но теперь я вижу способ получить доступ к тензору вообще.

Я в режиме ожидания и имею tensorflow 2.1 (поскольку anaconda не поддерживает более новую версию).

Вот простой пример кода того, что я имею в виду:

 def f1(C):
    print("every numba")
    #Access C somehow
    #if C < 2:
    #   C = C-1
    return C 2

dataset = tf.data.Dataset.range(1, 6)  # ==> [ 1, 2, 3, 4, 5 ]
dataset2 = dataset.map(f1)
  

Ответ №1:

Я предполагаю, что подобный подход может сработать для вас.

 def f1(C):
    print("print ", C)
    if C < 2:
       C = C-1
    return C

dataset = tf.data.Dataset.range(1, 6)  # ==> [ 1, 2, 3, 4, 5 ]
dataset = dataset.map( lambda x: tf.py_function(
                                    f1,
                                    inp=[x], Tout=tf.int64))
for x in dataset:
    print(x)