Форма вывода модели tensorflow2 показывает "несколько" - PullRequest
0 голосов
/ 17 июня 2020

Вот в чем дело: в модели, использующей настраиваемую подмодель для построения, я могу успешно построить и обучить ее, но когда я пытаюсь использовать модель для прогнозирования, она показывает эту ошибку: 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 предполагая, что причина, по которой моя модель может быть обучена, но не может предсказать, является ли выходная форма модели «множественной», но если я ошибаюсь, скажите.

...