Exemple #1
0
    def _no_trainable_variable_attribute(self, trainable):
        """A SavedModel where the VariableDef has no 'trainable' (it's false)."""
        class _MissingFieldsVariable(resource_variable_ops.ResourceVariable):
            def to_proto(self, export_scope=None):
                full_proto = super(_MissingFieldsVariable,
                                   self).to_proto(export_scope)
                return variable_pb2.VariableDef(
                    variable_name=full_proto.variable_name,
                    initial_value_name=full_proto.initial_value_name,
                    initializer_name=full_proto.snapshot_name,
                    save_slice_info_def=full_proto.save_slice_info_def,
                    is_resource=full_proto.is_resource)

        export_graph = ops.Graph()
        with export_graph.as_default():
            v = _MissingFieldsVariable(3., trainable=trainable)
            with session_lib.Session() as session:
                session.run([v.initializer])
                path = os.path.join(self.get_temp_dir(), "saved_model",
                                    str(ops.uid()))
                b = builder_impl.SavedModelBuilder(path)
                b.add_meta_graph_and_variables(session,
                                               tags=[tag_constants.SERVING],
                                               signature_def_map={})
                b.save()

        return path
Exemple #2
0
 def _v1_multi_input_saved_model(self):
     export_graph = ops.Graph()
     with export_graph.as_default():
         input1 = array_ops.placeholder(shape=[None],
                                        dtype=dtypes.float32,
                                        name="input1")
         input2 = array_ops.placeholder(shape=[None],
                                        dtype=dtypes.float32,
                                        name="input2")
         v = resource_variable_ops.ResourceVariable(21.)
         output = array_ops.identity(input1 * v + input2, name="output")
         with session_lib.Session() as session:
             session.run(v.initializer)
             path = os.path.join(self.get_temp_dir(), "saved_model",
                                 str(ops.uid()))
             builder = builder_impl.SavedModelBuilder(path)
             builder.add_meta_graph_and_variables(
                 session,
                 tags=[tag_constants.SERVING],
                 signature_def_map={
                     "serving_default":
                     signature_def_utils.build_signature_def(
                         {
                             "input1": utils_impl.build_tensor_info(input1),
                             "input2": utils_impl.build_tensor_info(input2)
                         },
                         {"output": utils_impl.build_tensor_info(output)})
                 })
             builder.save()
     return path
 def _v1_multi_metagraph_saved_model(self):
   export_graph = ops.Graph()
   with export_graph.as_default():
     start = array_ops.placeholder(
         shape=[None], dtype=dtypes.float32, name="start")
     v = resource_variable_ops.ResourceVariable(21.)
     first_output = array_ops.identity(start * v, name="first_output")
     second_output = array_ops.identity(v, name="second_output")
     with session_lib.Session() as session:
       session.run(v.initializer)
       path = os.path.join(self.get_temp_dir(), "saved_model", str(ops.uid()))
       builder = builder_impl.SavedModelBuilder(path)
       builder.add_meta_graph_and_variables(
           session, tags=["first"],
           signature_def_map={
               "first_key": signature_def_utils.build_signature_def(
                   {"first_start": utils_impl.build_tensor_info(start)},
                   {"first_output": utils_impl.build_tensor_info(
                       first_output)})})
       builder.add_meta_graph(
           tags=["second"],
           signature_def_map={
               "second_key": signature_def_utils.build_signature_def(
                   {"second_start": utils_impl.build_tensor_info(start)},
                   {"second_output": utils_impl.build_tensor_info(
                       second_output)})})
       builder.save()
   return path
 def _no_signatures_model(self):
   export_graph = ops.Graph()
   with export_graph.as_default():
     inp = array_ops.placeholder(name="x", shape=[], dtype=dtypes.float32)
     array_ops.identity(inp + 1., name="out")
     with session_lib.Session() as session:
       path = os.path.join(self.get_temp_dir(), "saved_model", str(ops.uid()))
       b = builder_impl.SavedModelBuilder(path)
       b.add_meta_graph_and_variables(
           session,
           tags=[tag_constants.SERVING],
           signature_def_map={},
           assets_collection=ops.get_collection(ops.GraphKeys.ASSET_FILEPATHS))
       b.save()
   return path
  def _export_variable(self, **kwargs_for_variable):
    """A 1.x SavedModel with a single variable."""
    export_graph = ops.Graph()
    with export_graph.as_default():
      v = resource_variable_ops.ResourceVariable(3., **kwargs_for_variable)
      with session_lib.Session() as session:
        session.run([v.initializer])
        path = os.path.join(self.get_temp_dir(), "saved_model", str(ops.uid()))
        b = builder_impl.SavedModelBuilder(path)
        b.add_meta_graph_and_variables(
            session,
            tags=[tag_constants.SERVING],
            signature_def_map={})
        b.save()

    return path
 def _unfed_placeholder_signature(self):
   export_graph = ops.Graph()
   with export_graph.as_default():
     x = array_ops.placeholder(name="x", shape=[], dtype=dtypes.float32)
     output = x * random_ops.random_normal([2])
     with session_lib.Session() as session:
       path = os.path.join(self.get_temp_dir(), "saved_model", str(ops.uid()))
       b = builder_impl.SavedModelBuilder(path)
       b.add_meta_graph_and_variables(
           session,
           tags=[tag_constants.SERVING],
           signature_def_map={
               "key": signature_def_utils.build_signature_def(
                   {}, dict(value=utils_impl.build_tensor_info(output)))})
       b.save()
   return path
 def _v1_output_shape_saved_model(self):
   export_graph = ops.Graph()
   with export_graph.as_default():
     start = array_ops.placeholder(
         shape=[None], dtype=dtypes.float32, name="start")
     output = array_ops.identity(start, name="output")
     output.set_shape([1])  # Ok to use [1] because shape is only informational
     with session_lib.Session() as session:
       path = os.path.join(self.get_temp_dir(), "saved_model", str(ops.uid()))
       builder = builder_impl.SavedModelBuilder(path)
       builder.add_meta_graph_and_variables(
           session,
           tags=[tag_constants.SERVING],
           signature_def_map={
               "serving_default":
                   signature_def_utils.build_signature_def(
                       {"start": utils_impl.build_tensor_info(start)},
                       {"output": utils_impl.build_tensor_info(output)})
           })
       builder.save()
   return path