我是TF的新手,正在尝试在Google Cloud上部署Quick, Draw!模型。
它使用自定义Estimator
并取1 tfexample
并返回形状(8)
的分类张量。
要部署的模型的要求之一是输入和输出张量应支持批处理,例如它们的外部尺寸应为None
。
对输入张量这样做很容易,因为我们已经控制serving_input_receiver_fn
,对于输出张量,我感到困惑,因为是否更改输出张量,我还需要重构整个训练/评估操作。有没有捷径可实现?
答案 0 :(得分:0)
我能够确认,从TensorFlow估计器导出的已保存模型的输出确实将具有与输入相同的批处理大小。
但是,如果您尝试导出此特定教程并将其部署到Google Cloud的AI Platform Prediction服务,则需要注意以下几点:
lsearch -exact $L {[]}
需要更新以正确处理model_fn
模式。
Prediction服务实际上要求在保存的模型中外部尺寸为PREDICT
,这也需要在教程中进行一些代码更改,因为它指定了批处理大小。
本教程代码不包含对None
的调用,特别是您需要实现estimator.export_saved_model
。
TF中似乎存在一个错误,导致恢复serving_input_receiver_fn
失败:https://github.com/tensorflow/tensorflow/issues/23898。因此,尤其是目前,如果使用cudnn_lstm
训练模型,则无法将其部署为已保存的模型。
我已经在分叉中对本教程进行了以下更改:https://github.com/dizcology/models/tree/quickdraw-gcp/tutorials/rnn