Closed amkrajewski closed 7 months ago
Notes:
Attention: Patch coverage is 89.20188%
with 46 lines
in your changes are missing coverage. Please review.
Project coverage is 93.58%. Comparing base (
74a31dd
) to head (4c12c21
). Report is 4 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
pysipfenn/core/modelAdjusters.py | 87.15% | 46 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Hi @jwsiegel2510 and @rdamaral Everything is complete and the tests are passing. It's ready to be reviewed!
Hi @jwsiegel2510 and @rdamaral, I was hoping to pull it later today to align with the manuscript posting on arXiv.
Hi Adam,
I've reviewed the documentation, tested the main functions, and they are working well. I also did not encounter any issues when installing this branch version in a new conda environment (Python 3.10).
Just a couple of comments:
OQMD returned
TypeError: can only concatenate str (not "int") to str
JARVIS returnedValidationError: 1 validation error for StructureResource
. Aflow returnedError: Provider ...: ('Connection aborted.', ... ))
PS: Both OQMD and Jarvis were run using thetargetPath
values mentioned in the documentation. Other than these, MP and Alexandria were also tested and did not raise any error.
'ValueError: not enough values to unpack (expected 4, got 0)'
. Do you think targetPath
could be fetched automatically from each provider's endpoint when defyining OPTIMADEAdjuster? I'm considering this because even the current default values may eventually break, for instance, if MP decides to change their endpoint (again). Another alternative would be to have targetPath
set to () rather than MP
's formation energy path.Hi @rdamaral ! Thanks for the insightful comments :)
20
, with documentation discussing this and mentioning that on a GPU (even a laptop one) 100
may be preferred.OQMD
server is down, and JARVIS
seems to have issues filtering. I will ask about that at the developer meeting tomorrow.I also added a new functionality that allows you to override provider
and use a custom endpoint. E.g.
ma = pysipfenn.OPTIMADEAdjuster(
c,
model="SIPFENN_Krajewski2022_NN30",
endpointOverride=["https://alexandria.icams.rub.de/pbesol"],
targetPath=['attributes', '_alexandria_formation_energy_per_atom']
)
ma.fetchAndFeturize(
'elements HAS "Hf" AND elements HAS "Mo" AND elements HAS "Zr"',
parallelWorkers=2
)
Nice. The endpointOverride
input is very interesting from the user’s perspective, especially in the event of changes or new additions to OPTIMADE. 👍
As the title says, this new addition to the core
pySIPFENN
functionalities connects it to OPTIMADE API to enable rapid adjustment of the models to any specific dataset described by an OPTIMADE query (or multiple queries). Most of the functions are neatly hidden behind high-level API and default values should work well for datasets between 100-10,000 datapoints.You can now simply:
or to perform a hyperparameter search, replace the
ma.adjust()
with:All model usage works as before with the
Calculator
class. Modifying or exporting it for later is through specific classes in themodelExporters
submodule.