Я использую qiskit 1.2.2m и получаю эту ошибку
AttributeError Traceback (последний вызов последний)
в ()
88
89 # Вычисление квантового ядра
---> 90 Quantum_kernel_train = Compute_quantum_kernel(X_train, X_train, Feature_map, Backend, Batch_size)
91 Quantum_kernel_test = Compute_quantum_kernel(X_test, X_train, Feature_map, Backend, Batch_size) )
92
в Compute_quantum_kernel(X1, X2, Feature_map, Backend, Batch_size)
73 для k, схема в Enumerate(qc_list):
74 Circuit_result = job.result()[k] # Результат доступа для каждой схемы
---> 75 statevector = Circuit_result.get_statevector(circuit) # Получить вектор состояния из схемы
76 statevector1 = np.abs(statevector ) ** 2
77 qc2 = QuantumCircuit(feature_map.num_qubits)
AttributeError: объект «SamplerPubResult» не имеет атрибута «get_statevector»
Вот мой код
import pandas as pd
import numpy as np
import joblib
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
from qiskit_aer import Aer # Import Aer for simulator backend
from qiskit.primitives import StatevectorSampler # Import StatevectorSampler from qiskit.primitives
from qiskit.circuit.library import ZZFeatureMap
from qiskit import QuantumCircuit, transpile
import matplotlib.pyplot as plt
# Load data
data = pd.read_csv("/content/drive/MyDrive/dataset/x.csv")
# Convert 'timestamp' to datetime format
data["timestamp"] = pd.to_datetime(data["timestamp"])
data.set_index("timestamp", inplace=True)
# Select relevant features and target variable
features = ["open", "high", "low", "close", "volume"]
target = "close"
X = data[features]
y = data[target]
# Convert target to binary classification
y_binary = (y.shift(-1) > y).astype(int).dropna()
X = X.iloc[:-1] # Align X with y_binary
# Normalize features
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
y_binary = y_binary.iloc[:-1] # Ensure alignment
# Train/test split
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y_binary, test_size=0.2, shuffle=False)
X_train = X_train[:50] # Limit to 50 samples for training
y_train = y_train[:50]
X_test = X_test[:20] # Limit to 20 samples for testing
y_test = y_test[:20]
# Define feature map for quantum kernel
feature_map = ZZFeatureMap(feature_dimension=X_train.shape[1], reps=2, entanglement="full")
# Quantum backend (simulator)
backend = Aer.get_backend("aer_simulator")
batch_size = 100 # Adjust batch size
def compute_quantum_kernel(X1, X2, feature_map, backend, batch_size):
"""Compute quantum kernel using statevector similarity."""
num_samples1 = X1.shape[0]
num_samples2 = X2.shape[0]
kernel_matrix = np.zeros((num_samples1, num_samples2))
sampler = StatevectorSampler() # Updated sampler class for Qiskit 1.2.2
for i in range(0, num_samples1, batch_size):
end_i = min(i + batch_size, num_samples1)
for j in range(num_samples2):
qc_list = []
for k in range(i, end_i):
qc = QuantumCircuit(feature_map.num_qubits)
qc.append(feature_map, range(feature_map.num_qubits))
qc = qc.assign_parameters(X1[k])
# Add measurement instructions
qc.measure_all() # Measure all qubits
qc_list.append(qc)
transpiled_qc_list = transpile(qc_list, backend)
job = sampler.run(transpiled_qc_list)
for k, circuit in enumerate(qc_list):
statevector = sampler.get_statevector(circuit) # Get statevector for each circuit
statevector1 = np.abs(statevector.data) ** 2
qc2 = QuantumCircuit(feature_map.num_qubits)
qc2.append(feature_map, range(feature_map.num_qubits))
qc2 = qc2.assign_parameters(X2[j])
qc2.measure_all() # Measure all qubits
transpiled_qc2 = transpile(qc2, backend)
job2 = sampler.run([transpiled_qc2])
result2 = job2.result()
statevector2 = np.abs(result2.statevectors[0].data) ** 2
kernel_matrix[i + k, j] = np.abs(np.dot(statevector1, statevector2)) ** 2
return kernel_matrix
# Compute quantum kernel
quantum_kernel_train = compute_quantum_kernel(X_train, X_train, feature_map, backend, batch_size)
quantum_kernel_test = compute_quantum_kernel(X_test, X_train, feature_map, backend, batch_size)
# Train SVM with quantum kernel
svm = SVC(kernel='precomputed')
svm.fit(quantum_kernel_train, y_train)
# Save model
joblib.dump(svm, 'svm_model.joblib')
# Predict and evaluate
y_pred = svm.predict(quantum_kernel_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model accuracy: {accuracy:.2f}")
# Plot results
plt.figure(figsize=(10, 6))
plt.plot(y_test.reset_index(drop=True), label='True Prices', color='blue')
plt.plot(y_pred, label='Predicted Prices', color='orange')
plt.title('True vs Predicted Prices')
plt.xlabel('Sample Index')
plt.ylabel('Price Direction')
plt.legend()
plt.grid()
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/790 ... -statevect
Qiskit AttributeError: объект «SamplerPubResult» не имеет атрибута «get_statevector» ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Qiskit AttributeError: объект «SamplerPubResult» не имеет атрибута «get_statevector»
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема с импортом библиотек на qiskit (python) python и проблемой импорта из qiskit
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
AttributeError: объект «функция» не имеет атрибута «get» при тестировании запросов Flask.
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-