Could not compute output Tensor(“activation/Identity:0“, shape=(None, 1), dtype=float32)

在这里插入图片描述
tf2.0,加载模型预测的时候,提示无法计算输出张量,这种情况多是训练数据和你评估数据不一致导致的,也就是模型的输入不一致。

比如我的错误排查如下:

只给出关键代码,组网部分略过

 '''   feed input   '''
feature_names =deepFMmodel.dense_feature_columns + deepFMmodel.sparse_feature_columns
print(' feature_names: ', feature_names)

train_x = [train_data[name].values for name in feature_names]
test_x = [test_data[name].values for name in feature_names]
val_x = [val_data[name].values for name in feature_names]
train_y = [train_data['y'].values]
test_y = [test_data['y'].values]
val_y = [val_data['y'].values]

model.fit(
      train_x, train_y,
      batch_size=2000,
      epochs=3,
      verbose=1,
      validation_data=(val_x, val_y),
      shuffle=True,
      )
      
model.save(settings.save_path)
full_eval_x = [pdeval_full[name].values for name in feature_names]
full_eval_y = [pdeval_full['y'].values]

model = tf.keras.models.load_model(settings.save_path)

y_pre = model.predict(full_eval_x, batch_size=256)

注意上述的feature_names,因为我想把训练和评估模块化,所以每次都保存了这个feature_names,当换网络的时候,feature_names忘记保存了,所以评估的时候读取的还是原来网络的feature_names,因为特征不一致,导致无法计算张量输出,保持评估数据和训练数据一致即可。

'''   feed input   '''
feature_names = deepFMmodel.dense_feature_columns + deepFMmodel.sparse_feature_columns
print(' feature_names: ', feature_names)
with open(settings.feature_names_path, mode='w') as f:
    f.write(' '.join(feature_names))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42363032/article/details/121614493
今日推荐