I am following the tutorial given in qiskit's website Neural Network Classifier and Regressor. In the first part, classification, the third section refers to qiskit's VQC library. Everything works fine with the given X and y where there are only two classes. I modified the X and y slightly to include four classes instead of two using the following lines:
num_inputs = 2 num_samples = 100 X = 2*np.random.rand(num_samples, num_inputs) - 1 y = np.random.choice([0,1,2,3], 100) y_one_hot = np.zeros(( num_samples, 4 )) for i in range(len(y)): y_one_hot[i, y[i]]=1
The rest of the code is untouched. VQC with ZZFeatureMap, RealAmplitudes ansatz, cross_entropy loss function and COBYLA() optimizer. However, when I try to fit with this new data, the classifier is only running for 5 iterations and the weights are not being changed at all. The loss or objection function's value is always calculated as "nan".
There is a similar question I had posted about weights not being optimized with VQC, but then I thought it was because of my data or VQC's configuration. After trying this example, I realised it is clearly to do something with multiple classes and not just the classifier's configuration.
Please shine light on how to do multi-class classification using the qiskit's VQC library.