class_docstr: A deep-learning based Variational Monte Carlo method [1]_ for calculating the ab-initio
  solution of a many-electron system.
  
  This model aims to calculate the ground state energy of a multi-electron system
  using a baseline solution as the Hartree-Fock. An MCMC technique is used to sample
  electrons and DNNs are used to caluclate the square magnitude of the wavefunction,
  in which electron-electron repulsions also are included in the calculation(in the
  form of Jastrow factor envelopes). The model requires only the nucleus' coordinates
  as input.
  
  This method is based on the following paper:
  
  Example
  -------
  >>> from deepchem.models.torch_models.ferminet import FerminetModel
  >>> H2_molecule = [['H', [0, 0, 0]], ['H', [0, 0, 0.748]]]
  >>> mol = FerminetModel(H2_molecule, spin=0, ion_charge=0, tasks='pretraining')
  >>> mol.train(nb_epoch=3)
  >>> print(mol.model.psi_up.size())
  torch.Size([1, 1])
  
  References
  ----------
  .. [1] Spencer, James S., et al. Better, Faster Fermionic Neural Networks. arXiv:2011.07125, arXiv, 13 Nov. 2020. arXiv.org, http://arxiv.org/abs/2011.07125.
  
  Note
  ----
  This class requires pySCF to be installed.
class_docstr_tok: ["A","deep-learning","based","Variational","Monte","Carlo","method","[","1","]","_","for","calculating","the","ab-initio","solution","of","a","many-electron","system",".","This","model","aims","to","calculate","the","ground","state","energy","of","a","multi-electron","system","using","a","baseline","solution","as","the","Hartree-Fock",".","An","MCMC","technique","is","used","to","sample","electrons","and","DNNs","are","used","to","caluclate","the","square","magnitude","of","the","wavefunction",",","in","which","electron-electron","repulsions","also","are","included","in","the","calculation","(","in","the","form","of","Jastrow","factor","envelopes",")",".","The","model","requires","only","the","nucleus","'","coordinates","as","input",".","This","method","is","based","on","the","following","paper",":","Example","--","--","--","-",">",">",">","from","deepchem.models.torch_models.ferminet","import","FerminetModel",">",">",">","H2_molecule","=","[","[","'","H","'",",","[","0",",","0",",","0","]","]",",","[","'","H","'",",","[","0",",","0",",","0.748","]","]","]",">",">",">","mol","=","FerminetModel","(","H2_molecule",",","spin=0",",","ion_charge=0",",","tasks='pretraining","'",")",">",">",">","mol.train","(","nb_epoch=3",")",">",">",">","print","(","mol.model.psi_up.size","(",")",")","torch.Size","(","[","1",",","1","]",")","References","--","--","--","--","--","..","[","1","]","Spencer",",","James","S.",",","et","al",".","Better",",","Faster","Fermionic","Neural","Networks",".","arXiv:2011.07125",",","arXiv",",","13","Nov.","2020.","arXiv.org",",","http",":","\/\/arxiv.org\/abs\/2011.07125",".","Note","--","--","This","class","requires","pySCF","to","be","installed","."]
docstr: Helper function to calculate orbital values at sampled electron's position.
  
  Parameters:
  -----------
  x: np.ndarray
      Contains the sampled electrons coordinates in a numpy array.
  
  Returns:
  --------
  2 numpy arrays containing the up-spin and down-spin orbitals in a numpy array respectively.
docstr_tok: ["Helper","function","to","calculate","orbital","values","at","sampled","electron","'s","position",".","Parameters",":","--","--","--","--","--","-","x",":","np.ndarray","Contains","the","sampled","electrons","coordinates","in","a","numpy","array",".","Returns",":","--","--","--","--","2","numpy","arrays","containing","the","up-spin","and","down-spin","orbitals","in","a","numpy","array","respectively","."]
code: def evaluate_hf(self, x: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
      """
      Helper function to calculate orbital values at sampled electron's position.
  
      Parameters:
      -----------
      x: np.ndarray
          Contains the sampled electrons coordinates in a numpy array.
  
      Returns:
      --------
      2 numpy arrays containing the up-spin and down-spin orbitals in a numpy array respectively.
      """
      x = np.reshape(x, [-1, 3 * (self.up_spin + self.down_spin)])
      leading_dims = x.shape[:-1]
      x = np.reshape(x, [-1, 3])
      coeffs = self.mf.mo_coeff
      gto_op = "GTOval_sph"
      ao_values = self.mol.eval_gto(gto_op, x)
      mo_values = tuple(np.matmul(ao_values, coeff) for coeff in coeffs)
      mo_values_list = [
          np.reshape(
              mo, leading_dims + (self.up_spin + self.down_spin, -1)
          )
          for mo in mo_values
      ]
      return (
          mo_values_list[0][..., : self.up_spin, : self.up_spin],
          mo_values_list[1][..., self.up_spin :, : self.down_spin],
      )
  
imports: import logging
  from typing import List, Optional, Tuple
  from rdkit import Chem
  import numpy
  from deepchem.utils.molecule_feature_utils import ALLEN_ELECTRONEGATIVTY
  from deepchem.models.torch_models import TorchModel
  import torch
  from deepchem.models.torch_models.layers import FerminetElectronFeature, FerminetEnvelope
  from deepchem.utils.electron_sampler import ElectronSampler
label_desc: Use image node_id 2 for calling the FerminetModel obj's underlying member method code with example usage: obj.evaluate_hf(x) and returns: mo_values_list,  mo_values_list