\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Queries per second (1/s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot coordinates { (0.4635, 5284.00940823) (0.5692, 4253.26704099) (0.703, 3246.96596352) (0.7304, 2258.25719761) (0.8625, 2011.3806931) (0.8794, 1563.44211155) (0.9389, 1327.17573489) (0.9495, 1120.3554961) (0.9576, 959.986743347) (0.9773, 864.639864636) (0.9815, 778.103664688) (0.9856, 703.332201443) (0.9956, 445.6169935) (0.9957, 426.337927095) (0.9987, 276.774106274) (0.9996, 173.46051305) (1.0, 164.361063092) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot coordinates { (0.5381, 2344.24608664) (0.5453, 2256.25158018) (0.556, 2052.11424859) (0.566, 1980.58655868) (0.5889, 1568.75288697) (0.5966, 1527.57391571) (0.6963, 1318.82251583) (0.7125, 1234.13135102) (0.7367, 1027.41057167) (0.7968, 878.880997787) (0.8095, 840.990861654) (0.8276, 726.706827274) (0.8696, 563.523689053) (0.8817, 550.165805122) (0.8933, 502.060885971) (0.9394, 294.433655722) (0.9442, 282.678680381) (0.9634, 178.055121004) (0.9652, 177.793829212) (0.9803, 109.472143695) (0.9809, 105.277298478) (0.9924, 54.3614930991) (0.993, 49.3904286285) (0.9937, 42.8262456643) (0.9967, 30.3433744947) (0.9968, 22.6506939761) (0.9987, 16.4492513529) (0.9989, 12.4212200719) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Queries per second (1/s) tradeoff - up and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Index size (kB)/Queries per second (s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot coordinates { (0.4635, 447.632056884) (0.5692, 556.111802341) (0.703, 728.462209514) (0.8625, 1175.95441187) (0.9389, 1782.1995519) (0.9773, 2735.5805541) (0.9815, 5105.34544468) (0.9956, 5307.90350122) (0.9986, 8546.77313991) (0.9999, 14562.9907754) (1.0, 24169.2766235) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot coordinates { (0.5381, 838.348845371) (0.5453, 871.044708519) (0.556, 1237.85700613) (0.566, 1282.56146588) (0.6963, 1490.18990532) (0.7125, 2058.30926984) (0.7968, 2236.13436284) (0.8095, 3020.51320154) (0.8696, 3487.51266039) (0.8817, 4617.19717284) (0.8933, 6598.13997179) (0.935, 6746.18754672) (0.9394, 8627.49196851) (0.9618, 11560.5045093) (0.9634, 14266.5034607) (0.9652, 18632.0752226) (0.9803, 20321.0011599) (0.9809, 24128.8866329) (0.9937, 45889.9903439) (0.9968, 86765.3769052) (0.9989, 158220.850176) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Index size (kB)/Queries per second (s) tradeoff - down and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Build time (s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot coordinates { (1.0, 308.52290678) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot coordinates { (0.9937, 197.495103359) (0.9968, 197.495103359) (0.9989, 197.495103359) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Build time (s) tradeoff - down and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Index size (kB) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot coordinates { (1.0, 2365292.0) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot coordinates { (0.9937, 1965296.0) (0.9968, 1965296.0) (0.9989, 1965296.0) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Index size (kB) tradeoff - down and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Epsilon 0.01 Recall }, ylabel={ Queries per second (1/s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot coordinates { (0.4635, 5284.00940823) (0.5692, 4253.26704099) (0.703, 3246.96596352) (0.7304, 2258.25719761) (0.8625, 2011.3806931) (0.8794, 1563.44211155) (0.9389, 1327.17573489) (0.9495, 1120.3554961) (0.9576, 959.986743347) (0.9773, 864.639864636) (0.9815, 778.103664688) (0.9856, 703.332201443) (0.9956, 445.6169935) (0.9957, 426.337927095) (0.9987, 276.774106274) (0.9996, 173.46051305) (1.0, 164.361063092) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot coordinates { (0.6028, 2344.24608664) (0.6112, 2256.25158018) (0.6239, 2052.11424859) (0.6339, 1980.58655868) (0.6587, 1568.75288697) (0.6657, 1527.57391571) (0.7659, 1318.82251583) (0.7812, 1234.13135102) (0.8047, 1027.41057167) (0.858, 878.880997787) (0.8716, 840.990861654) (0.8856, 726.706827274) (0.9196, 563.523689053) (0.93, 550.165805122) (0.937, 502.060885971) (0.9684, 294.433655722) (0.9726, 282.678680381) (0.9842, 178.055121004) (0.9849, 177.793829212) (0.9926, 109.472143695) (0.9936, 96.712557838) (0.9974, 54.3614930991) (0.9979, 49.3904286285) (0.9983, 42.8262456643) (0.9992, 30.3433744947) (0.9994, 26.4911358425) (0.9998, 16.4492513529) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Epsilon 0.01 Recall-Queries per second (1/s) tradeoff - up and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Queries per second (1/s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot [only marks] coordinates { (0.4635, 5284.00940823) (0.5692, 4253.26704099) (0.703, 3246.96596352) (0.5017, 3195.32665924) (0.5966, 2729.60219289) (0.7304, 2258.25719761) (0.8625, 2011.3806931) (0.5171, 2009.15406566) (0.619, 1826.17024908) (0.747, 1589.02297324) (0.8794, 1563.44211155) (0.9389, 1327.17573489) (0.8943, 1234.21378718) (0.9495, 1120.3554961) (0.9576, 959.986743347) (0.9773, 864.639864636) (0.9815, 778.103664688) (0.9856, 703.332201443) (0.9956, 445.6169935) (0.9957, 426.337927095) (0.9954, 425.900207462) (0.9987, 276.774106274) (0.9986, 276.746786334) (0.9987, 267.858869426) (0.9996, 173.46051305) (1.0, 164.361063092) (0.9999, 162.418011278) (1.0, 87.7959350037) (1.0, 81.5725360471) (1.0, 77.3876273422) (1.0, 50.1488856019) (1.0, 45.6947428926) (1.0, 42.5490158504) (1.0, 27.476798675) (1.0, 24.7197526035) (1.0, 22.7375275039) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot [only marks] coordinates { (0.5381, 2344.24608664) (0.5381, 2304.35372617) (0.5453, 2256.25158018) (0.556, 2052.11424859) (0.556, 2046.09477406) (0.566, 1980.58655868) (0.5889, 1568.75288697) (0.5889, 1568.34227318) (0.5966, 1527.57391571) (0.6963, 1318.82251583) (0.7125, 1234.13135102) (0.7367, 1027.41057167) (0.7968, 878.880997787) (0.8095, 840.990861654) (0.8276, 726.706827274) (0.8696, 563.523689053) (0.8817, 550.165805122) (0.8933, 502.060885971) (0.9394, 294.433655722) (0.935, 291.319502517) (0.9442, 282.678680381) (0.9634, 178.055121004) (0.9652, 177.793829212) (0.9618, 170.000885205) (0.9803, 109.472143695) (0.9809, 105.277298478) (0.9803, 96.712557838) (0.9924, 54.3614930991) (0.993, 49.3904286285) (0.9937, 42.8262456643) (0.9967, 30.3433744947) (0.9967, 26.4911358425) (0.9968, 22.6506939761) (0.9987, 16.4492513529) (0.9986, 14.2592603648) (0.9989, 12.4212200719) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Queries per second (1/s) tradeoff - up and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Index size (kB)/Queries per second (s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot [only marks] coordinates { (0.4635, 447.632056884) (0.5692, 556.111802341) (0.703, 728.462209514) (0.8625, 1175.95441187) (0.5017, 1243.21811935) (0.5966, 1455.33587654) (0.7304, 1759.09458153) (0.9389, 1782.1995519) (0.8794, 2540.86030475) (0.9773, 2735.5805541) (0.5171, 3335.84373372) (0.9495, 3545.73884256) (0.619, 3670.09812112) (0.747, 4217.8269999) (0.9815, 5105.34544468) (0.9956, 5307.90350122) (0.8943, 5430.35904285) (0.9576, 6981.57974206) (0.9986, 8546.77313991) (0.9957, 9317.69788128) (0.9856, 9529.24377165) (0.9999, 14562.9907754) (0.9987, 14830.5262712) (0.9954, 15736.6065632) (1.0, 24169.2766235) (0.9987, 24215.5022745) (1.0, 30564.2139607) (0.9996, 38638.3268569) (1.0, 48698.8414545) (1.0, 55589.8168906) (1.0, 76338.6596397) (1.0, 86935.3397904) (1.0, 104025.910451) (1.0, 133646.519151) (1.0, 160700.961038) (1.0, 243923.030454) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot [only marks] coordinates { (0.5381, 838.348845371) (0.5381, 852.862118206) (0.5453, 871.044708519) (0.556, 1237.85700613) (0.556, 1241.49869899) (0.566, 1282.56146588) (0.6963, 1490.18990532) (0.7125, 2058.30926984) (0.5889, 2111.65699042) (0.5889, 2112.20985154) (0.5966, 2168.58115076) (0.7968, 2236.13436284) (0.8095, 3020.51320154) (0.7367, 3224.28841143) (0.8696, 3487.51266039) (0.8276, 4558.46549897) (0.8817, 4617.19717284) (0.8933, 6598.13997179) (0.935, 6746.18754672) (0.9394, 8627.49196851) (0.9618, 11560.5045093) (0.9442, 11718.8462729) (0.9634, 14266.5034607) (0.9652, 18632.0752226) (0.9803, 20321.0011599) (0.9809, 24128.8866329) (0.9803, 30260.3739015) (0.9937, 45889.9903439) (0.993, 51431.5034418) (0.9924, 60937.7669955) (0.9968, 86765.3769052) (0.9967, 95889.5841652) (0.9967, 109172.696022) (0.9989, 158220.850176) (0.9986, 178145.565409) (0.9987, 201387.159144) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Index size (kB)/Queries per second (s) tradeoff - down and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Build time (s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot [only marks] coordinates { (1.0, 308.52290678) (0.9389, 308.52290678) (0.9986, 308.52290678) (0.9773, 308.52290678) (0.9956, 308.52290678) (0.8625, 308.52290678) (0.4635, 308.52290678) (1.0, 308.52290678) (1.0, 308.52290678) (0.5692, 308.52290678) (0.9999, 308.52290678) (0.703, 308.52290678) (0.8794, 598.344015598) (0.9495, 598.344015598) (0.5966, 598.344015598) (1.0, 598.344015598) (1.0, 598.344015598) (1.0, 598.344015598) (0.9957, 598.344015598) (0.7304, 598.344015598) (0.5017, 598.344015598) (1.0, 598.344015598) (0.9987, 598.344015598) (0.9815, 598.344015598) (0.8943, 1128.99820828) (0.9856, 1128.99820828) (1.0, 1128.99820828) (0.9576, 1128.99820828) (1.0, 1128.99820828) (0.9996, 1128.99820828) (0.9987, 1128.99820828) (0.619, 1128.99820828) (0.9954, 1128.99820828) (1.0, 1128.99820828) (0.5171, 1128.99820828) (0.747, 1128.99820828) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot [only marks] coordinates { (0.9937, 197.495103359) (0.7968, 197.495103359) (0.9618, 197.495103359) (0.8696, 197.495103359) (0.935, 197.495103359) (0.6963, 197.495103359) (0.5381, 197.495103359) (0.9968, 197.495103359) (0.9989, 197.495103359) (0.5381, 197.495103359) (0.9803, 197.495103359) (0.5453, 197.495103359) (0.7125, 376.213864803) (0.8095, 376.213864803) (0.556, 376.213864803) (0.993, 376.213864803) (0.9986, 376.213864803) (0.9967, 376.213864803) (0.9394, 376.213864803) (0.566, 376.213864803) (0.556, 376.213864803) (0.9809, 376.213864803) (0.9634, 376.213864803) (0.8817, 376.213864803) (0.7367, 741.696753979) (0.8933, 741.696753979) (0.9987, 741.696753979) (0.8276, 741.696753979) (0.9967, 741.696753979) (0.9803, 741.696753979) (0.9652, 741.696753979) (0.5889, 741.696753979) (0.9442, 741.696753979) (0.9924, 741.696753979) (0.5889, 741.696753979) (0.5966, 741.696753979) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Build time (s) tradeoff - down and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Recall }, ylabel={ Index size (kB) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot [only marks] coordinates { (1.0, 2365292.0) (0.9389, 2365292.0) (0.9986, 2365292.0) (0.9773, 2365292.0) (0.9956, 2365292.0) (0.8625, 2365292.0) (0.4635, 2365292.0) (1.0, 2365292.0) (1.0, 2365292.0) (0.5692, 2365292.0) (0.9999, 2365292.0) (0.703, 2365292.0) (0.8794, 3972488.0) (0.9495, 3972488.0) (0.5966, 3972488.0) (1.0, 3972488.0) (1.0, 3972488.0) (1.0, 3972488.0) (0.9957, 3972488.0) (0.7304, 3972488.0) (0.5017, 3972488.0) (1.0, 3972488.0) (0.9987, 3972488.0) (0.9815, 3972488.0) (0.8943, 6702224.0) (0.9856, 6702224.0) (1.0, 6702224.0) (0.9576, 6702224.0) (1.0, 6702224.0) (0.9996, 6702224.0) (0.9987, 6702224.0) (0.619, 6702224.0) (0.9954, 6702224.0) (1.0, 6702224.0) (0.5171, 6702224.0) (0.747, 6702224.0) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot [only marks] coordinates { (0.9937, 1965296.0) (0.7968, 1965296.0) (0.9618, 1965296.0) (0.8696, 1965296.0) (0.935, 1965296.0) (0.6963, 1965296.0) (0.5381, 1965296.0) (0.9968, 1965296.0) (0.9989, 1965296.0) (0.5381, 1965296.0) (0.9803, 1965296.0) (0.5453, 1965296.0) (0.7125, 2540224.0) (0.8095, 2540224.0) (0.556, 2540224.0) (0.993, 2540224.0) (0.9986, 2540224.0) (0.9967, 2540224.0) (0.9394, 2540224.0) (0.566, 2540224.0) (0.556, 2540224.0) (0.9809, 2540224.0) (0.9634, 2540224.0) (0.8817, 2540224.0) (0.7367, 3312668.0) (0.8933, 3312668.0) (0.9987, 3312668.0) (0.8276, 3312668.0) (0.9967, 3312668.0) (0.9803, 3312668.0) (0.9652, 3312668.0) (0.5889, 3312668.0) (0.9442, 3312668.0) (0.9924, 3312668.0) (0.5889, 3312668.0) (0.5966, 3312668.0) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Recall-Index size (kB) tradeoff - down and to the right is better } \label{} \end{figure}
\begin{figure} \centering \begin{tikzpicture} \begin{axis}[ xlabel={ Epsilon 0.01 Recall }, ylabel={ Queries per second (1/s) }, ymode = log, yticklabel style={/pgf/number format/fixed, /pgf/number format/precision=3}, legend style = { anchor=west}, cycle list name = black white ] \addplot [only marks] coordinates { (0.4635, 5284.00940823) (0.5692, 4253.26704099) (0.703, 3246.96596352) (0.5017, 3195.32665924) (0.5966, 2729.60219289) (0.7304, 2258.25719761) (0.8625, 2011.3806931) (0.5171, 2009.15406566) (0.619, 1826.17024908) (0.747, 1589.02297324) (0.8794, 1563.44211155) (0.9389, 1327.17573489) (0.8943, 1234.21378718) (0.9495, 1120.3554961) (0.9576, 959.986743347) (0.9773, 864.639864636) (0.9815, 778.103664688) (0.9856, 703.332201443) (0.9956, 445.6169935) (0.9957, 426.337927095) (0.9954, 425.900207462) (0.9987, 276.774106274) (0.9986, 276.746786334) (0.9987, 267.858869426) (0.9996, 173.46051305) (1.0, 164.361063092) (0.9999, 162.418011278) (1.0, 87.7959350037) (1.0, 81.5725360471) (1.0, 77.3876273422) (1.0, 50.1488856019) (1.0, 45.6947428926) (1.0, 42.5490158504) (1.0, 27.476798675) (1.0, 24.7197526035) (1.0, 22.7375275039) }; \addlegendentry{ sift-256-hamming (k = 10) }; \addplot [only marks] coordinates { (0.6028, 2344.24608664) (0.6028, 2304.35372617) (0.6112, 2256.25158018) (0.6239, 2052.11424859) (0.6239, 2046.09477406) (0.6339, 1980.58655868) (0.6587, 1568.75288697) (0.6587, 1568.34227318) (0.6657, 1527.57391571) (0.7659, 1318.82251583) (0.7812, 1234.13135102) (0.8047, 1027.41057167) (0.858, 878.880997787) (0.8716, 840.990861654) (0.8856, 726.706827274) (0.9196, 563.523689053) (0.93, 550.165805122) (0.937, 502.060885971) (0.9684, 294.433655722) (0.966, 291.319502517) (0.9726, 282.678680381) (0.9842, 178.055121004) (0.9849, 177.793829212) (0.9834, 170.000885205) (0.9926, 109.472143695) (0.9925, 105.277298478) (0.9936, 96.712557838) (0.9974, 54.3614930991) (0.9979, 49.3904286285) (0.9983, 42.8262456643) (0.9992, 30.3433744947) (0.9994, 26.4911358425) (0.9993, 22.6506939761) (0.9998, 16.4492513529) (0.9997, 14.2592603648) (0.9998, 12.4212200719) }; \addlegendentry{ word2bits-800-hamming (k = 10) }; \end{axis} \end{tikzpicture} \caption{ Epsilon 0.01 Recall-Queries per second (1/s) tradeoff - up and to the right is better } \label{} \end{figure}
ANN-Benchmarks has been developed by Martin Aumueller ([email protected]), Erik Bernhardsson ([email protected]), and Alec Faitfull ([email protected]). Please use Github to submit your implementation or improvements.