flare.model
-TestPModel
protocol
only for testing with models
members
fix-param!
(fix-param! this param-name value)
add-params!
(add-params! model shape & {:keys [name init]})
Add parameters of givne shape
to model. Accepts some options * :name
String name for parameter for inspection later * :init
a map satisfying InitParamSpec
for distribution of how to sample values
from-data!
(from-data! model is)
Load parameters from InputStream (e.g, File). Mutates underlying values, will throw if parameter-name doesn’t exist in model, so need to construct model same as when trained.
from-doubles!
(from-doubles! model xs)
Flatten parameters into a single vector and writes to each parameter group tensor :value
PModel
protocol
A model is effectively a paramaeter collection that holds graph nodes representing parameter groups.
By convention, any implementation should be seqable and return a sequence of [param-name, param-node] pairs for the model
members
-add-param-metadata!
(-add-param-metadata! this param-name key val)
add meta-data [key, val] pair to the node for the given param-name
node. Useful for storing optimization data. Internal method due to some parameter defaulting.
-add-params!
(-add-params! this param-name shape init-spec)
add parameters to the model (mutably), returns a param graph node. Some argument defaulting happens below so this is the internal method, use add-params!
as the entry point
canonical-node
(canonical-node this param-name)
returns a caonical Node
for the parameter (meaning it stores the “true” value/gradient for for the parameters).
tensor-factory
(tensor-factory this)
return the underlying tensor factory (PTensorFactory
) for the model
rand-params!
(rand-params! model)
using the initialziation spec for each param group, generate a fresh setting of the parameters
simple-param-collection
(simple-param-collection)
(simple-param-collection factory)
Simple collection of parameters NOTE: The meta-data of the param-collection gives you access to the underlying data. Don’t use it except for an emergency!
to-doubles
(to-doubles model)
(to-doubles model key)
Flatten parameters into a single JVM double array. Can take either parameter values or current gradient, depending on key
with-metadata!
(with-metadata! model param-node-or-name key value)
add a key-value pair to the metadata on the underlying parameter node. As name implies, param-node-or-name
can be either current canonical node or the Node.ref-name
for the parameter group.