无法将符号张量转换为 numpy 数组。此错误可能表示您正在尝试将张量传递给不支持的 NumPy 调用



tensorflow版本2.3.1numpy版本1.19.5keras版本2.4.3

我想看看keras模型的中间层。

train_data = tf.constant([[0, 0], [0, 1], [1, 0], [1, 1]])
train_labels = tf.constant([[0], [0], [0], [1]])
input_tensor = Input(shape=2)
x1 = Dense(10, kernel_initializer=initializer)(input_tensor)
x2 = Activation('sigmoid')(x1)
output_tensor = layers.Dense(1, activation='sigmoid', kernel_initializer=initializer)(x2)
model = Model(inputs=input_tensor, outputs=output_tensor)
model.summary()
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['acc'])
print('weight', model.get_weights())
history = model.fit(train_data, train_labels, epochs=800)
#error
test = tf.constant(x2)
print(x2)

我们得到

NotImplementedError:无法将符号张量(activation/Sigmoid:0(转换为numpy数组。此错误可能表明您正试图将张量传递给NumPy调用,而不支持该调用

更改numpy的版本并不能解决问题。

x2是keras张量,编辑错误部分以打印其值

#error part edited
import tensorflow.keras.backend as K
x2 = K.print_tensor(x2, message='x2 = ')
print(x2)

附参考要点

最新更新