我训练了一个TensorFlow分类器,并使用CREATE MODEL在BigQuery ML中创建了一个模型。现在,我想使用ML.PREDICT批量预测使用这个模型。我得到了错误“无效的表值函数ml.predict列输入在预测函数的输入数据中找不到”。
以下是我的查询:
select * from ml.predict (
model test.digital_native_classifier_kf,
(select * from dataset_id.features_table_id)
)在BigQuery文档中,它们给出了一个TensorFlow模型的示例,该模型的单个列别名为input,因此TensorFlow input_fn可以接受它。然而,这个分类器接受数百个特征。如何指定传递给ML.PREDICT的查询,以便它使用我的功能表中的所有列?
发布于 2020-03-23 00:33:52
将模型加载到BigQuery ML后,单击BigQuery UI中的模型并切换到"Schema“选项卡。这将告诉您模型需要哪些特性(列名)。
在创建TensorFlow/Keras模型时,可能没有为输入节点分配名称。然后,功能名称可能会自动分配给像int1和float2这样的东西。
或者,在模型上运行程序saved_model_cli (它是tensorflow附带的python程序),以查看支持的签名是什么
saved_model_cli show --dir $export_path --all发布于 2020-04-03 05:09:19
经过一些研究,Auto将输入张量编码为Prensors,这是一种串行字符串格式,被插入到张量中。
这意味着您不能像导入TensorFlow模型那样将GCS中的TensorFlow模型直接导入到BQML中,该模型将不同的输入显式地编码为json。
因此,为了将AutoML模型导入到BigQuery ML中,BigQuery工程团队除了需要添加对model_type='tensorflow'的支持外,还需要添加对model_type='automl'之类的东西的支持。
发布于 2020-03-09 16:59:22
目前,多列是不可能的,从AutoML初学者指南
您的数据集中有一列名为“目标”,它是您的模型将学会预测的内容。其他一些数据列是模型将从中学习模式的输入(称为特性)。您可以通过更改目标来使用相同的输入特性来构建多种类型的模型。
还找到了对多目标AutoML表请求的此特性请求。
https://stackoverflow.com/questions/60570155
复制相似问题