Class AmiciSummedGradientFunction¶
Defined in File multiConditionProblem.h
Inheritance Relationships¶
Base Type¶
public parpe::SummedGradientFunction< int >
(Template Class SummedGradientFunction)
Class Documentation¶
-
class
parpe
::
AmiciSummedGradientFunction
: public parpe::SummedGradientFunction<int>¶ The AmiciSummedGradientFunction class represents a cost function based on simulations of an AMICI model for different datasets.
Public Types
-
using
WorkPackage
= AmiciSimulationRunner::AmiciWorkPackageSimple¶
-
using
ResultPackage
= AmiciSimulationRunner::AmiciResultPackageSimple¶
-
using
ResultMap
= std::map<int, ResultPackage>¶
Public Functions
-
AmiciSummedGradientFunction
(MultiConditionDataProvider *dataProvider, LoadBalancerMaster *loadBalancer, OptimizationResultWriter *resultWriter)¶ -
- Parameters
dataProvider
: Provides data and settings for AMICI simulationsloadBalancer
: LoadBalancerMaster for shared memory parallelism, or nullptrresultWriter
:
-
virtual
~AmiciSummedGradientFunction
() = default¶
-
virtual FunctionEvaluationStatus
evaluate
(gsl::span<const double> parameters, int dataset, double &fval, gsl::span<double> gradient, Logger *logger, double *cpuTime) const override¶ Evaluate on single data point.
- Return
Evaluation status
- Parameters
parameters
: Parameter vector where the function is to be evaluateddataset
: The dataset on which to evaluate the functionfval
: Output argument for f(x)gradient
: Preallocated space for the gradient of size dim(parameters). Or gsl::span<double>() for evaluation without gradient.logger
: Optional Logger instance used for outputcputime
: Optional output argument to reoprt cpuTime consumed by the the function
-
virtual FunctionEvaluationStatus
evaluate
(gsl::span<const double> parameters, std::vector<int> datasets, double &fval, gsl::span<double> gradient, Logger *logger, double *cpuTime) const override¶ Evaluate on vector of data points.
- Return
Evaluation status
- Parameters
parameters
: Parameter vector where the function is to be evaluateddatasets
: The datasets on which to evaluate the functionfval
: Output argument for f(x)gradient
: Preallocated space for the gradient of size dim(parameters). Or gsl::span<double>() for evaluation without gradient.logger
: Optional Logger instance used for outputcputime
: Optional output argument to reoprt cpuTime consumed by the the function
-
virtual int
numParameters
() const override¶ Number of optimization parameters.
- Return
-
virtual std::vector<std::string>
getParameterIds
() const override¶
-
virtual FunctionEvaluationStatus
getModelOutputsAndSigmas
(gsl::span<double const> parameters, std::vector<std::vector<double>> &modelOutputs, std::vector<std::vector<double>> &modelSigmas, Logger *logger, double *cpuTime) const¶ Run simulations (no gradient) with given parameters and collect model outputs.
- Return
Simulation status
- Parameters
parameters
: Model parameters for simulationmodelOutput
: in: some vector reference, will be resized. output: Vector of double vectors containing AMICI ReturnData::y (nt x ny, column-major)
-
virtual std::vector<std::vector<double>>
getAllMeasurements
() const¶
-
virtual void
messageHandler
(std::vector<char> &buffer, int jobId) const¶ Callback function for LoadBalancer.
- Parameters
buffer
: In/out: message bufferjobId
: In: Identifier of the job (unique up to INT_MAX)
-
virtual amici::ParameterScaling
getParameterScaling
(int parameterIndex) const¶
Public Members
-
bool
sendStates
= false¶ Include model states in result package
Protected Functions
-
AmiciSummedGradientFunction
() = default¶
-
virtual int
runSimulations
(gsl::span<double const> optimizationParameters, double &nllh, gsl::span<double> objectiveFunctionGradient, const std::vector<int> &dataIndices, Logger *logger, double *cpuTime) const¶ Run AMICI simulations for conditions with the given indices.
- Return
Simulation status, != 0 indicates failure
- Parameters
optimizationVariables
:logLikelihood
:objectiveFunctionGradient
:dataIndices
:numDataIndices
:
-
int
aggregateLikelihood
(JobData &data, double &negLogLikelihood, gsl::span<double> negLogLikelihoodGradient, double &simulationTimeInS, gsl::span<const double> optimizationParameters) const¶ Aggregates loglikelihood received from workers.
- Return
- Parameters
data
: Simulation job resultnegLogLikelihood
: output argument to which negative log likelihood is addednegLogLikelihoodGradient
: output argument to which negative log likelihood gradient is addedsimulationTimeInS
: unused
-
void
addSimulationGradientToObjectiveFunctionGradient
(int conditionIdx, gsl::span<const double> simulationGradient, gsl::span<double> objectiveFunctionGradient, gsl::span<const double> parameters) const¶ Aggregates loglikelihood gradient received from workers.
- Parameters
conditionIdx
:simulationGradient
: log-likelihood gradient from simulationobjectiveFunctionGradient
: output to which negative log-likelihood gradient from simulation is added
-
void
setSensitivityOptions
(bool sensiRequired) const¶
-
using