Пользовательский слой нуждается в замене пустого тензора tf.keras.input на numpy ndarray - у объекта 'Tensor' нет атрибута 'numpy' error - PullRequest
0 голосов
/ 04 ноября 2019

Я написал пользовательский слой tf.keras, в котором я использовал некоторые функции, которые работают только с массивами numpy, поэтому, когда я пытаюсь использовать свой слой в модели с tf.keras.Input, функции вызываютошибка: input data must be a numpy ndarray.

tf.keras.backend.eval(x) и x.numpy() оба приводят к ошибке: 'Tensor' object has no attribute 'numpy', даже если включено активное выполнение.

с использованием sess = tf.compat.v1.Session() и sess.run(x) дает:График сеанса пуст. Добавьте операции в график перед вызовом run()

Вот пример модели, с которой я тестирую:

inputs = keras.Input(shape=(48,48,1))
x = keras.layers.Conv2D(64, (3,3), padding='same', activation='relu')(inputs)

# y = tf.keras.backend.eval(x)

# init_op = tf.compat.v1.global_variables_initializer()
# with tf.compat.v1.Session() as sess:
#    sess.run(init_op)
#    y = sess.run(x)

# y = x.numpy()

z = Mylayer.My_custom_layer()(y)
outputs = z
model = keras.Model(inputs=inputs, outputs=outputs)

Я прокомментировал строки с комментариями.

В любом случае можно ли преобразовать этот тензорный вход в массив numpy перед входом в пользовательский слой?

1 Ответ

0 голосов
/ 04 ноября 2019

Я думаю, вы не можете использовать функцию numpy для создания графа вычислений в Keras или TensorFlow. и вы должны использовать равные встроенные функции из tenorflow или keras. Можете ли вы дать код для вашего костюма?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...