mendevi.models.solver

Use a model to solve an optimization problem.

Classes

Solver(model, loss[, grid])

Minimizes a metric for a given model.

Details

class mendevi.models.solver.Solver(model: Model, loss: Callable, grid: dict[str, list] | None = None)[source]

Minimizes a metric for a given model.

Performs a grid search on all free parameters.

Examples

>>> import cutcutcodec
>>> from mendevi.models import Solver
>>> from mendevi.models.lr import EncodeLinear
>>> model = EncodeLinear().fit("x264_vs_openh264.db", table="t_enc_encode")
>>> solver = Solver(model, lambda **kwd: kwd["log_energy_per_frame"] + (kwd["psnr"]-35)**2)
>>> video = cutcutcodec.utils.get_project_root() / "media" / "video" / "intro.webm"
>>> values, loss = solver.solve(video, encoder=["libopenh264", "libx264"])
>>>

Prepare the solver.

Parameters

modelmendevi.models.base.Model

The instantiated and fitted model, ready to be evaluated.

losscallable

The cost function, which takes the value of the labels as input and returns a scalar.

griddict[str, list], optional

Allows you to define the list of values to be tested. It is a dictionary that for each input label, associate the values to be tested.