Hello,
I’d like to better understand the semantics/expressiveness of the native TensorFlow reactive specification layer. This includes some operations of the tf
and tosa
dialects (such as tf.Placeholder
) but mostly operations of the tf_executor
dialect.
Here are two examples of questions we’d like to ask:
- Is it possible to place a
tf.Placeholder
operation inside a frame enclosed bytf_executor.Enter
andtf_executor.Exit
? In other terms, is it possible to have multipletf.Placeholder
operations working at different paces? For instance, usetf_executor.Switch
to have sometf.Placeholder
operations work in odd cycles, while others work in even cycles? My question has of course a dual sense: “what is the intended semantics” and “what can the implementation flows do, e.g. during implementation over iree or tfrt”? - Why is
tf.Placeholder
a part of dialecttf
, and not of dialecttf_executor
? The overall organization seems to separate the computational part intf
and the control/reactive part intf_executor
. For instance,tf_executor
will define the sources and sinks related to the state. But not the primary data sourcetf.Placeholder
. Is this due to historical reasons? The fact that the placeholder also became part of thetosa
dialect makes me doubt it (tosa.cond_if
andtosa.while_loop
do not pose the same problems, as they are mere control structures, not involving interaction with the environment).
I’m not sure this is the right place to ask, hence my subject line.
Dumitru