Skip to content
New issue

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

qnn.py issues with recent Cirq versions #40

Open
qlero opened this issue Mar 19, 2022 · 2 comments
Open

qnn.py issues with recent Cirq versions #40

qlero opened this issue Mar 19, 2022 · 2 comments

Comments

@qlero
Copy link

qlero commented Mar 19, 2022

Hello,

It seems that the qnn.py script in chapter 9 is broken for Cirq versions v0.11.0 and further, as per the release notes here, notably:

If you have old gate implementations with _resolve_parameter that doesn't support the recursive parameter, you will get an error message: TypeError: _resolve_parameters_() takes 2 positional arguments but 3 were given, you will need to add support for the recursive:bool parameter

Solution

The script can be solved by:

  • line 36 -- adding recursive=True as an argument to def _resolve_parameters_(self, param_resolver):
  • line 79 -- replacing wf = result.final_state with wf = result.final_state_vector

I can submit a pull request unless you have specified somewhere you're using a Cirq version older than the v0.11.0.

Best regards,

Quentin

@JackHidary
Copy link
Owner

JackHidary commented Mar 19, 2022 via email

@qlero
Copy link
Author

qlero commented Mar 19, 2022

Hello,

I submitted a pull request with the modifications. Of note, I also provided another modification:

With cirq v0.14, the class TwoQubitGate (and the three-qubit one) will be deprecated. This is solved by removing the cirq.ops.gate_features.TwoQubitGate as an inheritance argument from the class ZXGate (and others in different scripts) on lines 10-11, and replacing it with the following function in the class body:

def _num_qubits_(self):
        return 2

Best regards,

Quentin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants