Skip to content
Back to skills

Pennylane

ASecurity

Builds and differentiates PennyLane quantum circuits, hybrid PyTorch or JAX models, molecular VQE and QAOA workflows. Use for variational quantum algorithms, quantum machine learning, simulator validation, and moving validated circuits to provider plugins. For hardware-specific compilation use qiskit or cirq; for open-system dynamics use qutip.

  • 47,690 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 4, 2026
ai-agentspythongobashnodeawsgitapibackenddocumentation

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 8 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add K-Dense-AI/scientific-agent-skills --skill pennylane --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pennylane?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pennylane
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/k-dense-ai-pennylane-3d67b824/badge)](https://www.skillsdirectory.com/skills/k-dense-ai-pennylane-3d67b824)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pennylane
description: Builds and differentiates PennyLane quantum circuits, hybrid PyTorch or JAX models, molecular VQE and QAOA workflows. Use for variational quantum algorithms, quantum machine learning, simulator validation, and moving validated circuits to provider plugins. For hardware-specific compilation use qiskit or cirq; for open-system dynamics use qutip.
license: Apache-2.0 license
compatibility: Requires Python 3.11+ and PennyLane 0.45.1 with NumPy 2+. Optional PyTorch, JAX or provider plugins need separate compatible environments. Local simulation needs no credentials; hardware requires provider credentials and network access.
allowed-tools: Read Bash Python
metadata:
  version: "2.0"
  skill-author: K-Dense Inc.
  last-reviewed: "2026-10-01"
  upstream-version: "0.45.1"
---

# PennyLane

## When to use

Use PennyLane to optimize parameterized circuits, build hybrid quantum-classical
models, estimate molecular energies, or compare a validated circuit across devices.
This skill targets stable PennyLane 0.45.1. The local examples use small synthetic
systems; successful optimization does not establish quantum advantage, molecular
accuracy, or hardware fidelity.

## Installation

Create a dedicated environment; provider plugins and compiler dependencies should
be resolved separately from unrelated scientific packages:

```bash
uv venv --python 3.13 .venv-pennylane
uv pip install --python .venv-pennylane/bin/python "pennylane==0.45.1"
```

PennyLane 0.45 requires NumPy 2+. Core installation includes Lightning. For ML,
use the tested JAX 0.7.1/JAXlib 0.7.1 pair or PyTorch; do not assume the latest JAX
is supported by this PennyLane release. See [device setup](references/devices_backends.md)
for optional plugin versions and their verification limits.

## Workflow

1. Fix the problem convention: feature ordering and label encoding for ML;
   Hamiltonian sign for optimization; units, charge, multiplicity, basis, active
   space and mapping for chemistry.
2. Build a small analytic `default.qubit` circuit. Keep the quantum function
   separate from the QNode when reusing it on another backend.
3. Check a known value and a gradient against an analytic or finite-difference
   result before training. Use trainable `pennylane.numpy` arrays for Autograd,
   framework-native tensors for Torch/JAX.
4. Optimize while recording objective, gradient norm, seeds, ansatz shape and
   package versions. `step_and_cost` returns the cost **before** its update;
   evaluate the objective again for final reporting.
5. Validate independently: held-out examples and classical baselines for ML;
   particle number and a sector-appropriate classical reference for VQE;
   enumerated small instances for QAOA.
6. Introduce finite shots/noise, report uncertainty, inspect decomposed resources,
   then select a current accessible hardware backend and execution budget.
   Plugin portability does not guarantee identical gates, measurements or gradients.

## Quick start: value, gradient and optimization

This self-contained example is executed by the skill's tests.

```python
import pennylane as qml
from pennylane import numpy as np

dev = qml.device("default.qubit", wires=1)

@qml.qnode(dev, interface="autograd", diff_method="backprop")
def energy(theta):
    qml.RY(theta, wires=0)
    return qml.expval(qml.Z(0))

theta = np.array(0.3, requires_grad=True)
assert np.allclose(energy(theta), np.cos(theta))
assert np.allclose(qml.grad(energy)(theta), -np.sin(theta))
opt = qml.GradientDescentOptimizer(stepsize=0.2)
for _ in range(80):
    theta = opt.step(energy, theta)
final_energy = float(energy(theta))
assert final_energy < -0.999
print(f"[OK] final expectation = {final_energy:.6f}")
```

## Load the relevant reference

- [Getting started](references/getting_started.md): QNodes, shots, random streams,
  trainability, batched parameters and simulator selection.
- [Quantum circuits](references/quantum_circuits.md): controls, measurement feedback,
  wire ordering, QFT, transforms and current resource access.
- [Quantum ML](references/quantum_ml.md): executed TorchLayer and JAX training,
  stable classifier loss, feature scaling and evaluation.
- [Quantum chemistry](references/quantum_chemistry.md): H2 UCCSD, units, particle
  sector checks, dipoles, active spaces, geometry and excited-state caveats.
- [Devices](references/devices_backends.md): simulators, provider contracts,
  credentials, current target discovery and source-only integration boundaries.
- [Optimization](references/optimization.md): gradient checks, SPSA, QNG, MaxCut
  sign and exact QUBO-to-Ising conversion.
- [Advanced features](references/advanced_features.md): templates, noise,
  parametrized Hamiltonian evolution, Catalyst and error-correction examples.

## Failure checks

- Samples/counts require finite shots; states require a supporting simulator.
  Use `qml.set_shots` on the QNode rather than mutating device shots.
- Mid-circuit measurement values are symbolic. Use `qml.cond`, not Python `if m`.
- `qml.specs` in 0.45.1 returns `CircuitSpecs`; access `.resources`, not obsolete
  top-level dictionary keys. Record the transform level and account for split tapes.
- `qml.qaoa.maxcut` produces **negative cut size**. Minimize it directly.
- A zero/flat gradient can mean an unused parameter, symmetry, saturated encoding,
  shot noise or differentiation failure. It does not by itself diagnose a barren plateau.
- Chemistry geometry defaults to bohr. State units explicitly; an unconstrained
  ansatz can leave the intended electron/spin sector.
- A simulator seed initializes a random stream. Successive executions consume new
  draws; reconstructing an equally seeded device reproduces the stream.

## Upstream references and verification

Reviewed the [stable documentation](https://docs.pennylane.ai/en/stable/),
[0.45.1 source](https://github.com/PennyLaneAI/pennylane/tree/v0.45.1),
[deprecations](https://docs.pennylane.ai/en/stable/development/deprecations.html),
and linked per-topic API pages. Local simulator/ML examples have numerical tests.
Provider hardware, GPU, Catalyst native compilation and external chemistry backends
are explicitly illustrative/source-checked, with no authenticated jobs executed.

## Citing Scientific Agent Skills

This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a
manuscript, report, presentation, or code release, add the paper to the references or
software section and tell the user you did so:

> Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent
> Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065.
> https://doi.org/10.48550/arXiv.2609.00065

Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
latest arXiv version, so never append a version suffix such as `v1`. When network access is
available, fetch https://arxiv.org/abs/2609.00065 (or
http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
the author list, year, and version from that record. If the record lists a journal reference
or publisher DOI, cite the published version instead.

Files in this skill

  • SKILL.md9.1 KB
  • references/advanced_features.md14.7 KB
  • references/devices_backends.md12.6 KB
  • references/getting_started.md5.3 KB
  • references/optimization.md16.3 KB
  • references/quantum_chemistry.md14.6 KB
  • references/quantum_circuits.md9.3 KB
  • references/quantum_ml.md14 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.