Join the SIG TFX-Addons community and help make TFX even better!

tfx.dsl.components.common.resolver.Resolver

Definition for TFX Resolver.

Inherits From: BaseNode

Used in the notebooks

Used in the tutorials

Resolver is a special TFX node which handles special artifact resolution logics that will be used as inputs for downstream nodes.

To use Resolver, pass the followings to the Resolver constructor: a. name of the Resolver instance g. a subclass of ResolverStrategy c. the configs that will be used to construct an instance of (a) d. channels to resolve with their tag, in the form of kwargs Here is an example:

... example_gen = ImportExampleGen(...) latest_five_examples_resolver = Resolver( instance_name='latest_five_examples_resolver', strategy_class=latest_artifacts_strategy.LatestArtifactsStrategy, resolver_config={'desired_num_of_artifacts' : 5}, examples=example_gen.outputs['examples']) trainer = MyTrainer( examples=latest_five_examples_resolver.outputs['examples'], user_module=...) ...

instance_name the name of the Resolver instance.
strategy_class a ResolverStrategy subclass which contains the artifact resolution logic.
config a dict of key to Jsonable type representing configuration that will be used to construct the resolver strategy.
**kwargs a key -> Channel dict, describing what are the Channels to be resolved. This is set by user through keyword args.

_strategy_class the class of the ResolverStrategy.
_resolver_configs the configs that will be used to construct an instance of _strategy_class.
component_id

component_type

downstream_nodes

exec_properties

id Node id, unique across all TFX nodes in a pipeline.

If id is set by the user, return it directly. otherwise, if instance name (deprecated) is available, node id will be: . otherwise, node id will be:

inputs

outputs

type

upstream_nodes

Methods

add_downstream_node

View source

Experimental: Add another component that must run after this one.

This method enables task-based dependencies by enforcing execution order for synchronous pipelines on supported platforms. Currently, the supported platforms are Airflow, Beam, and Kubeflow Pipelines.

Note that this API call should be considered experimental, and may not work with asynchronous pipelines, sub-pipelines and pipelines with conditional nodes. We also recommend relying on data for capturing dependencies where possible to ensure data lineage is fully captured within MLMD.

It is symmetric with add_upstream_node.

Args
downstream_node a component that must run after this node.

add_upstream_node

View source

Experimental: Add another component that must run before this one.

This method enables task-based dependencies by enforcing execution order for synchronous pipelines on supported platforms. Currently, the supported platforms are Airflow, Beam, and Kubeflow Pipelines.

Note that this API call should be considered experimental, and may not work with asynchronous pipelines, sub-pipelines and pipelines with conditional nodes. We also recommend relying on data for capturing dependencies where possible to ensure data lineage is fully captured within MLMD.

It is symmetric with add_downstream_node.

Args
upstream_node a component that must run before this node.

from_json_dict

View source

Convert from dictionary data to an object.

get_class_type

View source

get_id

View source

Gets the id of a node.

This can be used during pipeline authoring time. For example: from tfx.components import Trainer

resolver = ResolverNode(..., model=Channel( type=Model, producer_component_id=Trainer.get_id('my_trainer')))

Args
instance_name (Optional) instance name of a node. If given, the instance name will be taken into consideration when generating the id.

Returns
an id for the node.

to_json_dict

View source

Convert from an object to a JSON serializable dictionary.

with_id

View source