|
| 1 | +\begin{MintedVerbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] |
| 2 | +\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{pennylane}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n+nn}{qml} |
| 3 | +\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{pennylane}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{numpy} \PYG{k}{as} \PYG{n}{np} |
| 4 | +\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{sklearn}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{svm} |
| 5 | + |
| 6 | +\PYG{c+c1}{\PYGZsh{} Example dataset} |
| 7 | +\PYG{n}{X\PYGZus{}train} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(}\PYG{p}{[}\PYG{p}{[}\PYG{l+m+mf}{0.1}\PYG{p}{,} \PYG{l+m+mf}{0.2}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mf}{1.1}\PYG{p}{,} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.4}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mf}{0.0}\PYG{p}{,} \PYG{l+m+mf}{0.9}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mf}{1.0}\PYG{p}{,} \PYG{l+m+mf}{0.5}\PYG{p}{]}\PYG{p}{]}\PYG{p}{)} |
| 8 | +\PYG{n}{Y\PYGZus{}train} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(}\PYG{p}{[}\PYG{o}{+}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{o}{+}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{)} |
| 9 | +\PYG{n}{X\PYGZus{}test} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(}\PYG{p}{[}\PYG{p}{[}\PYG{l+m+mf}{0.2}\PYG{p}{,} \PYG{l+m+mf}{0.1}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mf}{0.9}\PYG{p}{,} \PYG{l+m+mf}{0.0}\PYG{p}{]}\PYG{p}{]}\PYG{p}{)} |
| 10 | + |
| 11 | +\PYG{c+c1}{\PYGZsh{} Define device and feature map} |
| 12 | +\PYG{n}{dev} \PYG{o}{=} \PYG{n}{qml}\PYG{o}{.}\PYG{n}{device}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{default.qubit}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{wires}\PYG{o}{=}\PYG{l+m+mi}{2}\PYG{p}{)} |
| 13 | + |
| 14 | +\PYG{n+nd}{@qml}\PYG{o}{.}\PYG{n}{qnode}\PYG{p}{(}\PYG{n}{dev}\PYG{p}{)} |
| 15 | +\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{kernel\PYGZus{}circuit}\PYG{p}{(}\PYG{n}{x1}\PYG{p}{,} \PYG{n}{x2}\PYG{p}{)}\PYG{p}{:} |
| 16 | + \PYG{n}{qml}\PYG{o}{.}\PYG{n}{templates}\PYG{o}{.}\PYG{n}{AngleEmbedding}\PYG{p}{(}\PYG{n}{x1}\PYG{p}{,} \PYG{n}{wires}\PYG{o}{=}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{)} |
| 17 | + \PYG{n}{qml}\PYG{o}{.}\PYG{n}{adjoint}\PYG{p}{(}\PYG{n}{qml}\PYG{o}{.}\PYG{n}{templates}\PYG{o}{.}\PYG{n}{AngleEmbedding}\PYG{p}{)}\PYG{p}{(}\PYG{n}{x2}\PYG{p}{,} \PYG{n}{wires}\PYG{o}{=}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{)} |
| 18 | + \PYG{k}{return} \PYG{n}{qml}\PYG{o}{.}\PYG{n}{probs}\PYG{p}{(}\PYG{n}{wires}\PYG{o}{=}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{)}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]} |
| 19 | + |
| 20 | +\PYG{n}{kernel} \PYG{o}{=} \PYG{k}{lambda} \PYG{n}{a}\PYG{p}{,} \PYG{n}{b}\PYG{p}{:} \PYG{n}{kernel\PYGZus{}circuit}\PYG{p}{(}\PYG{n}{a}\PYG{p}{,} \PYG{n}{b}\PYG{p}{)} |
| 21 | + |
| 22 | +\PYG{c+c1}{\PYGZsh{} Compute kernel matrices} |
| 23 | +\PYG{n}{K\PYGZus{}train} \PYG{o}{=} \PYG{n}{qml}\PYG{o}{.}\PYG{n}{kernels}\PYG{o}{.}\PYG{n}{kernel\PYGZus{}matrix}\PYG{p}{(}\PYG{n}{X\PYGZus{}train}\PYG{p}{,} \PYG{n}{X\PYGZus{}train}\PYG{p}{,} \PYG{n}{kernel\PYGZus{}function}\PYG{o}{=}\PYG{n}{kernel}\PYG{p}{)} |
| 24 | +\PYG{n}{K\PYGZus{}test} \PYG{o}{=} \PYG{n}{qml}\PYG{o}{.}\PYG{n}{kernels}\PYG{o}{.}\PYG{n}{kernel\PYGZus{}matrix}\PYG{p}{(}\PYG{n}{X\PYGZus{}test}\PYG{p}{,} \PYG{n}{X\PYGZus{}train}\PYG{p}{,} \PYG{n}{kernel\PYGZus{}function}\PYG{o}{=}\PYG{n}{kernel}\PYG{p}{)} |
| 25 | + |
| 26 | +\PYG{c+c1}{\PYGZsh{} Train SVM} |
| 27 | +\PYG{n}{clf} \PYG{o}{=} \PYG{n}{svm}\PYG{o}{.}\PYG{n}{SVC}\PYG{p}{(}\PYG{n}{kernel}\PYG{o}{=}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{precomputed}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)} |
| 28 | +\PYG{n}{clf}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{K\PYGZus{}train}\PYG{p}{,} \PYG{n}{Y\PYGZus{}train}\PYG{p}{)} |
| 29 | +\PYG{n}{predictions} \PYG{o}{=} \PYG{n}{clf}\PYG{o}{.}\PYG{n}{predict}\PYG{p}{(}\PYG{n}{K\PYGZus{}test}\PYG{p}{)} |
| 30 | +\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Predicted labels:}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{predictions}\PYG{p}{)} |
| 31 | + |
| 32 | +\end{MintedVerbatim} |
0 commit comments