Model parameters
by: Kevin Broløs & Meera Machado
(Feyn version 3.0 or newer)
You can output and inspect all parameters as a python dict using the params property on a Model. It's mostly useful for programmatic parsing and relies on the positional node orderings.
For other cases, we recommend you use the get_parameters function on the Model instead.
It takes the name of the input or output and returns a pandas.DataFrame with its parameter values.
If your Model has multiple inputs with the same name in different positions, this is disambiguated with their ordinal position that you can cross-reference in the Model graph by checking the number in the corner of the node.
Example
Here is an example of how to display the parameters for a model that contains categorical and numerical inputs.
import pandas as pd
import feyn
ql = feyn.QLattice()
data = pd.DataFrame(
{
'a': [1, 2, 3, 4, 5, 6],
'cat': ["Three", "Two", "Four", "Three", "Two", "One"],
'y': [4, 4, 7, 7, 7, 7]
}
)
models = ql.auto_run(data, output_name='y', stypes={'cat':'c'}, max_complexity=3, n_epochs=1)
best_model = models[0]
best_model
best_model.get_parameters(name='cat')
| cat | |
|---|---|
| category | |
| Four | 0.376742 |
| Three | 0.143783 |
| Two | -0.089089 |
| One | -0.321966 |
best_model.get_parameters(name='a')
| a | |
|---|---|
| scale | 0.400000 |
| scale_offset | 3.500000 |
| w | 0.582286 |
| bias | 0.993797 |
| detect_scale | 0.000000 |
best_model.get_parameters(name='y')
| y | |
|---|---|
| scale | 1.500000 |
| scale_offset | 0.000000 |
| w | 2.862249 |
| bias | 0.572713 |
| detect_scale | 0.000000 |
Location in Feyn
This function can also be found in the feyn.tools module.
from feyn.tools import get_model_parameters
get_model_parameters(best_model, 'cat')