orleto zelc4tdartro You can state that axioms of a given type have trainable values:
:- trainable(lambda). :- trainable(rewrites). :- trainable(axiom). % all axioms
This has three effects:
- It declares a new type called
trainable, which is a union of all types declared as trainable in this way.
- It tells DynaMITE to try to adjust their values during training.
- It tells Dyna to allocate space for holding gradients or EM counts for the trainable axioms, and for theorems that are derived from them.
- At present, this syntactic sugar isn't available. Just declare the
trainabletype using an ordinary declaration
:- union(trainable,[lambda,rewrites,axiom]). The other effects will follow.