Spin-up/spin-down measurement probabilities on rotated qubit
Spin-up/spin-down measurement probabilities on rotated qubit
In[]:=
Pu[θ_]:=;Pd[θ_]:=1-Pu[θ]
2
Cos
θ
2
In[]:=
FullSimplify[Pu[θ]+Pd[θ]]
Out[]=
1
Discretize rotation angles
Discretize rotation angles
In[]:=
theta=Tableθ,θ,,π,
π
20
π
20
Out[]=
,,,,,,,,,,,,,,,,,,,π
π
20
π
10
3π
20
π
5
π
4
3π
10
7π
20
2π
5
9π
20
π
2
11π
20
3π
5
13π
20
7π
10
3π
4
4π
5
17π
20
9π
10
19π
20
Form One-hot vectors from grid theta values
Form One-hot vectors from grid theta values
In[]:=
numBins=Length[theta];binToOneHot[bins_List,totalBins_Integer]:=Table[If[i==#,1,0],{i,1,totalBins}]&/@binsbins=Range[numBins];oneHotEncoded=binToOneHot[bins,Length[theta]]
Evaluate measurement probabilities for each grid theta value
Evaluate measurement probabilities for each grid theta value
In[]:=
pr=TableList[N[FullSimplify[Re[Pu[θ]]]],N[FullSimplify[Re[Pd[θ]]]]],θ,,π,
π
20
π
20
Generate measurement outcomes for each θj (with random number generator)
Generate measurement outcomes for each (with random number generator)
θ
j
Number of measurements for each :
θ
j
In[]:=
m=10;
In[]:=
meas=Table[{},{Length[pr]}];Table[Do[b=ConstantArray[0,1];Clear[r];updateTally[]:=Block[{r},r=RandomReal[];If[r<pr[[j]][[1]],b[[1]]+=1,If[pr[[j]][[1]]<=r<pr[[j]][[1]]+pr[[j]][[2]],b[[1]]+=0]]];Do[updateTally[],{1}];AppendTo[meas[[j]],b],{i,1,m}],{j,Length[pr]}];
In[]:=
meas=Partition[Flatten[meas],10]
In[]:=
trainingData=Rule@@@Transpose[{meas,oneHotEncoded}]
Neural network architecture
Neural network architecture
In[]:=
net=NetChain[{LinearLayer[4],ElementwiseLayer["ReLU"],LinearLayer[20],SoftmaxLayer[]}];
Training the network
Training the network
In[]:=
trainedNet=NetTrain[net,trainingData,MaxTrainingRounds->1]
Out[]=
NetChain
Generate a set of test measurements (with random number generator)
Generate a set of test measurements (with random number generator)
In[]:=
(*trainedNet/@meas*)
