In addition to the object-oriented way of specifying ParaDime routines, ParaDime also defines a grammar for YAML specifications. This grammar is explained in detail in our arXiv preprint.
A specification includes the top-level fields
training phases, and
derived data. Of these two,
training phases are required. The following is a simple example of such a YAML specification, which specifies a parametric version of metric MDS:
relations: - name: dists hd level: global type: pairwise options: metric: euclidean - name: dists ld level: batch type: pairwise options: metric: euclidean losses: - name: mds type: relation func: mse keys: rels: - dists hd - dists ld training phases: - loss: components: mds
ParaDime routines can be constructed from such specifications using the
from_spec() class method:
dr = paradime.dr.ParametricDR.from_spec( <file or dict>, <model>, )
This method accepts either a string with the name of a YAML file or a dictionary (e.g., an already parsed specification). Along with the specification you also need to pass a model. Data is added later, either with the
train() call or using
The full schema of required fields and allowed values in ParaDime specifications is defined in the
parsing module, using the Cerberus syntax for validation schemata.