有没有一种好方法可以将使用 tflearn.DNN 类构建的模型部署到 Google Cloud ML Engine?SavedModel 似乎需要在预测签名定义中定义输入和输出张量,但不确定如何从 tflearn.DNN 中获取。
问问题
358 次
1 回答
0
至少在我的具体情况下,我后来才知道这一点。此代码段可让您将 DNN 导出为 SavedModel,然后可以将其部署到 Google Cloud ML Engine。
片段如下,带有以下参数
- 文件名是导出目录
- input_tensor 是给 tflearn.DNN 的 input_data 层
- output_tensor 是传递给 tflearn.DNN 的整个网络
session 是 tflearn.DNN 返回的对象的一个属性
builder = tf.saved_model.builder.SavedModelBuilder(filename) signature = tf.saved_model.signature_def_utils.predict_signature_def( inputs={'in':input_tensor}, outputs={'out':output_tensor}) builder.add_meta_graph_and_variables(session, [tf.saved_model.tag_constants.SERVING], signature_def_map={'serving_default':signature}) builder.save() serving_vars = { 'name':self.name } assets = filename + '/assets.extra' os.makedirs(assets) with open(assets + '/serve.pkl', 'wb') as f: pickle.dump(serving_vars, f, pickle.HIGHEST_PROTOCOL)
于 2017-07-17T04:54:41.777 回答