我有一个模型M,它有两个输入:x_train1,x_train2。经过大量转换后,这些输入被串联到一个单个数组x1_x2中。稍后将其插入自动编码器,其输出应为x1_x2。但是当我尝试拟合模型时,出现以下错误:
ValueError:将符号张量馈送到模型时,我们期望张量具有静态批大小。得到张量的形状:(无,2080年)
我知道问题在于我如何指定期望的输出。我能够使用虚拟数组(例如np.zeros((96,2080)))运行代码,但无法通过设置内部层的输出来运行代码。
我执行以下操作以适合模型:
autoencoder.fit([x_train1, x_train2],
autoencoder.layers[-7].output,
epochs=50,
batch_size=8,
shuffle=True,
validation_split=0.2)
如何使Keras理解预期的输出应该是形状为(number_of_input_images,2080)的内部层的输出?
答案 0 :(得分:1)
我将执行以下操作:从Keras导入Model
类并创建其他模型。
from tensorflow.python.keras.models import Model
# model = your existing model
new_model = Model(
inputs = model.input,
outputs = model.get_layer(name_of_desired_output_layer).output
)
就是这样,现在您可以使用新模型并进行训练了。