Skip to content

NotEncodableError while compiling KerasLayer with inception_v3 hub module #297

Description

@alimaan2935

tried this notebook from issue #287
it is giving me the following error:

Building model with https://tfhub.dev/google/tf2-preview/mobilenet_v2/feature_vector/3

NotEncodableErrorTraceback (most recent call last)
<ipython-input-18-ec7885f2f9d5> in <module>()
      2 model = tf.keras.Sequential([
      3     hub.KerasLayer(MODULE_HANDLE, output_shape=[FV_SIZE],
----> 4                    trainable=do_fine_tuning),
      5     tf.keras.layers.Dropout(rate=0.2),
      6     tf.keras.layers.Dense(train_generator.num_classes, activation='softmax',

11 frames
/usr/local/lib/python2.7/dist-packages/tensorflow_hub/keras_layer.pyc in __init__(self, handle, trainable, arguments, **kwargs)
     96       self._func = handle
     97     else:
---> 98       self._func = module_v2.load(handle)
     99       if not callable(self._func):
    100         raise ValueError("Non-callable result from hub.load('%s')" %

/usr/local/lib/python2.7/dist-packages/tensorflow_hub/module_v2.pyc in load(handle)
     78                                 "format. Loading of the module using "
     79                                 "hub.load() is not supported." % handle)
---> 80     return tf_v1.saved_model.load_v2(module_handle)
     81   else:
     82     raise NotImplementedError("hub.load() is not implemented for TF < 1.14.x, "

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/load.pyc in load(export_dir, tags)
    322       loader = _Loader(object_graph_proto,
    323                        saved_model_proto,
--> 324                        export_dir)
    325       root = loader.get(0)
    326   else:

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/load.pyc in __init__(self, object_graph_proto, saved_model_proto, export_dir)
     55         function_deserialization.load_function_def_library(
     56             meta_graph.graph_def.library))
---> 57     self._load_all()
     58     # TODO(b/124045874): There are limitations with functions whose captures
     59     # trigger other functions to be executed. For now it is only guaranteed to

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/load.pyc in _load_all(self)
    130     node_setters = []
    131     for proto in self._proto.nodes:
--> 132       node, setter = self._recreate(proto)
    133       self._nodes.append(node)
    134       node_setters.append(setter)

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/load.pyc in _recreate(self, proto)
    193     if kind not in factory:
    194       raise ValueError("Unknown SavedObject type: %r" % kind)
--> 195     return factory[kind]()
    196 
    197   def _recreate_user_object(self, proto):

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/load.pyc in <lambda>()
    182         "user_object": lambda: self._recreate_user_object(proto.user_object),
    183         "asset": lambda: self._recreate_asset(proto.asset),
--> 184         "function": lambda: self._recreate_function(proto.function),
    185         "bare_concrete_function": functools.partial(
    186             self._recreate_bare_concrete_function,

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/load.pyc in _recreate_function(self, proto)
    217   def _recreate_function(self, proto):
    218     return function_deserialization.recreate_function(
--> 219         proto, self._concrete_functions), setattr
    220 
    221   def _recreate_bare_concrete_function(self, proto):

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/function_deserialization.pyc in recreate_function(saved_function, concrete_functions)
    184   coder = nested_structure_coder.StructureCoder()
    185   function_spec = _deserialize_function_spec(saved_function.function_spec,
--> 186                                              coder)
    187 
    188   def restored_function_body(*args, **kwargs):

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/function_deserialization.pyc in _deserialize_function_spec(function_spec_proto, coder)
    118       annotations=typeless_fullargspec.annotations)
    119   is_method = function_spec_proto.is_method
--> 120   args_to_prepend = coder.decode_proto(function_spec_proto.args_to_prepend)
    121   kwargs_to_include = coder.decode_proto(function_spec_proto.kwargs_to_include)
    122   input_signature = coder.decode_proto(function_spec_proto.input_signature)

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/nested_structure_coder.pyc in decode_proto(self, proto)
    112       NotEncodableError: For values for which there are no encoders.
    113     """
--> 114     return self._map_structure(proto, self._get_decoders())
    115 
    116 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/saved_model/nested_structure_coder.pyc in _map_structure(self, pyobj, coders)
     69         return do(pyobj, recursion_fn)
     70     raise NotEncodableError(
---> 71         "No encoder for object [%s] of type [%s]." % (str(pyobj), type(pyobj)))
     72 
     73   def encode_structure(self, nested_structure):

NotEncodableError: No encoder for object [] of type [<class 'tensorflow.core.protobuf.struct_pb2.StructuredValue'>].

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions