With consecutive recent changes I feel we should check and sort out the use of the following terms in the spec:
- intermediate values (activations)
- MLActivation interface (former MLOperator)
- operations (both ops and activation functions).
The latter are supposed to have functional semantics, so don't have state and don't change states of other objects. Therefore they are fine being represented by ops functions in MLGraphBuilder.
However,
- Should we consider marking the activation functions among ops?
- Would a separate MLOperator definition be still useful, as it is continued to be used in implementation(s)?
(Possibly a V2 discussion, but would be nice to sort out in V1. The text definitely needs checking in V1.)
If there is a clear explanation, we just need to update the spec text, explainer etc.