![]() |
Creates a ModuleSpec from a function that builds the module's graph.
hub.create_module_spec(
module_fn, tags_and_args=None, drop_collections=None
)
The module_fn
is called on a new graph (not the current one) to build the
graph of the module and define its signatures via hub.add_signature()
.
Example:
# Define a text embedding module.
def my_text_module_fn():
text_input = tf.placeholder(dtype=tf.string, shape=[None])
embeddings = compute_embedding(text_input)
hub.add_signature(inputs=text_input, outputs=embeddings)
See add_signature()
for documentation on adding multiple input/output
signatures.
Multiple graph variants can be defined by using the tags_and_args
argument.
For example, the code:
hub.create_module_spec(
module_fn,
tags_and_args=[({"train"}, {"is_training":True}),
(set(), {"is_training":False})])
calls module_fn
twice, once as module_fn(is_training=True)
and once as
module_fn(is_training=False)
to define the respective graph variants:
for training with tags {"train"} and for inference with the empty set of tags.
Using the empty set aligns the inference case with the default in
Module.init().
THIS FUNCTION IS DEPRECATED.
Args | |
---|---|
module_fn
|
a function to build a graph for the Module. |
tags_and_args
|
Optional list of tuples (tags, kwargs) of tags and keyword
args used to define graph variants. If omitted, it is interpreted as
[(set(), {})], meaning module_fn is called once with no args.
|
drop_collections
|
list of collection to drop. |
Returns | |
---|---|
A ModuleSpec. |
Raises | |
---|---|
ValueError
|
if it fails to construct the ModuleSpec due to bad or
unsupported values in the arguments or in the graphs constructed by
module_fn .
|