We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I'm trying to run the example here:
https://github.com/quantumlib/ReCirq/blob/master/docs/hfvqe/quickstart.ipynb
import numpy as np import cirq from recirq.hfvqe.gradient_hf import rhf_func_generator from recirq.hfvqe.opdm_functionals import OpdmFunctional from recirq.hfvqe.analysis import ( compute_opdm, mcweeny_purification, resample_opdm, fidelity_witness, fidelity) from recirq.hfvqe.third_party.higham import fixed_trace_positive_projection from recirq.hfvqe.molecular_example import make_h6_1_3 rhf_objective, molecule, parameters, obi, tbi = make_h6_1_3() ansatz, energy, gradient = rhf_func_generator(rhf_objective) # settings for quantum resources qubits = [cirq.GridQubit(0, x) for x in range(molecule.n_orbitals)] sampler = cirq.Simulator(dtype=np.complex128) # this can be a QuantumEngine # OpdmFunctional contains an interface for running experiments opdm_func = OpdmFunctional(qubits=qubits, sampler=sampler, constant=molecule.nuclear_repulsion, one_body_integrals=obi, two_body_integrals=tbi, # only simulate spin-up electrons: num_electrons=molecule.n_electrons // 2, clean_xxyy=True, purification=True ) # 1. # default to 250_000 shots for each circuit. # 7 circuits total, printed for your viewing pleasure # return value is a dictionary with circuit results for each permutation measurement_data = opdm_func.calculate_data(parameters) # 2. opdm, var_dict = compute_opdm(measurement_data, return_variance=True) opdm_pure = mcweeny_purification(opdm) # 3. raw_energies = [] raw_fidelity_witness = [] purified_eneriges = [] purified_fidelity_witness = [] purified_fidelity = [] true_unitary = ansatz(parameters) nocc = molecule.n_electrons // 2 nvirt = molecule.n_orbitals - nocc initial_fock_state = [1] * nocc + [0] * nvirt # 1000 repetitions of the measurement for _ in range(1000): new_opdm = resample_opdm(opdm, var_dict) raw_energies.append(opdm_func.energy_from_opdm(new_opdm)) raw_fidelity_witness.append( fidelity_witness(target_unitary=true_unitary, omega=initial_fock_state, measured_opdm=new_opdm) ) # fix positivity and trace of sampled 1-RDM if strictly outside # feasible set w, v = np.linalg.eigh(new_opdm) if len(np.where(w < 0)[0]) > 0: new_opdm = fixed_trace_positive_projection(new_opdm, nocc) new_opdm_pure = mcweeny_purification(new_opdm) purified_eneriges.append(opdm_func.energy_from_opdm(new_opdm_pure)) purified_fidelity_witness.append( fidelity_witness(target_unitary=true_unitary, omega=initial_fock_state, measured_opdm=new_opdm_pure) ) purified_fidelity.append( fidelity(target_unitary=true_unitary, measured_opdm=new_opdm_pure) ) print("Canonical Hartree-Fock energy ", molecule.hf_energy) print("True energy ", energy(parameters)) print("Raw energy ", opdm_func.energy_from_opdm(opdm), "+- ", np.std(raw_energies)) print("Raw fidelity witness ", np.mean(raw_fidelity_witness).real, "+- ", np.std(raw_fidelity_witness)) print("purified energy ", opdm_func.energy_from_opdm(opdm_pure), "+- ", np.std(purified_eneriges)) print("Purified fidelity witness ", np.mean(purified_fidelity_witness).real, "+- ", np.std(purified_fidelity_witness)) print("Purified fidelity ", np.mean(purified_fidelity).real, "+- ", np.std(purified_fidelity))
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) File ~/.conda/envs/qiskit/lib/python3.10/site-packages/pandas/core/indexes/base.py:3621, in Index.get_loc(self, key, method, tolerance) 3620 try: -> 3621 return self._engine.get_loc(casted_key) 3622 except KeyError as err: File ~/.conda/envs/qiskit/lib/python3.10/site-packages/pandas/_libs/index.pyx:136, in pandas._libs.index.IndexEngine.get_loc() File ~/.conda/envs/qiskit/lib/python3.10/site-packages/pandas/_libs/index.pyx:163, in pandas._libs.index.IndexEngine.get_loc() File pandas/_libs/hashtable_class_helper.pxi:5198, in pandas._libs.hashtable.PyObjectHashTable.get_item() File pandas/_libs/hashtable_class_helper.pxi:5206, in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: '(0, 1)' The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) Input In [6], in <cell line: 8>() 5 measurement_data = opdm_func.calculate_data(parameters) 7 # 2. ----> 8 opdm, var_dict = compute_opdm(measurement_data, return_variance=True) 9 opdm_pure = mcweeny_purification(opdm) 11 # 3. File ~/.conda/envs/qiskit/lib/python3.10/site-packages/recirq/hfvqe/analysis.py:66, in compute_opdm(results_dict, return_variance) 64 q0, q1 = qubits[pair_idx:pair_idx + 2] 65 qA, qB = permutation[pair_idx:pair_idx + 2] ---> 66 opdm[qA, qB] += np.mean(data[q1] - data[q0], axis=0) * 0.5 67 opdm[qB, qA] += np.mean(data[q1] - data[q0], axis=0) * 0.5 69 if return_variance: 70 # get covariance matrices File ~/.conda/envs/qiskit/lib/python3.10/site-packages/pandas/core/frame.py:3505, in DataFrame.__getitem__(self, key) 3503 if self.columns.nlevels > 1: 3504 return self._getitem_multilevel(key) -> 3505 indexer = self.columns.get_loc(key) 3506 if is_integer(indexer): 3507 indexer = [indexer] File ~/.conda/envs/qiskit/lib/python3.10/site-packages/pandas/core/indexes/base.py:3623, in Index.get_loc(self, key, method, tolerance) 3621 return self._engine.get_loc(casted_key) 3622 except KeyError as err: -> 3623 raise KeyError(key) from err 3624 except TypeError: 3625 # If we have a listlike key, _check_indexing_error will raise 3626 # InvalidIndexError. Otherwise we fall through and re-raise 3627 # the TypeError. 3628 self._check_indexing_error(key) KeyError: '(0, 1)'
seems like this might be a cirq/recirq version issue? Here are my versions
cirq-core 0.15.0 cirq-google 0.15.0 recirq 0.1.dev0
The text was updated successfully, but these errors were encountered:
No branches or pull requests
I'm trying to run the example here:
https://github.com/quantumlib/ReCirq/blob/master/docs/hfvqe/quickstart.ipynb
seems like this might be a cirq/recirq version issue? Here are my versions
The text was updated successfully, but these errors were encountered: