#python #tensorflow
#python #тензорный поток
Вопрос:
У меня есть следующая часть кода —
...
print(model.layers[1].output)
tf.math.abs(model.layers[1].output)
print('layer 2 output')
print(model.layers[1].output)
...
которая выдает следующий вывод при запуске —
Tensor("generic_act_func_1/Complex:0", shape=(?, 28, 28, 9), dtype=complex64)
layer 2 output
Tensor("generic_act_func_1/Complex:0", shape=(?, 28, 28, 9), dtype=complex64)
Я не могу понять, почему tf.abs () не создает тензор вывода с плавающей запятой из комплексного тензора ввода.
Заранее спасибо за любую помощь в понимании / исправлении.
Комментарии:
1. вы печатаете в два раза больше выходных данных
layers[1]
. попробуйте сprint(tf.math.abs(model.layers[1].output))
2. Что ж, спасибо, это действительно выводит вывод с плавающей запятой .. означает ли это, что функция tf.abs () не изменяет ‘модель. слои [1].вывод ‘ внутри? (это то, что я хочу сделать перед передачей вывода уровня 1 на уровень 2)
3. точно.
tf.abs()
не изменяет вывод, когда вы вызываете его, как вы это делали. (Я не на 100% знаком с keras, но я думаю, вы можете добавитьLambda
слой, который вычисляет абсолютное значение)model.add(Lambda(lambda x: tf.math.abs(x)))
смотрите: keras.io/layers/core4. Хорошо, я понял. Большое спасибо за оперативную помощь!