ad_hoc_data(...) 导致 test_input 作为数组而不是字典

问题描述

  • qiskit 版本:0.18.0
  • numpy 版本:1.21.1
  • qiskit_machine_learning 版本:0.2.0
  • qiskit.aqua 版本:0.9.4

我正在尝试运行 Qiskit 机器学习教程中描述的简单代码

feature_dim=2
training_dataset_size=20
testing_dataset_size=10
random_seed=10598
shots=10000

sample_Total,training_input,test_input,class_labels = 
ad_hoc_data(training_size=training_dataset_size,test_size=testing_dataset_size,gap=0.3,n=feature_dim,plot_data=True)
datapoints,class_to_label=split_dataset_to_data_and_labels(test_input)

但我收到错误

AttributeError                            Traceback (most recent call last)
<ipython-input-11-f11e4f763266> in <module>
     10                                                                n=feature_dim,11                                                                plot_data=True)
---> 12 datapoints,class_to_label=split_dataset_to_data_and_labels(test_input)
   

~\anaconda3\lib\site-packages\qiskit\aqua\utils\dataset_helper.py in split_dataset_to_data_and_labels(dataset,class_names)
     83     labels = []
     84     if class_names is None:
---> 85         sorted_classes_name = sorted(list(dataset.keys()))
     86         class_to_label = {k: idx for idx,k in enumerate(sorted_classes_name)}
     87     else:

AttributeError: 'numpy.ndarray' object has no attribute 'keys'

据此我假设(并通过打印进行检查)ad_hoc_data(...) 导致 test_input 为 numpy.ndarray 类型,而不是预期的 dict 类型。>

在这里遗漏了一些微不足道的东西,还是代码存在实际问题?

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)