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)
附参考要点