Я написал пользовательский слой 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
перед входом в пользовательский слой?