Python 自定义层需要将tf.keras.input空张量更改为numpy ndarray-';张量';对象没有属性';numpy';错误
我已经编写了一个Python 自定义层需要将tf.keras.input空张量更改为numpy ndarray-';张量';对象没有属性';numpy';错误,python,tensorflow,python-3.7,tensorflow2.0,tf.keras,Python,Tensorflow,Python 3.7,Tensorflow2.0,Tf.keras,我已经编写了一个tf.keras自定义层,其中我使用了一些只与numpy数组一起工作的函数,因此当我尝试在带有tf.keras.Input的模型中使用我的层时,这些函数会产生一个错误:输入数据必须是numpy数组。 tf.keras.backend.eval(x)和x.numpy()都会导致错误:“Tensor”对象没有属性“numpy”,即使启用了紧急执行 使用sess=tf.compat.v1.Session()和sess.run(x)给出:会话图为空。在调用run() 以下是我正在测试的示
tf.keras
自定义层,其中我使用了一些只与numpy
数组一起工作的函数,因此当我尝试在带有tf.keras.Input的模型中使用我的层时,这些函数会产生一个错误:输入数据必须是numpy数组。
tf.keras.backend.eval(x)
和x.numpy()
都会导致错误:“Tensor”对象没有属性“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
数组?我认为您不能使用numpy函数在Keras或TensorFlow中创建计算图。您应该使用tensorflow或keras中相同的内置函数。你能给出你的服装层的代码吗