# Trainable

From Dyna

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*`trainable`

type using an ordinary declaration`:- union(trainable,[lambda,rewrites,axiom])`

. The other effects will follow.