为什么keras中层输出张量形状是(?)?,?)

2024-05-08 03:11:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我加载了一个keras模型并使用其中间输出,如下所示:

pretrain_model = load_model(path)
model = Model(inputs=pretrain_model.input, outputs=pretrain_model.layers[-2].output)

当我跑步时:

>>model.output
<tf.Tensor 'pretrain_variable/dropout_2/cond/Merge:0' shape=(?, ?) dtype=float32>
>>model.output_shape
(None, 2000)

这影响了我的下一步:

input = tf.placeholder(tf.float32,shape=(None,X_all.shape[1],X_all.shape[2]),name='X')
pretrain_output = pretrain_model(input) # pretrain_output shape should be none*2000, however it is none*none
output_y = Dense(units=y.shape[1])(pretrain_output) # this works
output_y = tf.keras.layers.Dense(units=y.shape[1])(pretrain_output) # won't work, cause pretrain_output shape is (none,none)

我不能用tf.keras.层。直接由于尺寸而密集等于零。 有人能教我如何得到中间层输出正确的形状吗?你知道吗


Tags: noneinputoutputmodelislayerstfall