Comments (1)
My current thoughts on an API for this is as follows:
problem = pybop.SingleOutputProblem(model, parameters, signal, dataset)
cost = pybop.SumofErrors(problem)
optim = pybop.Optimisation(cost,x0,method,bounds=bounds)
results = optim.run()
This essentially splits the functionality of our current pybop.Optimisation()
class into more manageable classes with clearer divisions. This is similar to the pints classes, with a few differences around the Problem()
class. In this structure, the SumofErrors class would inherit a base cost function class.
The functionality is as follows:
- The
SingleOutputProblem
stores the optimisation parameters, runs the model viamodel.simulate()
, and returns the results with respect to the signal definition. - The
SumofErrors
class calls the problem class and evaluates the returned prediction and the ground truth from the dataset. - The
Optimisation
object wraps everything together and passes it to to selected optimiser. This class
Let me know if anyone has additional thoughts on this, or an alternative idea. Otherwise, I'm going to start implementing it and will open a PR for review once it's completed.
from pybop.
Related Issues (20)
- [Bug]: Defining a voltage vector is necessary for evaluating impedance while it shouldn't HOT 1
- Design problems should have a default `init_soc`
- Compute initial concentrations from initial OCV HOT 2
- Fitting Problem with experimental data HOT 6
- Clean metadata from notebooks during pre-commit
- [Bug]: Quick Plot not plotting.
- Linting private member access
- Refactor `cost._evaluate` methods to accept precomputed signals HOT 3
- Add Thermal Thevenin Example (Remove Params from Others) HOT 2
- Add multi-start functionality to optimisers
- Add a random sample optimiser
- Add an example that uses a pybamm.FunctionalParameter
- [Bug]: nox doesn't run with conda HOT 3
- Refactor BaseModel.rebuild() and BaseModel.build()
- Refactor BaseModel property setters
- [Bug]: multi_model_identification.ipynb shows incorrect results
- [Bug]: spm_electrode_design.ipynb not producing correct results
- Avoid rebuild if OCV unaffected by parameters
- Add an example notebook on the MultiFittingProblem
- [Bug]: Fix failing benchmarks
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pybop.