Вот в чем дело: в модели, использующей настраиваемую подмодель для построения, я могу успешно построить и обучить ее, но когда я пытаюсь использовать модель для прогнозирования, она показывает эту ошибку: ValueError: Несоответствие между ожидаемым размером пакета и размером пакета вывода модели. Форма вывода = (3, 1), ожидаемая форма вывода = shape (1, 1)
Модель вывода должна быть (1,1), а форма вывода (3,1) - относится к 3-м подмоделям в модели (я могу подтвердить это после заключения отладки). Эти части параллельны друг другу, подробная информация следующая.
Вот информация о model.summary ():
xdeepfm model summary:
Model: "xDeepFM"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_13 (InputLayer) [(None, 30)] 0
__________________________________________________________________________________________________
input_14 (InputLayer) [(None, 10028)] 0
__________________________________________________________________________________________________
input_15 (InputLayer) [(None, 4584)] 0
__________________________________________________________________________________________________
input_16 (InputLayer) [(None, 213)] 0
__________________________________________________________________________________________________
input_17 (InputLayer) [(None, 2281)] 0
__________________________________________________________________________________________________
input_18 (InputLayer) [(None, 55)] 0
__________________________________________________________________________________________________
Embedding_model (Model) (None, 600) 1719700 input_13[0][0]
input_14[0][0]
input_15[0][0]
input_16[0][0]
input_17[0][0]
input_18[0][0]
__________________________________________________________________________________________________
tf_op_layer_Reshape_1 (TensorFl [(1, None)] 0 Embedding_model[1][0]
__________________________________________________________________________________________________
tf_op_layer_Reshape (TensorFlow [(1, None)] 0 Embedding_model[1][0]
__________________________________________________________________________________________________
tf_op_layer_Reshape_2 (TensorFl [(1, 6, 100)] 0 Embedding_model[1][0]
__________________________________________________________________________________________________
DNN2 (Model) multiple 2885401 tf_op_layer_Reshape_1[0][0]
__________________________________________________________________________________________________
DNN1 (Model) multiple 241001 tf_op_layer_Reshape[0][0]
__________________________________________________________________________________________________
CIN (Model) (1, 1) 3000601 tf_op_layer_Reshape_2[0][0]
__________________________________________________________________________________________________
Combination_model (Model) multiple 2 DNN2[1][0]
DNN1[1][0]
CIN[1][0]
==================================================================================================
Total params: 7,846,705
Trainable params: 7,846,705
Non-trainable params: 0
__________________________________________________________________________________________________
Самое смешное, что подмодель CIN состоит из настроенных слоев с явной выходной формой в итоге, в то время как подмодель 2 DNN использует tf api с неявной выходной формой. be (1,1).
И, кстати, когда я использую sub-model.summary () для проверки структуры подмодели, выходная форма не имеет проблем.
I ' m предполагая, что причина, по которой моя модель может быть обучена, но не может предсказать, является ли выходная форма модели «множественной», но если я ошибаюсь, скажите.