qmctorch.solver package
Submodules
- qmctorch.solver.solver_base module
SolverBase
SolverBase.configure_resampling()
SolverBase.track_observable()
SolverBase.store_observable()
SolverBase.print_observable()
SolverBase.resample()
SolverBase.single_point()
SolverBase.save_checkpoint()
SolverBase.load_checkpoint()
SolverBase.sampling_traj()
SolverBase.print_parameters()
SolverBase.optimization_step()
SolverBase.save_traj()
SolverBase.run()
SolverBase.log_data()
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
- 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
- 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)
- 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:
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
- 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:
- class qmctorch.solver.SolverMPI(wf=None, sampler=None, optimizer=None, scheduler=None, output=None, rank=0)[source]
Bases:
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’