qmctorch.solver package¶
Submodules¶
Module contents¶
-
class
qmctorch.solver.
SolverBase
(wf=None, sampler=None, optimizer=None, scheduler=None, output=None, rank=0)[source]¶ Bases:
object
Base Class for QMC solver
Parameters: - wf (qmctorch.WaveFunction, optional) – wave function. Defaults to None.
- sampler (qmctorch.sampler, optional) – Sampler. Defaults to None.
- optimizer (torch.optim, optional) – optimizer. Defaults to None.
- scheduler (torch.optim, optional) – scheduler. Defaults to None.
- output (str, optional) – hdf5 filename. Defaults to None.
- rank (int, optional) – rank of he process. Defaults to 0.
-
configure_resampling
(mode='update', resample_every=1, nstep_update=25)[source]¶ Configure the resampling
Parameters:
-
track_observable
(obs_name)[source]¶ define the observalbe we want to track
Parameters: obs_name (list) – list of str defining the observalbe. Each str must correspond to a WaveFuncion method
-
store_observable
(pos, local_energy=None, ibatch=None, **kwargs)[source]¶ store observale in the dictionary
Parameters:
-
print_observable
(cumulative_loss, verbose=False)[source]¶ Print the observalbe to csreen
Parameters:
-
resample
(n, pos)[source]¶ Resample the wave function
Parameters: - n (int) – current epoch value
- pos (torch.tensor) – positions of the walkers
Returns: new positions of the walkers
Return type: (torch.tensor)
-
single_point
(with_tqdm=True, hdf5_group='single_point')[source]¶ Performs a single point calculatin
Parameters: Returns: contains the local energy, positions, …
Return type: SimpleNamespace
-
load_checkpoint
(filename)[source]¶ load a model/optmizer
Parameters: filename (str) – filename Returns: epoch number and loss Return type: tuple
-
sampling_traj
(pos=None, with_tqdm=True, hdf5_group='sampling_trajectory')[source]¶ Compute the local energy along a sampling trajectory
Parameters: - pos (torch.tensor) – positions of the walkers along the trajectory
- hdf5_group (str, optional) – name of the group where to store the data. Defaults to ‘sampling_trajecory’
Returns: contains energy/positions/
Return type: SimpleNamespace
-
print_parameters
(grad=False)[source]¶ print parameter values
Parameters: grad (bool, optional) – also print the gradient. Defaults to False.
-
class
qmctorch.solver.
Solver
(wf=None, sampler=None, optimizer=None, scheduler=None, output=None, rank=0)[source]¶ Bases:
qmctorch.solver.solver_base.SolverBase
Basic QMC solver
Parameters: - wf (qmctorch.WaveFunction, optional) – wave function. Defaults to None.
- sampler (qmctorch.sampler, optional) – Sampler. Defaults to None.
- optimizer (torch.optim, optional) – optimizer. Defaults to None.
- scheduler (torch.optim, optional) – scheduler. Defaults to None.
- output (str, optional) – hdf5 filename. Defaults to None.
- rank (int, optional) – rank of he process. Defaults to 0.
-
configure
(track=None, freeze=None, loss=None, grad=None, ortho_mo=None, clip_loss=False, resampling=None)[source]¶ Configure the solver
Parameters: - track (list, optional) – list of observable to track. Defaults to [‘local_energy’].
- freeze ([type], optional) – list of parameters to freeze. Defaults to None.
- loss (str, optional) – merhod to compute the loss: variance or energy. Defaults to ‘energy’.
- grad (str, optional) – method to compute the gradients: ‘auto’ or ‘manual’. Defaults to ‘auto’.
- ortho_mo (bool, optional) – apply regularization to orthogonalize the MOs. Defaults to False.
- clip_loss (bool, optional) – Clip the loss values at +/- X std. X defined in Loss as clip_num_std (default 5) Defaults to False.
-
set_params_requires_grad
(wf_params=True, geo_params=False)[source]¶ Configure parameters for wf opt.
-
freeze_parameters
(freeze)[source]¶ Freeze the optimization of specified params.
Parameters: freeze (list) – list of param to freeze
-
geo_opt
(nepoch, geo_lr=0.01, batchsize=None, nepoch_wf_init=100, nepoch_wf_update=50, hdf5_group='geo_opt', chkpt_every=None, tqdm=False)[source]¶ optimize the geometry of the molecule
Parameters: - nepoch (int) – Number of optimziation step
- batchsize (int, optional) – Number of sample in a mini batch. If None, all samples are used. Defaults to Never.
- hdf5_group (str, optional) – name of the hdf5 group where to store the data. Defaults to ‘geo_opt’.
- chkpt_every (int, optional) – save a checkpoint every every iteration. Defaults to half the number of epoch
-
run
(nepoch, batchsize=None, hdf5_group='wf_opt', chkpt_every=None, tqdm=False)[source]¶ Run a wave function optimization
Parameters: - nepoch (int) – Number of optimziation step
- batchsize (int, optional) – Number of sample in a mini batch. If None, all samples are used. Defaults to Never.
- hdf5_group (str, optional) – name of the hdf5 group where to store the data. Defaults to ‘wf_opt’.
- chkpt_every (int, optional) – save a checkpoint every every iteration. Defaults to half the number of epoch
-
prepare_optimization
(batchsize, chkpt_every, tqdm=False)[source]¶ Prepare the optimization process
Parameters:
-
save_data
(hdf5_group)[source]¶ Save the data to hdf5.
Parameters: hdf5_group (str) – name of group in the hdf5 file
-
run_epochs
(nepoch)[source]¶ Run a certain number of epochs
Parameters: nepoch (int) – number of epoch to run
-
evaluate_grad_auto
(lpos)[source]¶ Evaluate the gradient using automatic differentiation
Parameters: lpos (torch.tensor) – sampling points Returns: loss values and local energies Return type: tuple
-
class
qmctorch.solver.
SolverMPI
(wf=None, sampler=None, optimizer=None, scheduler=None, output=None, rank=0)[source]¶ Bases:
qmctorch.solver.solver.Solver
Distributed QMC solver
Parameters: - wf (qmctorch.WaveFunction, optional) – wave function. Defaults to None.
- sampler (qmctorch.sampler, optional) – Sampler. Defaults to None.
- optimizer (torch.optim, optional) – optimizer. Defaults to None.
- scheduler (torch.optim, optional) – scheduler. Defaults to None.
- output (str, optional) – hdf5 filename. Defaults to None.
- rank (int, optional) – rank of he process. Defaults to 0.
-
run
(nepoch, batchsize=None, loss='energy', clip_loss=False, grad='manual', hdf5_group='wf_opt', num_threads=1, chkpt_every=None)[source]¶ Run the optimization
Parameters: - nepoch (int) – Number of optimization step
- batchsize (int, optional) – Number of sample in a mini batch. If None, all samples are used. Defaults to None.
- loss (str, optional) – method to compute the loss: variance or energy. Defaults to ‘energy’.
- clip_loss (bool, optional) – Clip the loss values at +/- 5std. Defaults to False.
- grad (str, optional) – method to compute the gradients: ‘auto’ or ‘manual’. Defaults to ‘auto’.
- hdf5_group (str, optional) – name of the hdf5 group where to store the data. Defaults to ‘wf_opt’