I've already generated a filter for readout error mitigation:
cal_results = cal_job.result()
meas_fitter = CompleteMeasFitter(cal_results, state_labels)
fig, ax = plt.subplots(figsize=(10, 10))
meas_fitter.plot_calibration(ax)
meas_filter = meas_fitter.filter
I have a set of circuits executed using the IBM job manager, the list is called all_circuits
. After transpling the list, I tried:
MExperiments = job_manager.run(all_circuits, backend=backend, shots = nshots)
results = MExperiments.results()
**mitigated_results = meas_filter.apply(results)**
I'm hoping to use the filter to mitigate the errors for each circuit in the list, but the last line doesn't quite work. It shows me
QiskitError: 'Unrecognized type for raw_data.'
How can I fix this issue? Thanks:)
$\rule{4cm}{0.4pt}$
PS: From the tutorial, there're 4 types of raw data that match the requirement:
Form1: A counts dictionary from results.get_counts,
Form2: A list of counts of length=len(state_labels),
Form3: A list of counts of length=M*len(state_labels) where M is an integer (e.g. for use with the tomography data),
Form4: A qiskit Result.
I'm not pretty sure why the results
in my code doesn't fit any one of them.
type(results)
to find out whyresults
doesn't fit any of the four allowed types. This may also give you ideas about how to convert the value to whateverapply
expects. $\endgroup$'qiskit.providers.ibmq.managed.managedresults.ManagedResults'
It looks like the parameters forapply
should be a dictionary or list. I'm not pretty sure how I can convert theresults
$\endgroup$