🛠️ Pennylane
量子コンピューター上で機械学習を行うためのフレームワーク
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Hardware-agnostic quantum ML framework with automatic differentiation. Use when training quantum circuits via gradients, building hybrid quantum-classical models, or needing device portability across IBM/Google/Rigetti/IonQ. Best for variational algorithms (VQE, QAOA), quantum neural networks, and integration with PyTorch/JAX/TensorFlow. For hardware-specific optimizations use qiskit (IBM) or cirq (Google); for open quantum systems use qutip.
🇯🇵 日本人クリエイター向け解説
量子コンピューター上で機械学習を行うためのフレームワーク
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o pennylane.zip https://jpskill.com/download/4203.zip && unzip -o pennylane.zip && rm pennylane.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/4203.zip -OutFile "$d\pennylane.zip"; Expand-Archive "$d\pennylane.zip" -DestinationPath $d -Force; ri "$d\pennylane.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
pennylane.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
pennylaneフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-18
- 同梱ファイル
- 8
💬 こう話しかけるだけ — サンプルプロンプト
- › Pennylane を使って、最小構成のサンプルコードを示して
- › Pennylane の主な使い方と注意点を教えて
- › Pennylane を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
PennyLane
概要
PennyLaneは、ニューラルネットワークのように量子コンピューターをトレーニングできる量子コンピューティングライブラリです。量子回路の自動微分、デバイスに依存しないプログラミング、および古典的な機械学習フレームワークとのシームレスな統合を提供します。
インストール
uv を使用してインストールします。
uv pip install pennylane
量子ハードウェアにアクセスするには、デバイスプラグインをインストールします。
# IBM Quantum
uv pip install pennylane-qiskit
# Amazon Braket
uv pip install amazon-braket-pennylane-plugin
# Google Cirq
uv pip install pennylane-cirq
# Rigetti Forest
uv pip install pennylane-rigetti
# IonQ
uv pip install pennylane-ionq
クイックスタート
量子回路を構築し、そのパラメーターを最適化します。
import pennylane as qml
from pennylane import numpy as np
# Create device
dev = qml.device('default.qubit', wires=2)
# Define quantum circuit
@qml.qnode(dev)
def circuit(params):
qml.RX(params[0], wires=0)
qml.RY(params[1], wires=1)
qml.CNOT(wires=[0, 1])
return qml.expval(qml.PauliZ(0))
# Optimize parameters
opt = qml.GradientDescentOptimizer(stepsize=0.1)
params = np.array([0.1, 0.2], requires_grad=True)
for i in range(100):
params = opt.step(circuit, params)
主要な機能
1. 量子回路の構築
ゲート、測定、状態準備を使用して回路を構築します。詳細については、references/quantum_circuits.md を参照してください。
- シングルおよびマルチキュービットゲート
- 制御操作と条件付きロジック
- 回路途中での測定と適応型回路
- さまざまな測定タイプ(期待値、確率、サンプル)
- 回路の検査とデバッグ
2. 量子機械学習
ハイブリッド量子古典モデルを作成します。詳細については、references/quantum_ml.md を参照してください。
- PyTorch、JAX、TensorFlowとの統合
- 量子ニューラルネットワークと変分分類器
- データエンコーディング戦略(角度、振幅、基底、IQP)
- バックプロパゲーションによるハイブリッドモデルのトレーニング
- 量子回路による転移学習
3. 量子化学
分子をシミュレートし、基底状態エネルギーを計算します。詳細については、references/quantum_chemistry.md を参照してください。
- 分子ハミルトニアンの生成
- 変分量子固有値ソルバー (VQE)
- 化学のためのUCCSDアンザッツ
- ジオメトリ最適化と解離曲線
- 分子特性計算
4. デバイス管理
シミュレーターまたは量子ハードウェアで実行します。詳細については、references/devices_backends.md を参照してください。
- 組み込みシミュレーター (default.qubit, lightning.qubit, default.mixed)
- ハードウェアプラグイン (IBM, Amazon Braket, Google, Rigetti, IonQ)
- デバイスの選択と構成
- パフォーマンス最適化とキャッシング
- GPUアクセラレーションとJITコンパイル
5. 最適化
さまざまなオプティマイザーで量子回路をトレーニングします。詳細については、references/optimization.md を参照してください。
- 組み込みオプティマイザー (Adam, 勾配降下法, モーメンタム, RMSProp)
- 勾配計算方法 (バックプロパゲーション, パラメーターシフト, アジョイント)
- 変分アルゴリズム (VQE, QAOA)
- トレーニング戦略 (学習率スケジュール, ミニバッチ)
- バレンプラトーと局所最適解の処理
6. 高度な機能
テンプレート、変換、コンパイルを活用します。詳細については、references/advanced_features.md を参照してください。
- 回路テンプレートとレイヤー
- 変換と回路最適化
- パルスレベルプログラミング
- Catalyst JITコンパイル
- ノイズモデルとエラー軽減
- リソース推定
一般的なワークフロー
変分分類器のトレーニング
# 1. Define ansatz
@qml.qnode(dev)
def classifier(x, weights):
# Encode data
qml.AngleEmbedding(x, wires=range(4))
# Variational layers
qml.StronglyEntanglingLayers(weights, wires=range(4))
return qml.expval(qml.PauliZ(0))
# 2. Train
opt = qml.AdamOptimizer(stepsize=0.01)
weights = np.random.random((3, 4, 3)) # 3 layers, 4 wires
for epoch in range(100):
for x, y in zip(X_train, y_train):
weights = opt.step(lambda w: (classifier(x, w) - y)**2, weights)
分子基底状態のためのVQEの実行
from pennylane import qchem
# 1. Build Hamiltonian
symbols = ['H', 'H']
coords = np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.74])
H, n_qubits = qchem.molecular_hamiltonian(symbols, coords)
# 2. Define ansatz
@qml.qnode(dev)
def vqe_circuit(params):
qml.BasisState(qchem.hf_state(2, n_qubits), wires=range(n_qubits))
qml.UCCSD(params, wires=range(n_qubits))
return qml.expval(H)
# 3. Optimize
opt = qml.AdamOptimizer(stepsize=0.1)
params = np.zeros(10, requires_grad=True)
for i in range(100):
params, energy = opt.step_and_cost(vqe_circuit, params)
print(f"Step {i}: Energy = {energy:.6f} Ha")
デバイス間の切り替え
# Same circuit, different backends
circuit_def = lambda dev: qml.qnode(dev)(circuit_function)
# Test on simulator
dev_sim = qml.device('default.qubit', wires=4)
result_sim = circuit_def(dev_sim)(params)
# Run on quantum hardware
dev_hw = qml.device('qiskit.ibmq', wires=4, backend='ibmq_manila')
result_hw = circuit_def(dev_hw)(params)
詳細なドキュメント
特定のトピックに関する包括的な情報については、以下のリファレンスファイルを参照してください。
- はじめに:
references/getting_started.md- インストール、基本概念、最初のステップ - 量子回路:
references/quantum_circuits.md- ゲート、測定、回路パターン - 量子ML:
references/quantum_ml.md- ハイブリッドモデル、フレームワーク統合、QNN - 量子化学:
references/quantum_chemistry.md- VQE、分子ハミルトニアン、化学ワークフロー - デバイス:
references/devices_backends.md- シミュレーター、ハードウェアプラグイン、デバイス構成 - 最適化:
references/optimization.md- オプティマイザー、勾配、変分アルゴリズム - 高度な機能:
references/advanced_features.md- テンプレート、変換、JITコンパイル、ノイズ
ベストプラクティス
- シミュレーターから始める - ハードウェアにデプロイする前に
default.qubitでテストします。 - ハードウェアにはパラメーターシフトを使用する - バックプロパゲーションはシミュレーターでのみ機能します。
- 適切なエンコーディングを選択する - データエンコーディングを一致させます。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
PennyLane
Overview
PennyLane is a quantum computing library that enables training quantum computers like neural networks. It provides automatic differentiation of quantum circuits, device-independent programming, and seamless integration with classical machine learning frameworks.
Installation
Install using uv:
uv pip install pennylane
For quantum hardware access, install device plugins:
# IBM Quantum
uv pip install pennylane-qiskit
# Amazon Braket
uv pip install amazon-braket-pennylane-plugin
# Google Cirq
uv pip install pennylane-cirq
# Rigetti Forest
uv pip install pennylane-rigetti
# IonQ
uv pip install pennylane-ionq
Quick Start
Build a quantum circuit and optimize its parameters:
import pennylane as qml
from pennylane import numpy as np
# Create device
dev = qml.device('default.qubit', wires=2)
# Define quantum circuit
@qml.qnode(dev)
def circuit(params):
qml.RX(params[0], wires=0)
qml.RY(params[1], wires=1)
qml.CNOT(wires=[0, 1])
return qml.expval(qml.PauliZ(0))
# Optimize parameters
opt = qml.GradientDescentOptimizer(stepsize=0.1)
params = np.array([0.1, 0.2], requires_grad=True)
for i in range(100):
params = opt.step(circuit, params)
Core Capabilities
1. Quantum Circuit Construction
Build circuits with gates, measurements, and state preparation. See references/quantum_circuits.md for:
- Single and multi-qubit gates
- Controlled operations and conditional logic
- Mid-circuit measurements and adaptive circuits
- Various measurement types (expectation, probability, samples)
- Circuit inspection and debugging
2. Quantum Machine Learning
Create hybrid quantum-classical models. See references/quantum_ml.md for:
- Integration with PyTorch, JAX, TensorFlow
- Quantum neural networks and variational classifiers
- Data encoding strategies (angle, amplitude, basis, IQP)
- Training hybrid models with backpropagation
- Transfer learning with quantum circuits
3. Quantum Chemistry
Simulate molecules and compute ground state energies. See references/quantum_chemistry.md for:
- Molecular Hamiltonian generation
- Variational Quantum Eigensolver (VQE)
- UCCSD ansatz for chemistry
- Geometry optimization and dissociation curves
- Molecular property calculations
4. Device Management
Execute on simulators or quantum hardware. See references/devices_backends.md for:
- Built-in simulators (default.qubit, lightning.qubit, default.mixed)
- Hardware plugins (IBM, Amazon Braket, Google, Rigetti, IonQ)
- Device selection and configuration
- Performance optimization and caching
- GPU acceleration and JIT compilation
5. Optimization
Train quantum circuits with various optimizers. See references/optimization.md for:
- Built-in optimizers (Adam, gradient descent, momentum, RMSProp)
- Gradient computation methods (backprop, parameter-shift, adjoint)
- Variational algorithms (VQE, QAOA)
- Training strategies (learning rate schedules, mini-batches)
- Handling barren plateaus and local minima
6. Advanced Features
Leverage templates, transforms, and compilation. See references/advanced_features.md for:
- Circuit templates and layers
- Transforms and circuit optimization
- Pulse-level programming
- Catalyst JIT compilation
- Noise models and error mitigation
- Resource estimation
Common Workflows
Train a Variational Classifier
# 1. Define ansatz
@qml.qnode(dev)
def classifier(x, weights):
# Encode data
qml.AngleEmbedding(x, wires=range(4))
# Variational layers
qml.StronglyEntanglingLayers(weights, wires=range(4))
return qml.expval(qml.PauliZ(0))
# 2. Train
opt = qml.AdamOptimizer(stepsize=0.01)
weights = np.random.random((3, 4, 3)) # 3 layers, 4 wires
for epoch in range(100):
for x, y in zip(X_train, y_train):
weights = opt.step(lambda w: (classifier(x, w) - y)**2, weights)
Run VQE for Molecular Ground State
from pennylane import qchem
# 1. Build Hamiltonian
symbols = ['H', 'H']
coords = np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.74])
H, n_qubits = qchem.molecular_hamiltonian(symbols, coords)
# 2. Define ansatz
@qml.qnode(dev)
def vqe_circuit(params):
qml.BasisState(qchem.hf_state(2, n_qubits), wires=range(n_qubits))
qml.UCCSD(params, wires=range(n_qubits))
return qml.expval(H)
# 3. Optimize
opt = qml.AdamOptimizer(stepsize=0.1)
params = np.zeros(10, requires_grad=True)
for i in range(100):
params, energy = opt.step_and_cost(vqe_circuit, params)
print(f"Step {i}: Energy = {energy:.6f} Ha")
Switch Between Devices
# Same circuit, different backends
circuit_def = lambda dev: qml.qnode(dev)(circuit_function)
# Test on simulator
dev_sim = qml.device('default.qubit', wires=4)
result_sim = circuit_def(dev_sim)(params)
# Run on quantum hardware
dev_hw = qml.device('qiskit.ibmq', wires=4, backend='ibmq_manila')
result_hw = circuit_def(dev_hw)(params)
Detailed Documentation
For comprehensive coverage of specific topics, consult the reference files:
- Getting started:
references/getting_started.md- Installation, basic concepts, first steps - Quantum circuits:
references/quantum_circuits.md- Gates, measurements, circuit patterns - Quantum ML:
references/quantum_ml.md- Hybrid models, framework integration, QNNs - Quantum chemistry:
references/quantum_chemistry.md- VQE, molecular Hamiltonians, chemistry workflows - Devices:
references/devices_backends.md- Simulators, hardware plugins, device configuration - Optimization:
references/optimization.md- Optimizers, gradients, variational algorithms - Advanced:
references/advanced_features.md- Templates, transforms, JIT compilation, noise
Best Practices
- Start with simulators - Test on
default.qubitbefore deploying to hardware - Use parameter-shift for hardware - Backpropagation only works on simulators
- Choose appropriate encodings - Match data encoding to problem structure
- Initialize carefully - Use small random values to avoid barren plateaus
- Monitor gradients - Check for vanishing gradients in deep circuits
- Cache devices - Reuse device objects to reduce initialization overhead
- Profile circuits - Use
qml.specs()to analyze circuit complexity - Test locally - Validate on simulators before submitting to hardware
- Use templates - Leverage built-in templates for common circuit patterns
- Compile when possible - Use Catalyst JIT for performance-critical code
Resources
- Official documentation: https://docs.pennylane.ai
- Codebook (tutorials): https://pennylane.ai/codebook
- QML demonstrations: https://pennylane.ai/qml/demonstrations
- Community forum: https://discuss.pennylane.ai
- GitHub: https://github.com/PennyLaneAI/pennylane
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (7,397 bytes)
- 📎 references/advanced_features.md (14,984 bytes)
- 📎 references/devices_backends.md (13,079 bytes)
- 📎 references/getting_started.md (5,097 bytes)
- 📎 references/optimization.md (16,696 bytes)
- 📎 references/quantum_chemistry.md (14,438 bytes)
- 📎 references/quantum_circuits.md (9,395 bytes)
- 📎 references/quantum_ml.md (14,532 bytes)