In [1]:
%load_ext autoreload
%autoreload 2
import vislab.searchable_collection
import vislab.datasets
import caffe
import cPickle
import os
from sklearn.metrics import euclidean_distances
import pandas as pd
import numpy as np
from sklearn.utils.extmath import safe_sparse_dot, row_norms

In [2]:
df = vislab.datasets.flickr.get_df()

In [3]:
os.chdir(os.path.expanduser('~/work/vislab-git'))
weights = cPickle.load(open('data/shared/flickr_finetune_weights.pickle'))['caffe fc7']
feats = pd.read_hdf(vislab.config['paths']['feats'] + '/flickr/caffe_fc7.h5', 'df')
feats = feats.values

In [4]:
S = np.cov(weights.T)
Si = np.linalg.inv(S)

In [20]:
W = weights.T
W -= W.mean(1)[:, None]
cov = np.dot(W, W.T)
cov2 = np.cov(W)
import matplotlib.pyplot as plt
%matplotlib inline
plt.matshow(cov[:10, :10])


Out[20]:
<matplotlib.image.AxesImage at 0x125eb2250>

In [21]:
plt.matshow(cov2[:10, :10])


Out[21]:
<matplotlib.image.AxesImage at 0x125fcf650>

In [22]:
feats = feats[:10000]

In [ ]:
feats2 = feats[:1000]
# TOO SLOW!
#sklearn.metrics.pairwise.pairwise_distances(feats2, metric='mahalanobis', n_jobs=-2)

In [24]:
print weights.shape
print W.shape
print feats.shape


(20, 4096)
(4096, 20)
(10000, 4096)

In [127]:
feat = feats[0]
dists_e = euclidean_distances(feat, feats, squared=True).flatten()
print dists_e


[     0.          16291.73046875  13379.70703125 ...,  17505.984375
  19542.18359375  15655.1171875 ]

In [61]:
dists_e2 = np.array([np.dot(feats_row - feat, feats_row - feat) for feats_row in feats])
print dists_e2


[     0.          16291.73632812  13379.70898438  15805.57421875
  15779.38867188  15107.24414062  10959.73144531  10260.88867188
  10685.53710938  14714.39257812  17517.65625     17847.61914062
  16471.75390625  15227.33203125  16521.44921875  14235.18359375
  13321.546875    15581.26171875  17976.62304688  14315.36816406
  16605.42382812  15107.95996094  14934.36523438  15952.67578125
  12575.65917969  18588.19140625  14199.22070312  16793.5703125
  12858.50195312  18397.6640625   27850.84375     13887.04296875
  17086.05078125  16247.86328125  17065.92578125  15082.36425781
  15338.70019531  14913.87890625  15864.63476562  29230.2109375
  16283.07617188  17701.6875      12748.53125     14004.73242188
  14674.80664062  13267.80078125  18823.0625      19212.00976562
  17321.13085938  20848.45703125  16927.140625    11672.30273438
  18069.796875    19121.28515625  22380.5         11919.18261719
  16076.96777344  15800.26660156   9927.31738281  12890.87402344
  17110.27734375  11509.78125     14793.76367188  15631.19824219
  12396.7109375   18170.5078125   20890.23046875  16674.10742188
  14827.37304688  13866.18652344  15907.14648438  16766.92578125
  29390.6953125   12324.02539062  14860.84570312  12946.98828125
  14418.21679688  11737.47265625  17557.90429688  13305.71875     15065.828125
  19302.20703125  15414.12109375  12235.08398438  20038.20117188
  14937.99414062  17200.73046875  16504.66015625  17409.40820312
  16436.640625    12002.98730469  13772.99804688  13857.80078125
  18208.41601562  12774.97167969  13777.73242188  17232.39257812
   9842.546875    16818.68164062  14796.33300781  14049.73828125
  17983.2421875   13400.015625    11555.69921875  13646.72167969
  10646.22167969  20387.11523438  17161.99609375  11102.52539062
  12794.86328125  15655.33496094  13634.30957031  14165.8984375
  15922.78710938  13387.69042969  14302.44042969  13240.92773438
  17295.296875    22338.62109375  14402.25585938  10023.78808594
  12536.04101562  14972.4765625   15725.07617188  14913.359375
  14792.7109375   16868.75390625  16713.38476562  18771.30273438
  17736.703125    22095.86328125  15165.79101562  13531.97265625
  13980.66601562  13379.36230469  13084.53515625  10880.28222656
  17752.18359375  18149.17578125  10252.3125      25586.15039062
  13691.86914062  16235.59765625  13968.16699219  13602.58984375
  19944.71875     16479.1640625   13593.18945312  14555.6796875
  11943.16796875  13043.66210938  19459.50390625  13733.01660156
  18643.40039062  15245.59472656  15307.75585938  15917.62890625
  15385.3125      13342.24902344  13038.328125    16001.35742188
  19059.9140625   16870.74414062  16517.734375    18209.28320312
  12137.37402344  15515.06054688  13891.49804688  13614.62109375
  20118.8984375   15129.85449219  17201.59375     17539.8203125
  13704.96875     11022.77636719  12558.45214844  10583.74609375
  12692.86523438  11912.95898438  10800.453125    13732.77441406
  11372.75390625  15098.01171875  18301.65039062  11876.80371094
  17287.9453125   24330.34375     13673.95410156  20333.56445312
  13232.53515625  19689.70898438  20151.06835938  11167.33886719
  13306.0625      20329.93945312  21570.30859375  15755.8203125
  12004.10546875  22519.1796875   14309.31835938  12694.04589844
  13683.90722656  16846.6328125   20944.15625     12846.296875    12548.25
  23151.39257812  18903.77734375  15138.5703125   20672.29101562
  17160.18359375  16542.15234375  10093.03125     15280.98632812
  17554.18359375  12842.87207031  15614.60058594  10715.19140625
  15947.11914062  16399.58398438  15767.96679688  18052.13085938
  15257.34960938  17349.63671875  20172.1875      13876.81835938
  19412.7734375   22312.9453125   13135.33007812  16313.23242188
  15693.94726562  14862.88183594  15701.71679688  19660.49609375
  17452.75195312  18120.62890625  13473.98046875  15524.51074219
  14662.58007812  12723.68359375  17940.5625      13224.57226562
  21201.97265625  27826.19921875  13786.265625    14922.15136719
   9943.14746094  10901.72851562  14252.71972656  17420.44140625
  15133.93652344  13185.24121094  16090.6875      19787.15429688
  12100.45898438  12836.5546875   16001.43457031  13242.98535156
  13794.81835938  11102.55078125  20079.64453125  13874.75585938
  24633.30078125  19154.77148438  13517.49121094  15866.5390625
  19268.2890625    9971.64355469   9440.20507812  13896.81835938
  11885.51367188  20206.9140625   16416.31835938  16738.32617188
   9734.91601562  19241.62304688  22569.48046875  12032.22265625
  14894.51171875  18048.80664062  12173.27148438  17642.24804688
  16807.703125    18743.046875    19297.72851562  14264.27539062
  12851.71289062  13189.109375    13463.04003906  16835.47851562
  17088.96875     13427.55859375  14600.98535156  16236.41503906
  13153.24804688  14883.70996094   9271.20117188  17673.890625
  19175.55273438  16282.33105469  14038.9765625   16675.37109375
  17580.1171875   13868.08398438  17787.15625     16004.67480469
  14799.15527344  10549.62304688  14273.57226562  13511.88476562
  13497.25195312  20602.0703125   11030.71386719  12360.95117188
  15980.08789062  12912.46289062  14975.97558594  13936.55371094
  17377.86914062  13396.57910156  13839.89257812  13224.91601562
  15345.69433594  18595.79882812  20171.20898438  22432.01171875
  15074.68652344  17351.26953125  17563.23632812  18558.98828125
  18109.59179688  12562.828125    13021.09375     17314.734375
  16091.29296875  16064.68554688  12589.68359375  14290.27734375
  13974.19433594  12927.96875     16650.58398438  12024.36523438
  16512.984375    13748.73242188  17192.09570312  15568.16992188
  13056.11230469  14584.26464844  16133.03710938  23686.47851562
  17649.97851562  14111.57128906  20719.58203125  16531.21289062
  18482.296875    14076.5         16901.73242188  12968.28222656
  16131.015625    21828.97265625  12721.21679688  16727.71484375
  12856.15820312  21349.90429688  11446.32324219  14209.24023438
  12271.4609375   10310.79199219  21437.05273438  14918.54882812
  14442.11035156  17584.42773438  12093.04882812  20173.3046875
  16388.75585938  14604.43359375  19311.81054688  11104.078125
  11685.41210938  19713.28320312  13696.66992188  11095.86523438
  15119.12890625  14962.60546875  12547.68164062  15131.66015625
  13474.34570312  21591.765625    13645.79785156  18623.51367188
  13589.47558594  15050.06738281  16400.078125    14035.265625
  13669.20703125  11653.26855469  10344.37207031  13677.44140625
  10355.578125    18024.90820312  13807.71875     16454.04492188
  11335.52832031  15121.54199219  13005.98046875  13300.90625
  18830.57421875  14588.66796875  17095.671875    17241.88085938
  13763.3984375   17151.84570312  14029.12890625  15957.859375
  21673.26953125  16227.08300781  13293.14453125  17445.27539062
  13521.0078125   15516.94921875  15771.49902344  14713.67871094
  14680.53320312  12305.41796875  13860.43164062  15940.02734375
  11127.18652344  14707.51171875  17094.65625     20561.53515625
  15706.34960938  10487.296875    15292.20117188  12130.41992188
  14791.38574219  19555.47265625  17674.328125    19357.88476562
  20497.34765625  15766.64453125   8406.06054688  21883.234375
  18313.37695312   7555.52929688  17441.984375    18108.92578125
  16745.09765625  13357.62890625  15457.55761719  16381.29296875
  19639.53125     15442.06054688  13255.0078125   17711.76171875
  14222.57617188  13986.98535156  15850.60742188  15882.66015625
  15081.17285156  16367.046875    17798.74414062  13834.6796875
  15439.97265625  18354.6484375   13988.05957031  14731.26757812
  10680.71972656  12343.44433594  14125.0234375   17567.390625
  14556.43359375  15896.29882812  15196.66992188  13527.34570312
  15864.79980469  13514.55859375  13881.89648438  16193.6015625
  15918.65136719  17003.18359375  19288.82421875  15451.71679688
  17622.26367188   9714.87695312  17962.12304688  25328.21679688
  14691.68945312  20430.2890625   15663.390625    22496.62890625
  12375.62304688  15900.73632812  17552.1796875   14784.65429688
  16036.78515625  16447.42382812  10625.09765625  15325.4375
  15246.02929688  13149.45117188  14794.67773438  18007.671875
  15007.99511719  17821.42382812  21051.2578125   18144.52539062
  21225.09375     16548.69140625  15967.13183594  19842.671875
  19041.14453125  12547.01171875  12365.95410156  13204.11035156
  12931.5234375   12868.84960938  12743.38476562  14766.05761719
  12420.13964844  11686.54296875  15726.70117188  13825.45703125
  15987.86328125  11088.75585938  11329.18164062  11502.41992188
  19551.40429688  12000.25585938  16453.6875      21793.96875
  12955.9921875   14041.98046875  13518.625       16157.38769531
  14486.47851562  14950.94335938  16458.5078125   18044.24804688
  10901.77539062  13036.7578125   11928.34960938  15411.21484375
  17454.84570312  22747.47460938  19074.484375    12762.37402344
  12248.51953125  13174.14453125  16930.87695312   9505.59179688
  19427.8359375   26292.3125      11503.32226562  12699.48046875
  14552.734375    12494.109375    17921.88671875  15178.67089844
   9849.75195312  13385.15136719  13902.52734375  19664.36328125
  15241.3671875   14333.88769531  19262.47265625  22788.28515625
  16726.90429688  11673.40332031  22769.99609375   9755.20019531
  13482.95117188  16505.59765625  11981.47070312  14437.86914062
  16645.18164062  15545.90917969  14911.07519531  11362.70507812
  15386.72070312  14320.13085938  17061.13867188  13325.52246094
  18406.94726562  12709.76757812  20143.31835938  13777.07226562
  15761.69921875  22656.48828125  17494.5         18561.29101562
  16756.53710938  17403.92382812  21911.4453125   17187.63671875
  11400.38378906   9151.02832031  13814.67285156  16036.38085938
  17415.23828125  13446.421875    17954.26953125  11870.24023438
  15434.2734375   19335.2578125   13953.09765625  18520.95703125
  22739.265625    17605.92382812  16710.93945312  14087.74511719
  12769.16992188  12141.9765625   14484.90917969  19313.4296875
  13423.73632812  19076.46484375  11811.91992188  12761.93457031
  15847.38378906   9911.05859375  14707.68359375  22714.3125      22224.40625
  17500.390625    17170.25390625  12173.21191406  19794.75195312
  13357.90527344  15674.83203125  13521.81152344  18016.13867188
  16518.5625      12427.71484375  16335.94335938  12753.25        12482.64941406
  14445.83691406  15878.03808594  15011.02929688  10635.96191406
  11639.51171875  18419.9296875   16980.4453125   15489.35742188
  15100.75585938  13687.79589844  12732.19628906  17306.56835938
  13068.9921875   17694.8125      10878.75390625  13139.63769531
  15957.31835938  22598.88867188  15723.19238281  12012.39453125
  18609.9375      14228.47265625  17390.171875    14843.09570312
  11463.87207031  18458.51171875  11183.70996094  16020.97265625
  15050.41992188  13937.25195312  16802.31445312  14857.33398438
  11099.85546875  15119.38867188  16815.17578125  11880.74511719
   8479.62402344  14289.95507812  25161.59375     22734.84179688
  14587.11328125  16990.1875      13971.02539062  22690.34960938
  20381.99804688  14828.08300781  16577.3359375   14204.80371094
  11746.95703125  17233.19335938  12211.0703125   13719.23242188
  13416.35058594  16898.54296875  16451.32226562  15825.92871094
  15174.6640625   24546.5234375   14523.2578125   12426.32226562
  20072.7578125   17336.55078125  22739.7734375   14129.14160156
  13370.83398438  14649.3984375   16484.9140625   12781.3125
  15185.17773438  15428.96484375  20355.08203125  12819.07324219
  15827.23339844  13928.91992188  12266.58203125  17448.1796875
  17471.34179688  11707.40820312  12631.1875      16851.7734375
  14250.17773438  10978.61132812  13689.96289062  11217.87988281
  14888.828125    15764.28125     16024.46289062  11412.40332031
  13409.40527344  11096.64648438  17901.734375    14201.2265625
  16023.33789062   8869.08789062  14255.64355469  14580.55078125
  12222.76074219  13605.17089844  11786.37109375  10856.49511719
  12244.75390625  12716.72851562  15538.72460938  17889.51171875
  12143.78027344  16655.93359375  13620.97070312  10473.28027344
  17645.72265625  16256.95507812  15117.0078125   18138.04492188
  20893.10546875  15203.09179688  16271.65234375  19965.67578125
  11562.54394531  12841.83203125  14971.18457031  15431.64257812
  19782.28320312  20649.671875    10484.59765625  12067.734375
  14952.38769531  11173.73144531  16569.1875      15175.76367188
  16709.45703125  18519.89453125  19680.07617188  13295.3671875
  11425.234375    20353.41015625  14397.68945312  21078.18164062
  12338.16210938  17158.63671875  12688.375       14611.79882812
  13670.95898438  10188.89550781  21946.90234375  12512.59570312
  17263.89453125  15895.60351562  16142.75097656  10953.07714844
  10308.85839844  14363.83398438  10879.56738281  14505.046875
  14122.984375    15289.88574219  14822.29101562  12948.68359375
  19498.19335938  14875.29199219  17075.51171875  20732.59179688
  14906.30078125  14396.70507812  15946.48535156  13473.28320312
  16667.26171875  15468.80273438  11550.81347656  15384.55371094
  18329.29492188  13634.421875    15558.88085938  14895.71386719
  16935.28710938  22023.26367188  19025.88671875  18984.59179688
  17358.56445312  15962.1640625   18648.94726562  15038.94921875
  16813.26953125  20581.51953125  14958.84765625  15006.06152344
  22869.53125     11646.44335938  11448.20117188  18592.2421875
  15838.05957031  16787.046875    12879.56933594  12452.8671875
  17073.61914062  13042.43164062  21398.515625    14721.68847656
  14205.05371094  14546.21679688  15540.22265625  14812.86328125
  14388.96875     11499.96679688  22632.51953125  18705.53125
  20857.99414062  11815.12695312  11130.65332031  14262.50292969
  14193.66894531  14811.890625    17060.34765625  15499.26367188
  13982.796875    16249.11621094  15614.27050781  13972.05664062
  11501.22460938  14127.56054688  11924.546875    15242.47753906
  12209.70117188  17703.7421875    9338.46679688  14834.49511719
  14449.57421875  14866.75878906  13404.10351562  17851.85546875
  14629.80371094  17323.9140625   15507.83203125  13803.6484375
  14931.06738281  20896.80859375  17381.078125    17465.44726562
  16371.50390625  13743.36914062  12827.17089844  19268.33007812
  23153.02539062  16165.83007812  17096.77539062  14426.36523438
  14478.49414062  20343.66992188  17201.0625      11624.58691406  21517.375
  22409.4296875   20639.43359375  14086.75        11944.88085938
  17386.8984375   17559.11914062  11238.390625    16751.44140625
  14677.94726562  12815.05859375  17142.12304688  14338.09375
  16430.76757812  15109.88964844  12937.62304688  16211.25292969
  20261.32617188  18763.69921875  13300.69824219  20319.60742188
  12283.15039062  28626.62890625  15754.83886719  13040.36621094
  19950.96484375  10886.70996094   8744.32421875  10721.32421875
  11680.37890625  11599.4296875   12280.45898438  16910.0703125
  17884.21679688  15769.25097656  16311.58691406  15183.42773438
  15504.859375    21597.7578125   17483.55078125  18883.5625
  13020.18945312  15642.36816406  18299.75        11766.55078125
  10485.47070312  16905.58984375  13683.20507812  18140.96289062
  12905.38574219  13765.5390625   19303.765625    14274.63085938
  22755.765625    18928.79296875  13186.19726562  13559.60644531
  21849.45507812  13758.5703125   14784.61328125  16975.74023438
  16090.51464844  25620.88671875  16079.20898438  14224.65332031
  12067.20214844  19550.8828125   13114.25976562  20357.84570312
  15279.79199219  17076.67578125  16876.5078125   20481.2421875
  15166.57128906  22745.39453125  20958.92578125  20318.53320312
  20806.6328125   11661.80664062  14622.06347656  16216.34472656
  15823.21484375  18556.1484375   19369.87890625  11691.10449219
  13764.42773438  18475.859375    17359.203125    16089.49023438
  15619.484375    13869.87402344  19131.27734375  10969.29101562
  13730.65722656  13524.10742188  19102.19140625  14390.25292969
  14419.77734375  16810.6796875   12282.18847656  14169.02734375
  14387.80859375  13726.11914062  13736.21875     15056.66796875
  14114.09765625  16291.03222656  16192.19824219  16829.8125      12209.765625
  18161.53125     12678.03710938  18130.60546875  17973.99023438
  18728.49609375  16610.00390625]

In [62]:
dists_e3 = np.dot((feats - feat), (feats - feat).T).max(1)
print dists_e3


[     0.          16291.734375    13379.70996094  15805.57617188
  15779.38769531  15107.2421875   11013.46289062  10260.88867188
  10685.53808594  14714.39453125  17517.65625     17847.61914062
  16471.75390625  15227.32910156  16521.44921875  14235.18359375
  13321.54785156  15581.26171875  17976.625       14315.37011719
  16605.42382812  15107.95898438  14934.36621094  15952.67773438
  12575.66015625  18588.19335938  14199.22070312  16793.57226562  12858.5
  18397.66210938  27850.84570312  13887.04199219  17086.04882812
  16247.86425781  17065.92578125  15082.36523438  15338.69824219
  14913.87988281  15864.63476562  29230.21289062  16283.07617188
  17701.6875      12748.52929688  14004.73242188  14674.80761719
  13267.80078125  18823.0625      19212.00585938  17321.12890625
  20848.45703125  16927.13867188  11672.30273438  18069.79492188
  19121.28515625  22380.49804688  11919.18457031  16076.96875
  15800.26660156   9927.31738281  12890.87402344  17110.27734375
  11509.78222656  14793.76269531  15631.19921875  12396.71289062
  18170.50976562  20890.23046875  16674.10742188  14827.37402344
  13866.1875      15907.14648438  16766.92578125  29390.69140625
  12324.02636719  14860.84472656  12946.98925781  14418.21582031
  11737.47265625  17557.90234375  13305.71582031  15065.828125
  19302.20703125  15414.12109375  12235.08496094  20038.19921875
  14937.99316406  17200.72851562  16504.65625     17409.40820312
  16436.64257812  12002.98828125  13772.99902344  13857.80078125
  18208.4140625   12774.97363281  13777.73144531  17232.39257812
   9842.54589844  16818.68164062  14796.33398438  14049.73730469
  17983.23828125  13400.015625    11555.69921875  13646.72265625
  10646.22167969  20387.11328125  17161.99609375  11102.52636719
  12794.86328125  15655.33300781  13634.31054688  14165.8984375
  15922.78613281  13387.69042969  14302.43847656  13240.92675781
  17295.296875    22338.62109375  14402.25976562  10023.7890625
  12536.04199219  14972.4765625   15725.07714844  14913.36132812
  14792.71191406  16868.75390625  16713.38476562  18771.30273438
  17736.70117188  22095.86523438  15165.79101562  13531.97363281
  13980.66601562  13379.36230469  13084.53515625  10880.28222656
  17752.18359375  18149.17773438  10437.30078125  25586.15234375
  13691.87011719  16235.59765625  13968.16796875  13602.59082031
  19944.72070312  16479.16210938  13593.19238281  14555.68066406
  11943.16992188  13043.66210938  19459.50390625  13733.01855469
  18643.3984375   15245.59765625  15307.75683594  15917.62988281
  15385.31542969  13342.25        13038.32910156  16001.359375
  19059.9140625   16870.7421875   16517.73632812  18209.28320312  12137.375
  15515.05957031  13891.49707031  13614.62304688  20118.89648438
  15129.85644531  17201.59375     17539.81835938  13704.96875
  11022.77539062  12558.45410156  10583.74609375  12692.86621094
  11912.95800781  10800.453125    13732.77539062  11372.75292969
  15098.01367188  18301.65039062  11876.8046875   17287.9453125
  24330.33984375  13673.95507812  20333.56640625  13232.53613281
  19689.70898438  20151.06835938  11167.33886719  13306.06542969
  20329.94140625  21570.31054688  15755.82226562  12004.10546875
  22519.1796875   14309.31835938  12694.046875    13683.90917969
  16846.63085938  20944.15625     12846.29785156  12548.25        23151.390625
  18903.77539062  15138.57324219  20672.29101562  17160.18164062
  16542.15234375  10093.03125     15280.98730469  17554.18359375
  12842.87207031  15614.6015625   10715.19140625  15947.11914062
  16399.5859375   15767.96582031  18052.12890625  15257.35058594
  17349.63476562  20172.18359375  13876.81835938  19412.7734375
  22312.94335938  13135.32910156  16313.23144531  15693.94628906
  14862.88183594  15701.71679688  19660.49804688  17452.75195312
  18120.6328125   13473.98046875  15524.51074219  14662.58007812
  12723.68359375  17940.5625      13224.57128906  21201.97460938
  27826.20117188  13786.26660156  14922.15039062   9943.14746094
  10901.73046875  14252.71972656  17420.43945312  15133.93652344
  13185.24121094  16090.68847656  19787.15234375  12100.4609375
  12836.5546875   16001.43554688  13242.98828125  13794.8203125
  11102.54980469  20079.64648438  13874.7578125   24633.30273438
  19154.76757812  13517.4921875   15866.5390625   19268.2890625
  10130.01367188   9440.20410156  13896.81933594  11885.51367188
  20206.9140625   16416.31445312  16738.32421875   9734.91601562
  19241.62304688  22569.48242188  12032.22363281  14894.50976562
  18048.8046875   12173.2734375   17642.24609375  16807.703125
  18743.046875    19297.73046875  14264.27539062  12851.71484375
  13189.11035156  13463.04101562  16835.47460938  17088.96679688
  13427.55859375  14600.98632812  16236.41308594  13153.24804688
  14883.71191406   9271.20214844  17673.88867188  19175.55078125
  16282.33007812  14038.97753906  16675.37109375  17580.11523438
  13868.08691406  17787.15625     16004.67675781  14799.15625
  10549.62402344  14273.57128906  13511.88574219  13497.25390625
  20602.07226562  11030.71582031  12360.95214844  15980.08984375
  12912.46386719  14975.97558594  13936.55566406  17377.86523438
  13396.57910156  13839.89550781  13224.91601562  15345.69238281
  18595.80078125  20171.20898438  22432.01171875  15074.6875
  17351.26953125  17563.234375    18558.98828125  18109.59179688
  12562.82910156  13021.09472656  17314.73632812  16091.29296875
  16064.68652344  12589.68457031  14290.27734375  13974.19628906
  12927.96972656  16650.58203125  12024.3671875   16512.98632812
  13748.73144531  17192.09570312  15568.17089844  13056.11328125
  14584.265625    16133.03515625  23686.47851562  17649.97851562
  14111.57128906  20719.58203125  16531.21289062  18482.296875
  14076.49902344  16901.734375    12968.28320312  16131.01464844
  21828.97070312  12721.21875     16727.71875     12856.16015625
  21349.90429688  11446.32519531  14209.24121094  12271.46289062
  10310.79199219  21437.04882812  14918.54882812  14442.11035156
  17584.4296875   12093.04785156  20173.3046875   16388.7578125
  14604.43554688  19311.81054688  11104.07714844  11685.41113281
  19713.28515625  13696.671875    11095.8671875   15119.12792969
  14962.60644531  12547.68066406  15131.66015625  13474.34472656
  21591.76367188  13645.79785156  18623.51367188  13589.47558594
  15050.06738281  16400.078125    14035.26660156  13669.20605469
  11653.26855469  10344.37207031  13677.44238281  10355.57910156
  18024.90820312  13807.71972656  16454.04296875  11335.52929688
  15121.54394531  13005.98046875  13300.90625     18830.57421875
  14588.66699219  17095.671875    17241.88085938  13763.40039062
  17151.84960938  14029.13183594  15957.859375    21673.26757812
  16227.08300781  13293.14355469  17445.27734375  13521.00878906
  15516.95117188  15771.5         14713.68066406  14680.53320312
  12305.42089844  13860.43066406  15940.02636719  11127.1875
  14707.51269531  17094.65234375  20561.53320312  15706.35058594
  10487.29882812  15292.20117188  12130.41894531  14791.38769531
  19555.47265625  17674.33007812  19357.88476562  20497.34765625
  15766.64160156   8406.06152344  21883.234375    18313.37890625
   7555.52832031  17441.98242188  18108.92382812  16745.09765625
  13357.62890625  15457.55859375  16381.29492188  19639.53320312
  15442.0625      13255.00683594  17711.76367188  14222.57617188
  13986.98730469  15850.60742188  15882.66015625  15081.17382812
  16367.04882812  17798.74609375  13834.6796875   15439.97460938
  18354.6484375   13988.05957031  14731.26464844  10680.71972656
  12343.44335938  14125.02246094  17567.39257812  14556.43554688
  15896.29882812  15196.66894531  13527.34667969  15864.80078125
  13514.55957031  13881.89746094  16193.59863281  15918.65332031
  17003.18359375  19288.82421875  15451.71679688  17622.26367188
   9714.87792969  17962.12109375  25328.21875     14691.69042969
  20430.28515625  15663.390625    22496.6328125   12375.62304688
  15900.73730469  17552.18164062  14784.65625     16036.78417969
  16447.42382812  10625.09667969  15325.43652344  15246.02832031
  13149.453125    14794.67675781  18007.671875    15007.99609375
  17821.42382812  21051.25976562  18144.52539062  21225.09570312
  16548.69335938  15967.13085938  19842.67382812  19041.14453125
  12547.01367188  12365.953125    13204.11035156  12931.52441406
  12868.85058594  12743.38671875  14766.05664062  12420.140625
  11686.54296875  15726.703125    13825.45605469  15987.86230469
  11088.75585938  11329.18261719  11502.421875    19551.40234375
  12000.25683594  16453.68554688  21793.96679688  12955.99414062
  14041.98046875  13518.625       16157.38769531  14486.48046875
  14950.9453125   16458.50976562  18044.24804688  10901.77636719
  13036.7578125   11928.34960938  15411.21386719  17454.84375
  22747.47460938  19074.484375    12762.37402344  12248.52148438
  13174.14453125  16930.875        9505.59277344  19427.83789062
  26292.31054688  11503.32324219  12699.48046875  14552.73339844
  12494.109375    17921.88476562  15178.671875     9849.75195312
  13385.15136719  13902.52929688  19664.36328125  15241.36816406
  14333.88867188  19262.47070312  22788.28320312  16726.90429688
  11673.40429688  22769.99414062   9755.20117188  13482.95214844
  16505.59960938  11981.47070312  14437.87109375  16645.18359375
  15545.91015625  14911.07714844  11362.70410156  15386.71972656
  14320.13085938  17061.13671875  13325.52246094  18406.94921875
  12709.76757812  20143.3203125   13777.07128906  15761.69824219
  22656.48632812  17494.50195312  18561.29101562  16756.5390625
  17403.92578125  21911.4453125   17187.63867188  11400.38378906
   9151.02832031  13814.66992188  16036.37988281  17415.23828125
  13446.42285156  17954.26757812  11870.24121094  15434.27441406
  19335.2578125   13953.09863281  18520.95703125  22739.265625
  17605.92382812  16710.93945312  14087.74316406  12769.16992188
  12141.97851562  14484.90820312  19313.43164062  13423.73925781
  19076.46484375  11811.92089844  12761.93457031  15847.38476562
   9911.05957031  14707.68652344  22714.31054688  22224.40234375
  17500.39453125  17170.25195312  12173.21386719  19794.75390625
  13357.90625     15674.83398438  13521.80957031  18016.13671875
  16518.56445312  12427.71582031  16335.94238281  12753.24902344
  12482.65039062  14445.83789062  15878.0390625   15011.02734375
  10635.96386719  11639.51269531  18419.92773438  16980.44726562
  15489.359375    15100.7578125   13687.79589844  12732.19726562
  17306.5703125   13068.9921875   17694.81445312  10878.75195312
  13139.63671875  15957.31835938  22598.88867188  15723.19335938
  12012.39550781  18609.93554688  14228.47265625  17390.171875
  14843.09667969  11463.87109375  18458.50976562  11183.70800781
  16020.97167969  15050.42089844  13937.25195312  16802.31640625
  14857.3359375   11099.85546875  15119.38867188  16815.17382812
  11880.74511719   8479.625       14289.95605469  25161.59375
  22734.83789062  14587.11523438  16990.1875      13971.02539062
  22690.34765625  20381.99609375  14828.08300781  16577.3359375
  14204.80371094  11746.95898438  17233.19140625  12211.0703125
  13719.23046875  13416.34960938  16898.54492188  16451.3203125
  15825.92871094  15174.6640625   24546.52148438  14523.2578125
  12426.32226562  20072.75976562  17336.55078125  22739.77539062
  14129.14355469  13370.8359375   14649.40039062  16484.9140625
  12781.31445312  15185.17773438  15428.96582031  20355.08203125
  12819.07421875  15827.23242188  13928.91894531  12266.58203125
  17448.17773438  17471.34179688  11707.40917969  12631.18847656
  16851.77539062  14250.17675781  10978.61132812  13689.9609375
  11217.87988281  14888.83203125  15764.28027344  16024.46484375
  11412.40527344  13409.40429688  11096.64648438  17901.73632812
  14201.2265625   16023.33886719   8869.08789062  14255.64355469
  14580.55078125  12222.76171875  13605.17089844  11786.37109375
  10856.49609375  12244.75488281  12716.72851562  15538.72265625
  17889.51171875  12143.78027344  16655.93554688  13620.97070312
  10473.28125     17645.72265625  16256.95703125  15117.00878906
  18138.04492188  20893.10546875  15203.09277344  16271.65136719
  19965.67578125  11562.54394531  12841.83398438  14971.18554688
  15431.64257812  19782.28125     20649.66992188  10484.59765625
  12067.734375    14952.38671875  11173.73144531  16569.1875      15175.765625
  16709.45703125  18519.89453125  19680.07617188  13295.36621094
  11425.23535156  20353.40820312  14397.69140625  21078.1796875
  12338.16308594  17158.63867188  12688.37597656  14611.79980469
  13670.95898438  10188.89550781  21946.90429688  12512.59472656
  17263.89453125  15895.60351562  16142.75        10953.078125
  10308.85839844  14363.8359375   10879.56738281  14505.04882812
  14122.984375    15289.88671875  14822.29101562  12948.68261719
  19498.19335938  14875.29296875  17075.50976562  20732.59179688
  14906.30175781  14396.70507812  15946.484375    13473.28417969
  16667.26171875  15468.80175781  11550.81445312  15384.55371094
  18329.29296875  13634.42285156  15558.88183594  14895.71386719
  16935.28710938  22023.26171875  19025.88671875  18984.59375
  17358.56835938  15962.1640625   18648.9453125   15038.94824219
  16813.26757812  20581.51757812  14958.84765625  15006.0625
  22869.52929688  11646.44433594  11448.20117188  18592.24414062
  15838.06152344  16787.046875    12879.56933594  12452.86816406
  17073.61914062  13042.43066406  21398.515625    14721.6875
  14205.05371094  14546.21777344  15540.22363281  14812.86132812
  14388.96972656  11499.96679688  22632.51757812  18705.52929688
  20857.99414062  11815.12695312  11130.65332031  14262.50488281
  14193.66992188  14811.89257812  17060.34765625  15499.26464844
  13982.79492188  16249.1171875   15614.27441406  13972.05664062
  11501.22460938  14127.55957031  11924.54882812  15242.47851562
  12209.70117188  17703.74023438   9338.46679688  14834.49609375
  14449.57421875  14866.75878906  13404.10449219  17851.85546875
  14629.80371094  17323.91601562  15507.83300781  13803.64941406
  14931.06738281  20896.80664062  17381.078125    17465.4453125
  16371.50390625  13743.37109375  12827.171875    19268.33007812
  23153.0234375   16165.83203125  17096.7734375   14426.36523438
  14478.49414062  20343.66796875  17201.06445312  11624.5859375   21517.375
  22409.4296875   20639.43359375  14086.75        11944.88183594
  17386.8984375   17559.12109375  11238.39160156  16751.44140625
  14677.94726562  12815.05957031  17142.12109375  14338.09375
  16430.76757812  15109.88964844  12937.62011719  16211.25488281
  20261.32617188  18763.69726562  13300.70019531  20319.60351562
  12283.15039062  28626.62304688  15754.83691406  13040.36523438
  19950.96484375  10886.70898438   8744.32324219  10721.32421875
  11680.37890625  11599.43066406  12280.45703125  16910.0703125
  17884.21679688  15769.25390625  16311.58691406  15183.43066406
  15504.86035156  21597.75390625  17483.55078125  18883.5625
  13020.18847656  15642.36816406  18299.75        11766.55175781
  10485.47265625  16905.58789062  13683.20507812  18140.96289062
  12905.38671875  13765.5390625   19303.765625    14274.6328125
  22755.76757812  18928.79296875  13186.19824219  13559.60742188
  21849.45703125  13758.5703125   14784.61425781  16975.7421875
  16090.51367188  25620.88671875  16079.20703125  14224.65332031
  12067.20117188  19550.88085938  13114.25878906  20357.84570312
  15279.79296875  17076.6796875   16876.50976562  20481.24023438
  15166.57128906  22745.39453125  20958.92578125  20318.53125
  20806.6328125   11661.80664062  14622.06347656  16216.34277344
  15823.21386719  18556.15234375  19369.87890625  11691.10546875
  13764.42578125  18475.85546875  17359.203125    16089.49121094
  15619.48339844  13869.875       19131.27929688  10969.29101562
  13730.65722656  13524.10839844  19102.18945312  14390.25195312
  14419.77539062  16810.68164062  12282.18847656  14169.02832031
  14387.80957031  13726.11914062  13736.21777344  15056.66992188
  14114.10058594  16291.03027344  16192.19921875  16829.8125      12209.765625
  18161.53320312  12678.04003906  18130.60351562  17973.98828125
  18728.49414062  16610.00195312]

In [74]:
dists_e5 = (np.dot(feats, feats.T) - 2 * np.dot(feats, feat) + np.dot(feat, feat)).max(1)
dists_e5.flat[::dists_e5.shape[0] + 1] = 0.0
print dists_e5


[     0.          16291.734375    13379.70898438  15805.57421875
  15779.38671875  15107.24121094  12351.93261719  10892.22753906
  11009.90625     14714.39257812  17517.65625     17847.6171875
  16471.75195312  15227.33300781  16521.44921875  14235.18359375
  13321.546875    15581.25976562  17976.625       14315.36816406
  16605.421875    15107.95996094  14934.3671875   15952.67480469
  12575.66015625  18588.19140625  14199.21972656  16793.56835938  12858.5
  18397.66210938  27850.84375     13887.04199219  17086.05078125
  16247.86230469  17065.92578125  15082.36328125  15338.69921875
  14913.87695312  15864.63476562  29230.2109375   16283.07421875
  17701.6875      12748.53027344  14004.73339844  14674.80664062
  13267.79882812  18823.06054688  19212.00976562  17321.12695312
  20848.45703125  16927.13671875  11672.30078125  18069.79492188
  19121.28515625  22380.49804688  11919.18261719  16076.96777344
  15800.26464844  11418.14453125  12890.87304688  17110.27734375
  12190.64746094  14793.76074219  15631.19726562  12707.69921875
  18170.5078125   20890.2265625   16674.10546875  14827.37207031
  13866.18554688  15907.14550781  16766.92578125  29390.69140625
  13002.90820312  14860.84472656  12946.98632812  14418.21679688
  11737.47070312  17557.90039062  13305.71679688  15065.828125
  19302.20703125  15414.12109375  12235.08398438  20038.19921875
  14937.99121094  17200.72460938  16504.65625     17409.40820312
  16436.640625    12002.98535156  13772.99804688  13857.79980469
  18208.4140625   12774.97265625  13777.73242188  17232.39257812
  11183.01757812  16818.6796875   14796.33203125  14049.73828125
  17983.23828125  13400.01660156  11555.69726562  13646.72070312
  11146.73144531  20387.11328125  17161.99609375  11361.78613281
  12794.86328125  15655.33496094  13634.30761719  14165.89746094
  15922.78515625  13387.68945312  14302.43945312  13240.92773438
  17295.296875    22338.6171875   14402.25585938  11580.34863281
  12536.04101562  14972.4765625   15725.07714844  14913.35742188
  14792.70996094  16868.75390625  16713.3828125   18771.30273438
  17736.70117188  22095.8671875   15165.79003906  13531.97265625
  13980.66601562  13379.36132812  13084.53417969  10880.28125
  17752.18554688  18149.17578125  11665.74121094  25586.1484375
  13693.55664062  16235.59765625  13968.16699219  13602.58789062
  19944.71875     16479.16210938  13593.18945312  14555.6796875
  11943.16699219  13043.66210938  19459.5         13733.01757812
  18643.39648438  15245.59375     15307.75585938  15917.62890625
  15385.31152344  13342.24804688  13038.32714844  16001.35546875
  19059.9140625   16870.7421875   16517.734375    18209.28125
  12269.21386719  15515.05957031  13891.49511719  13614.62304688
  20118.89453125  15129.85351562  17201.59375     17539.8203125
  13704.96972656  12500.67675781  12558.45214844  12105.5546875
  12692.86425781  11912.95898438  10962.95117188  13732.77246094
  12056.3671875   15098.01269531  18301.6484375   12088.375       17287.9453125
  24330.34179688  13673.953125    20333.5625      13232.53613281
  19689.70703125  20151.06640625  12581.53613281  13306.0625      20329.9375
  21570.30859375  15755.82128906  12004.10546875  22519.17578125
  14309.31835938  12694.04589844  13683.90820312  16846.6328125
  20944.15625     12846.29882812  13070.203125    23151.390625
  18903.77734375  15138.57128906  20672.2890625   17160.1796875
  16542.15234375  10505.87402344  15280.98535156  17554.18359375
  12842.87011719  15614.60058594  12167.68261719  15947.11816406
  16399.58398438  15767.96582031  18052.12890625  15257.35058594
  17349.63476562  20172.1875      13876.81835938  19412.77148438
  22312.94140625  13135.32714844  16313.23046875  15693.9453125
  14862.88085938  15701.71386719  19660.49609375  17452.75        18120.63085938
  13473.97949219  15524.50976562  14662.578125    12723.68261719
  17940.5625      13224.5703125   21201.97460938  27826.19921875
  13786.26464844  14922.15039062  11823.55664062  11009.09179688
  14252.71875     17420.44140625  15133.93652344  13185.24023438
  16090.68554688  19787.15234375  12100.45898438  12836.55175781
  16001.43261719  13242.984375    13794.81933594  11443.54492188
  20079.64453125  13874.75585938  24633.30078125  19154.76757812
  13517.49121094  15866.53808594  19268.2890625   11589.00292969
  11245.79589844  13896.81835938  13252.62304688  20206.91015625
  16416.31640625  16738.32421875  10938.95117188  19241.62304688
  22569.48046875  12377.77929688  14894.50976562  18048.8046875
  12173.27050781  17642.24804688  16807.703125    18743.04492188
  19297.7265625   14264.2734375   12851.71289062  13189.109375
  13463.0390625   16835.4765625   17088.96875     13493.58203125
  14600.984375    16236.4140625   13153.24804688  14883.71191406
  11423.25878906  17673.88867188  19175.55273438  16282.32910156
  14038.9765625   16675.3671875   17580.1171875   13868.08203125
  17787.15820312  16004.67382812  14799.15429688  11299.19726562
  14273.57226562  13511.88476562  13497.25195312  20602.0703125
  11404.015625    12360.95214844  15980.08789062  12912.4609375
  14975.97460938  13936.5546875   17377.8671875   13396.58007812
  13839.89160156  13224.91503906  15345.69433594  18595.796875
  20171.2109375   22432.01171875  15074.68652344  17351.26953125
  17563.23632812  18558.98632812  18109.58984375  12562.828125
  13021.09179688  17314.734375    16091.29296875  16064.68554688
  12589.68261719  14290.27539062  13974.19433594  12927.96875
  16650.58203125  12024.36523438  16512.984375    13748.73242188
  17192.09375     15568.16992188  13056.11230469  14584.265625
  16133.03515625  23686.48046875  17649.9765625   14111.5703125
  20719.58203125  16531.2109375   18482.29296875  14109.62207031
  16901.73046875  12968.28125     16131.015625    21828.97265625
  12721.21679688  16727.71484375  12856.15820312  21349.90234375
  12186.18847656  14209.24023438  12503.82421875  11461.97265625
  21437.05078125  14918.54882812  14442.109375    17584.4296875
  12093.046875    20173.3046875   16388.7578125   14604.43359375
  19311.80859375  12741.38574219  11685.41015625  19713.28320312
  13696.66894531  11442.625       15119.12890625  14962.60644531
  12547.68164062  15131.65917969  13474.34570312  21591.76171875
  13645.796875    18623.515625    13589.47460938  15050.06542969
  16400.07421875  14035.26367188  13669.20605469  11653.26757812
  11503.3203125   13677.44140625  11052.94042969  18024.90820312
  13807.71777344  16454.04296875  11532.1484375   15121.54101562
  13005.98046875  13300.90625     18830.57421875  14588.66796875
  17095.671875    17241.87890625  13763.39941406  17151.84765625
  14029.12890625  15957.85839844  21673.265625    16227.08203125
  13293.14453125  17445.27539062  13521.0078125   15516.94726562
  15771.49804688  14713.67773438  14680.53222656  12808.28515625
  13860.4296875   15940.02539062  11410.40332031  14707.51269531
  17094.65625     20561.53515625  15706.34960938  10717.20410156
  15292.19726562  12130.41992188  14791.38574219  19555.47265625
  17674.32617188  19357.88476562  20497.34765625  15766.64453125
  10780.41210938  21883.234375    18313.37695312  11350.421875
  17441.984375    18108.92578125  16745.09765625  13357.62792969
  15457.55664062  16381.29101562  19639.53125     15442.06152344
  13255.00585938  17711.76171875  14222.57519531  13986.98632812
  15850.60644531  15882.66015625  15081.171875    16367.046875
  17798.74609375  13834.67773438  15439.97070312  18354.64453125
  13988.05859375  14731.26660156  10917.73046875  12343.44238281
  14125.02246094  17567.39257812  14556.43359375  15896.296875
  15196.66992188  13706.35644531  15864.80078125  13561.73828125
  13881.89550781  16193.6015625   15918.65039062  17003.18359375
  19288.82421875  15451.71777344  17622.26171875  11076.06640625
  17962.12109375  25328.21484375  14691.68945312  20430.2890625
  15663.390625    22496.62890625  12375.62304688  15900.73535156
  17552.17773438  14784.65332031  16036.78417969  16447.42382812
  11802.29101562  15325.43554688  15246.02929688  13149.44921875
  14794.67773438  18007.66992188  15007.99414062  17821.42382812
  21051.2578125   18144.52734375  21225.09570312  16548.69140625
  15967.13085938  19842.671875    19041.14453125  12547.01269531
  12621.16601562  13204.11132812  12931.52148438  12868.84863281
  12743.38574219  14766.05761719  12599.93847656  11686.54296875
  15726.70117188  13825.45703125  15987.86230469  12167.58398438
  11522.5859375   11502.41992188  19551.40234375  12493.8203125
  16453.68554688  21793.96875     12955.99121094  14041.98046875
  13518.62402344  16157.38867188  14486.47851562  14950.9453125
  16458.5078125   18044.24804688  11879.515625    13036.7578125
  11928.34960938  15411.21289062  17454.84375     22747.47460938
  19074.484375    12762.37304688  12248.51953125  13174.14453125  16930.875
  10892.74023438  19427.8359375   26292.3125      11503.3203125
  12699.48046875  14552.734375    12494.10742188  17921.88476562
  15178.67285156  11541.60449219  13385.15039062  13902.52734375
  19664.36328125  15241.3671875   14333.88671875  19262.47265625
  22788.28515625  16726.90625     11673.40332031  22769.9921875
  11484.70507812  13482.95214844  16505.59960938  12901.81835938
  14450.2890625   16645.1796875   15545.90820312  14911.07421875
  11819.70800781  15386.71972656  14320.13085938  17061.13671875
  13325.52246094  18406.94921875  12808.81640625  20143.31835938
  13777.0703125   15761.69921875  22656.48632812  17494.5         18561.2890625
  16756.53515625  17403.921875    21911.4453125   17187.63671875
  11879.46289062  11748.18164062  13814.671875    16036.38085938
  17415.23828125  13446.42089844  17954.265625    11870.24023438
  15434.2734375   19335.25585938  13953.09765625  18520.95703125
  22739.26171875  17605.92578125  16710.9375      14087.74316406
  12769.16894531  12141.9765625   14484.91015625  19313.4296875
  13423.73632812  19076.46289062  13222.43554688  12761.93457031
  15847.38378906  11025.25585938  14707.68359375  22714.30859375
  22224.40234375  17500.390625    17170.25195312  12173.2109375   19794.75
  13357.90527344  15674.83203125  13521.80859375  18016.13671875
  16518.56054688  12427.71582031  16335.94042969  12753.25        12721.2578125
  14445.8359375   15878.0390625   15011.02929688  10635.9609375
  11639.51074219  18419.92578125  16980.44726562  15489.35742188
  15100.75585938  13687.79492188  12732.1953125   17306.5703125
  13111.43359375  17694.8125      11593.07617188  13139.63671875
  15957.31835938  22598.88671875  15723.19140625  12012.39257812
  18609.9375      14228.47167969  17390.171875    14843.09570312
  11463.87109375  18458.5078125   11408.92675781  16020.97167969
  15050.41894531  13937.25195312  16802.31445312  14857.33398438
  12229.49609375  15119.38769531  16815.171875    11880.74511719
  11283.73242188  14289.95507812  25161.59375     22734.83789062
  14587.11328125  16990.1875      13971.02734375  22690.34765625
  20381.99609375  14828.08203125  16577.3359375   14204.80273438
  11746.95703125  17233.19140625  12211.07128906  13719.23046875
  13416.34765625  16898.54296875  16451.3203125   15825.92773438
  15174.66308594  24546.52148438  14523.25683594  12426.32128906
  20072.7578125   17336.55078125  22739.7734375   14129.14257812
  13370.83203125  14649.39746094  16484.91015625  13110.59765625
  15185.17773438  15428.96484375  20355.08203125  12819.07226562
  15827.23242188  13928.91894531  12266.58105469  17448.17773438
  17471.34375     11707.40625     12631.1875      16851.7734375
  14250.17871094  11514.19140625  13689.9609375   11354.80664062
  14888.82617188  15764.28222656  16024.46289062  11412.40234375
  13409.40429688  11692.77734375  17901.73242188  14201.2265625
  16023.33691406  11208.73339844  14255.64257812  14580.55078125
  12222.76074219  13605.17089844  11928.27832031  11161.22460938
  12301.49609375  12952.75976562  15538.72460938  17889.51171875
  12143.77929688  16655.93359375  13620.97070312  10822.93652344
  17645.72070312  16256.95703125  15117.00683594  18138.046875
  20893.10351562  15203.09179688  16271.65234375  19965.67578125
  12566.71679688  12841.83300781  14971.18359375  15431.64355469
  19782.28125     20649.66796875  11253.0703125   12067.734375
  14952.38574219  11616.43164062  16569.18359375  15175.765625
  16709.45703125  18519.89453125  19680.07421875  13295.36621094
  12988.82617188  20353.40429688  14397.68847656  21078.1796875
  12338.16210938  17158.63671875  13097.67285156  14611.79785156
  13670.95898438  10614.15332031  21946.90234375  12512.59570312
  17263.89453125  15895.60351562  16142.75        10953.07617188
  10987.95507812  14363.8359375   11594.95996094  14505.04882812
  14122.98632812  15289.88476562  14822.29003906  12948.68457031
  19498.19140625  14875.29101562  17075.51171875  20732.58984375
  14906.29980469  14396.70507812  15946.484375    13473.28222656
  16667.26171875  15468.80273438  11550.81347656  15384.55273438
  18329.29296875  13634.421875    15558.87988281  14895.71289062
  16935.28710938  22023.26171875  19025.88671875  18984.58984375
  17358.56445312  15962.1640625   18648.94726562  15038.94726562
  16813.26757812  20581.51953125  14958.84765625  15006.0625      22869.53125
  12293.3515625   12505.63964844  18592.2421875   15838.06054688
  16787.046875    12879.56835938  12452.86816406  17073.61914062
  13042.43261719  21398.51367188  14721.68652344  14205.05273438
  14546.21484375  15540.22265625  14812.86328125  14388.96777344
  11711.91210938  22632.515625    18705.52929688  20857.99023438
  12183.31445312  11842.96972656  14262.50292969  14193.66894531
  14811.890625    17060.34570312  15499.26269531  13982.79394531
  16249.11523438  15614.2734375   13972.05664062  11895.69335938
  14127.56054688  11924.54492188  15242.4765625   12209.70117188
  17703.74023438  11127.22851562  14834.49511719  14449.57617188
  14866.75878906  13404.10351562  17851.85351562  14629.80175781
  17323.9140625   15507.83007812  13803.6484375   14931.06445312
  20896.8046875   17381.08007812  17465.4453125   16371.50390625
  13743.36914062  12827.16992188  19268.328125    23153.0234375
  16165.83007812  17096.7734375   14426.36523438  14478.49414062
  20343.66796875  17201.0625      13227.          21517.37109375
  22409.4296875   20639.4296875   14086.74902344  11944.87988281
  17386.89648438  17559.12109375  11808.62695312  16751.44140625
  14677.94726562  12815.05664062  17142.12109375  14338.09179688
  16430.76953125  15109.88964844  12937.62207031  16211.25292969
  20261.32421875  18763.69726562  13300.69921875  20319.6015625
  12283.15039062  28626.625       15754.83691406  13040.36523438
  19950.96484375  11820.05078125  12227.1171875   11973.11523438
  12245.09179688  11599.4296875   12280.45800781  16910.0703125
  17884.21484375  15769.25292969  16311.5859375   15183.42871094
  15504.85742188  21597.75390625  17483.55078125  18883.56054688
  13020.18945312  15642.36816406  18299.74804688  11920.22070312
  11778.53222656  16905.5859375   13683.20507812  18140.9609375
  12905.38378906  13765.5390625   19303.765625    14274.63085938
  22755.765625    18928.79296875  13186.19726562  13588.54492188
  21849.453125    13758.56835938  14784.61425781  16975.7421875
  16090.51464844  25620.88671875  16079.20703125  14224.65234375
  12067.20117188  19550.88085938  13114.25878906  20357.84375
  15279.79101562  17076.67578125  16876.5078125   20481.2421875
  15166.5703125   22745.39453125  20958.92578125  20318.53125
  20806.6328125   12083.31640625  14622.0625      16216.34179688
  15823.21289062  18556.15039062  19369.87890625  13132.37109375
  13764.42578125  18475.85546875  17359.203125    16089.4921875
  15619.484375    13869.87304688  19131.27734375  10969.29101562
  13730.65625     13524.10644531  19102.18945312  14390.25097656
  14419.77441406  16810.6796875   12282.1875      14169.02734375
  14387.80664062  13726.11914062  13736.21679688  15056.66796875
  14114.09667969  16291.03125     16192.19628906  16829.8125      12232.25
  18161.53125     12678.03808594  18130.60351562  17973.98828125
  18728.4921875   16610.00195312]

In [106]:
I = np.diag(np.random.rand(feats.shape[1]))
dists_e4 = np.dot(np.dot(feats - feat, I), (feats - feat).T).max(1)
print dists_e4


[     0.           7932.64400733   6621.77125647   7789.35355078
   7978.34034718   7487.90592051   5456.41472016   5056.65355067
   5191.86664905   7113.38870865   8465.52049617   8418.25770491
   8271.14732383   7554.52725831   8120.63494034   6795.76665209
   6566.05684747   7785.68145419   8742.19241985   7034.38262817
   8133.2274189    7478.16780255   7351.66688275   8076.64077607
   6238.94525199   9342.71569549   6994.47526384   8205.29323058
   6286.9469659    9319.76157749  13689.77103147   6926.90400408
   8270.00116579   7875.56130067   8466.77349252   7372.82818957
   7509.52265225   6986.68950851   7640.88486618  14551.67173752
   7789.30262497   8463.29752187   6392.32740302   6928.09495183
   7254.29577383   6543.40292626   9550.15023281   9668.24348496
   8542.30631192   9871.83160272   8211.6873925    5841.9230985
   9076.97983888   9535.06707734  11333.97635928   5735.57757128
   8029.9374336    7819.11523654   4852.02989992   6299.35743074
   8209.5093568    5615.72545802   7145.51341208   7489.41804807
   5892.76104012   9132.84854033  10189.05056016   8062.80184824
   7099.6234214    6836.11221685   7959.79839255   8360.39904741
  14498.60535112   5920.75024751   7144.62452068   6258.51205704
   7030.16409073   5775.77993541   8783.31125449   6465.67905054
   7189.83961907   9784.22163352   7646.51730065   6145.14137885
   9821.51415957   7204.6100439    8541.67248904   7988.46018419
   8503.74948298   8251.03947726   5838.9990503    6865.41914513
   6679.82960248   8741.88197847   6092.56635677   6634.08834914
   8808.95203995   4998.63868166   8261.82225988   7340.25014145
   6891.70084935   8747.48632028   6548.62097409   5679.53934408
   6707.55612686   5229.64942786  10078.35438562   8643.61705501
   5501.57495961   6283.53732782   7698.59359228   6729.13900834
   7035.58737665   7765.52204985   6592.77357969   7012.43864486
   6537.66660999   8519.64916959  10966.25933752   6993.06363994
   5037.16817535   6032.17620029   7318.96400453   7666.37775447
   7362.36318909   7241.04291248   8272.96068192   8006.14226168
   9072.09591057   8774.5250026   10357.1156266    7228.81761285
   6843.16173693   6912.98293197   6522.80808988   6381.79865567
   5356.47770748   8509.68444534   9178.18476692   5067.51731899
  12597.05968494   6582.42237349   7716.81381819   6698.78311284
   6593.44013954   9587.14873181   8035.41366293   6770.92119351
   7244.40119478   6063.21741572   6478.2949628    9575.6398044
   6815.51599694   8927.84788957   7597.74161312   7494.12787473
   7765.42348039   7359.00761664   6693.87908996   6420.94812325
   7835.57694089   9310.13386344   8432.52250169   8036.15757379
   9015.96026014   6038.08181957   7491.6020204    6991.23998247
   6673.62918062   9609.37621558   7247.75079061   8762.09485298
   8520.65708528   6857.78187945   5327.29386295   6282.41630525
   5190.37318523   6180.46278004   5906.49466231   5318.3183307
   6747.26933543   5569.64712999   7439.69618759   9043.47634607
   5781.92337661   8273.32757969  12121.80847563   6877.53725122
  10110.52862086   6455.67541723   9874.2340516    9705.96484071
   5504.97559884   6445.30942203   9783.67786592  10861.77328644
   7650.13075353   5975.21642188  11399.84590755   7000.86333278
   6292.68314296   6586.99726315   8364.76017249  10247.86360256
   6500.64706825   6115.81201789  11300.64078944   9466.58186245
   7435.26810927  10175.95422179   8463.42745623   8032.22111446
   4988.6019352    7711.95278697   8610.99384029   6333.60149107
   7519.3078017    5255.5401889    7711.21415161   8245.73332497
   7548.33168038   9060.22402958   7530.44480432   8559.85916354
  10277.63057215   6870.10967347   9681.89650181  11051.42994132
   6526.14871781   7913.44731819   7680.63901935   7112.47446955
   7850.85676281   9916.01569813   8643.84017199   9019.16461327
   6606.07105755   7657.15402695   7237.11967672   6247.68314098
   8911.81478894   6586.7729289   10900.40614414  13604.4356824
   6579.73522608   7455.0063907    5015.82688451   5569.49111179
   7032.82711712   8226.02189781   7306.20000438   6382.06190339
   8028.03785069   9539.85267335   6021.88816339   6243.27436386
   7669.16263173   6615.24461409   6973.16523321   5580.13629558
  10067.70888384   6871.19910765  12909.79205397   9329.56376113
   6736.36090089   7690.80032455   9379.47445554   4973.20735384
   4537.29328111   6719.71502144   5803.76108736   9927.77102864
   8269.96420753   8259.98699566   4753.02535996   9349.48459054
  11093.69808178   5926.47575861   7179.2662222    9062.5279117
   5966.6586864    8801.45847521   8375.53282244   9473.77037259
   9605.18869124   6971.83766504   6452.12851579   6576.41887457
   6622.87289766   8527.75191092   8301.68543801   6401.64079002
   6964.9662812    8187.23659755   6422.16714673   6999.21470868
   4486.24418237   8798.05950559   9301.07226509   7916.65801201
   7019.80341222   8107.22849902   8571.9384654    6813.69344226
   8890.08242439   7712.67633874   7199.0210623    5130.30783461
   7090.63617769   6613.67236976   6595.2074606   10434.62024425
   5366.02034312   6123.95121538   7985.18590787   6531.49901937
   7433.70565384   6798.93732167   8630.38369381   6625.12990057
   6690.63580755   6552.79328819   7657.77571354   9305.99044372
  10162.49352775  11382.2210323    7403.98547752   8802.2462152
   8602.75359299   9189.00921068   8649.49126356   6180.02675443
   6398.3850792    8769.72113748   7756.66117182   8079.16814121
   5938.28042477   6932.58054755   6833.9425708    6349.54133924
   8077.19911255   5897.68710412   8072.62521574   6789.46943338
   8471.58996238   7670.06197183   6449.39560484   7062.15808653
   7925.31695215  11568.86671746   8948.4878507    6898.06489856
  10298.42714424   8055.84843537   9477.84468901   6802.81907373
   8427.90527581   6394.33775299   7760.48994384  10247.41369672
   6230.85073995   8417.99476166   6226.16947967  10645.51094748
   5759.16898423   7131.69374072   6027.22763073   5126.39965653
  10361.31851283   7245.09389256   7142.8310223    8569.26045881
   5874.11117712  10068.48152815   8107.93301636   7180.30980851
   9551.11245146   5394.28472289   5764.04940684   9704.52040985
   6719.76084112   5621.31983471   7409.66835121   7136.93669519
   6447.35604466   7373.43672182   6609.62295856  10539.95491435
   6652.07384763   9229.76450774   6712.22921219   7394.39138935
   8039.43548699   6928.59022572   6664.24552123   5699.88975401
   5094.99814476   6644.52384776   5208.16958429   8821.54795217
   6643.32282962   7913.18189502   5616.33954972   7510.16458455
   6268.49986911   6716.11596109   9036.12741981   7263.78249017
   8326.82577376   8520.62749077   6681.64017274   8287.55702016
   6863.84870425   7830.12376449  10932.14740316   7951.72830364
   6634.89929147   8241.75122033   6603.05334866   7526.21741134
   7790.49143475   7126.41595543   7303.21352002   6074.01325788
   6992.9954109    7776.57523604   5567.74300828   7272.55967989
   8449.3726864   10525.42596839   7788.58415282   5270.68998615
   7399.78884534   5865.67128345   7262.82651793   9656.50889721
   8579.86141113   9387.61183643   9835.32290649   7731.93765394
   4202.50498968  10925.9199486    8931.2611923    3730.72363103
   8623.24858921   9212.93995732   8483.38522523   6596.36573113
   7823.92624335   7961.31526478   9895.3772084    7519.50190158
   6527.92956754   8891.41500199   7187.58090374   6930.39695536
   7757.26383845   7654.32376209   7519.31269861   7893.68296109
   8880.69942196   6895.75361307   7563.38750199   9196.56648085
   6907.08987254   7222.94296887   5287.7721615    6043.88124764
   6698.28268781   8552.87016791   7238.97505282   7867.72175904
   7302.09997042   6653.28281294   7894.40879815   6615.64427678
   6829.80712273   8076.32019839   7762.06233592   8303.8281987
   9935.11196369   7728.62337927   8847.1919615    4819.06127355
   8978.3650531   12705.76439661   7038.09559883  10405.09361906
   7609.76342232  11194.0491401    6226.90038934   7675.97712579
   8376.51681083   7022.41739912   7892.36580178   7928.12035599
   5364.2546477    7435.63267015   7515.81241941   6365.8085888
   7183.57435694   8746.12894228   7270.97381298   8744.0794877
  10387.21731531   8978.65343447  10568.61546506   8141.71596592
   7613.69403268   9563.77988586   9330.51170551   6327.1227377
   5988.34308204   6529.83440979   6234.22741621   6406.64572645
   6319.41533378   7200.50180737   6131.88340857   5653.1523444
   7928.23081854   6658.45150161   7750.86583235   5395.88061507
   5280.77585311   5738.62865485   9901.32291511   6038.80931565
   8170.87990618  10743.15688526   6190.34594447   6898.80959485
   6672.85791977   7837.83117796   7241.6833148    7351.83700711
   8097.91645263   8732.63361005   5317.69019723   6456.69900807
   5913.68683806   7658.28643246   8757.64550954  11522.4657791
   9555.77592772   6166.28533144   5883.22024459   6546.02182595
   8082.85923921   4570.91588742   9957.82072578  13470.99692728
   5753.63731932   6263.6049762    7296.64536253   6142.5422181
   8990.16854982   7340.25656243   4928.44672597   6573.78483946
   6809.62871055   9732.86719686   7547.2633615    6960.93714238
   9392.51901893  11018.89748189   8315.62081807   5673.61353052
  11088.68715428   4799.29705938   6606.11953991   8302.19183813
   5768.0880888    6853.9318689    8182.67781971   7686.16196503
   7238.50282031   5606.19735511   7458.68114921   6846.6264122
   8296.66426833   6573.62548646   9034.04260503   6048.62881393
  10098.81966659   7004.52802033   7821.2382023   11562.38422763
   8766.81212212   9275.85823627   8390.79696009   8788.2229315
  10573.37919686   8508.46597258   5553.8988943    4535.23322259
   6740.1735222    8008.77756345   8563.22011701   6592.29456072
   8851.88233514   5707.86938012   7472.91031215   9434.77939919
   6866.8850422    9149.44785536  11299.30505105   8600.28090574
   8577.17243759   6889.56604987   6252.55220922   5940.1456551
   6934.21841009   9917.07843113   6649.4360505    9771.59833262
   5742.9145032    6199.34020029   7567.7881377    4884.22029313
   7164.14410615  11158.82761444  11393.22649447   8735.54434276
   8166.68385567   5896.32765847  10068.42638463   6480.56224194
   7566.86970369   6619.72947758   8850.64577521   8117.7963856
   6166.06554972   8090.55280685   6026.94361494   6079.96207947
   7181.77363865   7865.13572271   7385.48653308   5277.22931819
   5803.22985273   9076.48662777   8521.72750581   7617.33436697
   7526.42637508   6776.43169428   6311.63536057   8662.67083106
   6337.27415457   8774.37469388   5496.22620807   6557.19885456
   8068.03525973  10712.94994154   7517.22345854   5999.03614022
   9509.53092779   6922.87767401   8572.26264331   7252.33823562
   5731.22513492   8975.82205732   5185.17033387   7803.85194248
   7517.42598933   6802.37705368   8218.45327967   7175.52587457
   5370.02551752   7333.24393081   8221.30284668   5756.38997309
   4307.10551692   7145.95713551  12603.44022624  11013.77499042
   7237.17180764   8354.74803525   6846.24381053  10977.68723264
   9918.34350873   7469.38595792   8095.52406699   6884.47637033
   5765.12778684   8667.25327182   6038.55215154   6578.2020268
   6682.50533693   8282.76592943   8136.26255476   7532.8760111
   7617.93927654  11758.06777016   7347.6444563    6131.68048731
  10256.00658043   8808.62617899  11067.63834729   7106.89443473
   6475.73266058   7154.33102571   8060.98937548   6165.77316046
   7325.24668603   7610.52155029  10008.92859366   6352.76431979
   7785.36333555   6833.28126347   6057.67858531   8570.33804839
   8641.01736936   5645.97562075   6110.77768443   8308.32831582
   7165.10121518   5375.96075746   6768.98316495   5534.2458556
   7267.0387646    7606.40700517   8115.32097851   5548.22784532
   6647.37382604   5437.75668167   8566.43639758   6851.77710418
   8059.81360401   4421.59376262   7048.28928545   7304.55232176
   5842.24483408   6622.98337475   5757.92557845   5337.3009775
   5968.91966086   6215.06752815   7648.78648712   8804.53952828
   5938.78879863   7932.06651773   6576.6667754    5149.01550018
   8649.4477908    8080.76433501   7528.55230228   9082.68427131
  10356.90474435   7478.89843183   8095.2357698   10135.25927699
   5665.39433438   6380.112408     7218.92069352   7512.33901641
   9536.15354364  10286.24826807   5198.72759585   5893.0099091
   7422.45077665   5488.05584143   8230.57090044   7455.03133654
   8157.37986423   9459.80111431   9826.95739535   6671.10530968
   5572.20340127  10437.13424233   7111.37336443  10130.4267992
   5955.83252643   8333.5091996    6204.09610269   6985.33679783
   6624.32710642   5020.32675921  10950.1797583    6261.42736326
   8287.84604958   7856.31740822   7921.10528577   5426.27304464
   5118.34563303   6993.80620996   5401.87906807   7173.65559836
   6682.95826436   7514.7548625    7319.89604069   6424.92854996
   9483.76962708   7451.27120063   8409.67706317  10235.08480729
   7269.72235506   7042.58768344   7756.37419946   6515.08271841
   8313.6627036    7372.76895868   5804.22976496   7743.86799412
   9124.94265375   6849.47280098   7463.31498062   7446.19675457
   8556.15615298  11203.83711552   9510.15960863   9215.52701683
   8604.69300122   8037.23802825   8981.72150444   7495.72889375
   8197.76469699  10169.70698203   7581.86282205   7167.93948422
  11679.0478873    5721.17328015   5523.44198189   9255.40829593
   7649.85384009   8444.76750472   6141.74877834   6102.38315509
   8324.66044713   6312.23343323  10633.02150578   7088.59260126
   6965.68763905   7245.68621932   7855.68911482   7368.05585725
   7034.06833286   5517.18884136  11205.38216112   9327.64222854
  10382.84386933   5663.44405185   5496.1413574    6928.68517917
   7000.92713677   7318.82385099   8225.91164189   7753.81754129
   6919.11985934   8152.87996809   7456.11473659   6781.41481571
   5680.71657246   6815.67157661   5822.15639288   7414.34581065
   5948.17103027   8680.82145092   4608.42871872   7442.03138493
   6988.52580013   7324.56072067   6466.12555293   8707.06785627
   7277.98201018   8477.58463358   7575.46282141   6768.1828927
   7249.00882941  10623.13250297   8728.08298202   8801.41480926
   8037.10856791   6773.42578535   6490.57324826   9750.41815909
  11790.92362288   8160.19814598   8535.35283119   7069.02931269
   7105.08125741  10291.79780134   8441.37244595   5680.92977978
  10728.06944998  11200.06961597  10408.49752996   6966.61000433
   5791.9977697    8586.85850724   8430.06940384   5535.74217324
   8310.61935805   7247.14234399   6298.74061421   8748.48437162
   7047.10957983   8127.19348123   7422.51509345   6357.46378508
   7827.7249199    9666.07684987   9336.22334335   6403.35239095
  10293.70262578   5928.50356189  14373.38407067   7825.9580429
   6492.9364923    9718.79259826   5270.14551176   4210.97274791
   5270.23721208   5668.68679285   5713.51948669   6064.21600515
   8262.41467539   8795.51598263   7662.53707688   7902.6825687
   7362.62260211   7710.20149027  10766.63228557   8937.00364146
   9667.58932509   6340.81565363   7783.93768647   9007.25510762
   5664.15046523   5126.48260767   8192.27210725   6692.85380062
   8691.00845461   6265.43889315   6824.23084814   9718.42374225
   7026.62144922  11721.52595746   9401.47612498   6373.57685781
   6680.96395547  10759.08824124   6637.77178542   7156.49505647
   8331.09062354   7690.03189336  12869.89763373   7941.43312347
   6954.99400191   5997.16450321   9820.49598409   6513.56997794
  10329.1428644    7464.03596227   8282.7342224    8304.61886642
  10650.57318566   7349.27686427  11632.00102346  10873.93593419
  10521.97425931  10634.70258652   5676.94434768   7138.51882326
   8150.70340542   7715.55324569   9101.9319478    9798.55526845
   5703.07981878   6785.11133298   9229.3550634    8474.2159436
   8002.03540648   7597.36387225   6761.98523022   9351.97980355
   5531.04033256   6852.96909839   6647.97175764   9131.52651091
   6885.3115455    7045.63540173   8368.38413886   6024.22782666
   6771.20701242   7076.08317013   6597.84273196   6882.24508038
   7313.87831745   6873.05997627   8105.21379114   8131.40630678
   8314.69763906   6014.42077076   9153.38419429   6172.68857835
   8846.98600585   8893.7398542    9547.51109586   8091.32847495]

In [107]:
dists_e6 = (np.dot(np.dot(feats, I), feats.T) - 2 * np.dot(np.dot(feats, I), feat) + np.dot(np.dot(feat, I), feat)).max(1)
dists_e6.flat[::dists_e6.shape[0] + 1] = 0.0
print dists_e6


[     0.           7932.64401408   6621.77126485   7789.35353862
   7978.34035039   7487.90592013   6154.12702808   5405.90792738
   5370.67514459   7113.3886922    8465.52049366   8418.25771175
   8271.14733762   7554.52727129   8120.63495864   6795.76664397
   6566.05682672   7785.68145589   8742.19241678   7034.38263374
   8133.22741822   7478.16780179   7351.66688558   8076.64077281
   6238.94525978   9342.71569478   6994.47525675   8205.29322407
   6286.94697604   9319.76158016  13689.77106087   6926.90400573
   8270.00117972   7875.56129845   8466.77348502   7372.82819261
   7509.52264177   6986.68951401   7640.88486468  14551.67174961
   7789.30264232   8463.29752389   6392.32742618   6928.0949497
   7254.29578605   6543.40293613   9550.15022054   9668.24347613
   8542.30631357   9871.83161241   8211.68739454   5841.92308881
   9076.97983949   9535.06705984  11333.97635942   5735.57756965
   8029.93743819   7819.11524169   5590.04656491   6299.35743294
   8209.50936182   5837.17364911   7145.51340545   7489.41805132
   6012.40142029   9132.84854685  10189.05056388   8062.80186109
   7099.62340598   6836.11223382   7959.79837437   8360.39905373
  14498.60535755   6166.197422     7144.62450971   6258.51204953
   7030.16411139   5775.77993175   8783.3112553    6465.67904216
   7189.83962097   9784.22163422   7646.51730414   6145.14138304
   9821.51416162   7204.61004081   8541.67249716   7988.46018763
   8503.74950603   8251.03946468   5855.26438044   6865.41915389
   6679.82960601   8741.88196443   6092.56635363   6634.08834838
   8808.95203841   5559.23749062   8261.82227134   7340.25015928
   6891.7008471    8747.48632588   6548.62099079   5679.53935566
   6707.55613206   5451.14335688  10078.35439409   8643.61705854
   5597.08913732   6283.53733109   7698.59360531   6729.13900989
   7035.58736437   7765.52203786   6592.7735962    7012.43864709
   6537.66663103   8519.64916577  10966.25933916   6993.06364219
   5728.38151888   6032.17619511   7318.96399895   7666.37775932
   7362.36318588   7241.04289958   8272.96067837   8006.14224482
   9072.09590408   8774.524997    10357.11562793   7228.81763554
   6843.16175462   6912.98294979   6522.80809135   6381.79865067
   5374.98108501   8509.68443831   9178.1847701    5730.38771937
  12597.05968424   6582.42236725   7716.81381917   6698.78311098
   6593.44014663   9587.14874471   8035.41364756   6770.92119605
   7244.40119599   6063.2174198    6478.29496664   9575.63980431
   6815.51600651   8927.84790245   7597.74161733   7494.12787577
   7765.42348493   7359.00762063   6693.87908739   6420.94811982
   7835.57693976   9310.13388299   8432.52249898   8036.15757253
   9015.96025616   6112.25211985   7491.60203248   6991.23998424
   6673.62918717   9609.37621507   7247.75081551   8762.09485229
   8520.65709611   6857.78188596   6052.98013061   6282.41631104
   5869.6549656    6180.46277195   5906.4946623    5443.53460489
   6747.26932689   6043.68083564   7439.69619314   9043.47635663
   5890.71256928   8273.32758665  12121.80848948   6877.53724798
  10110.52861241   6455.675406     9874.2340421    9705.96484704
   6174.6177594    6445.30942265   9783.67786327  10861.77328545
   7650.13076409   5975.21642248  11399.84589914   7000.86333704
   6292.68314353   6586.99726949   8364.76016482  10247.86361339
   6500.64707245   6357.2893594   11300.64077592   9466.58186582
   7435.26810803  10175.95422082   8463.42746968   8032.22112062
   5259.01724629   7711.95277898   8610.99383374   6333.60149657
   7519.30780839   5835.17128358   7711.2141514    8245.73332733
   7548.33168003   9060.22403287   7530.44480483   8559.85916036
  10277.63055813   6870.10967696   9681.89650355  11051.42993616
   6526.14873218   7913.4473198    7680.63902195   7112.47446958
   7850.85677073   9916.01569313   8643.84017029   9019.16460909
   6606.07105331   7657.15401857   7237.11967094   6247.68315029
   8911.81480645   6586.77293347  10900.40614216  13604.43566784
   6579.73521887   7455.00639539   5868.97416342   5569.49111312
   7032.82711525   8226.02190962   7306.20001069   6397.3600147
   8028.0378545    9539.85266351   6021.88817916   6243.27435325
   7669.16263755   6615.24460991   6973.16523822   5707.02412699
  10067.70888217   6871.19911151  12909.79203857   9329.56376081
   6736.36088823   7690.80033018   9379.47445317   5678.75417345
   5530.91106773   6719.71501063   6430.94756185   9927.77101727
   8269.96421608   8259.98700013   5352.32072054   9349.48458195
  11093.69809436   6068.04308122   7179.26623287   9062.52790573
   5966.65868854   8801.45846788   8375.53281332   9473.77036972
   9605.18868278   6971.83766434   6452.1285279    6576.41886063
   6622.87290319   8527.751904     8301.68543537   6611.85874356
   6964.96628392   8187.23661987   6422.16714104   6999.21470499
   5473.32510336   8798.05949583   9301.07228824   7916.65800694
   7019.80342562   8107.22851158   8571.93845985   6813.69342486
   8890.08242547   7712.67633352   7199.0210584    5585.80313048
   7090.63619394   6613.67236157   6595.20745171  10434.62026284
   5566.71826912   6123.95121594   7985.18589305   6531.49903401
   7433.70565804   6798.93731821   8630.38369669   6625.12988403
   6690.63580626   6552.79328839   7657.77570829   9305.99045443
  10162.4935405   11382.22102325   7403.98548462   8802.24621852
   8602.75359382   9189.00921637   8649.49126706   6180.02674738
   6398.38506933   8769.7211469    7756.66118219   8079.168132
   5938.28042883   6932.58054846   6833.94256878   6349.54133435
   8077.19911287   5897.68710706   8072.62521994   6789.46942288
   8471.5899575    7670.06199072   6449.39559577   7062.1580833
   7925.31695943  11568.86670604   8948.48785671   6898.06489834
  10298.42715552   8055.84843893   9477.84468015   6829.71777875
   8427.90527906   6394.33776089   7760.48993372  10247.41370758
   6230.85075085   8417.99477282   6226.1694846   10645.51093779
   5950.08773868   7131.69374619   6189.2900249    5702.82384323
  10361.31851495   7245.09389196   7142.83102763   8569.26045709
   5942.87039197  10068.48151088   8107.93302377   7180.30982154
   9551.11246778   6308.48975587   5764.04939715   9704.52043605
   6719.76084143   5737.3762142    7409.66835555   7136.9366886
   6447.35603158   7373.43673354   6609.6229557   10539.95490411
   6652.07384779   9229.76452142   6712.22920666   7394.39139407
   8039.43548896   6928.59021869   6664.24550805   5699.8897809
   5717.93295978   6644.52384097   5514.50796691   8821.54794601
   6643.32283337   7913.18190172   5817.71581104   7510.16458647
   6268.49988483   6716.11595823   9036.12741571   7263.7824972
   8326.82578106   8520.62747876   6681.64015599   8287.55701595
   6863.84870707   7830.12378363  10932.14741977   7951.72831828
   6634.89930009   8241.7512323    6603.05334822   7526.21741551
   7790.49142969   7126.41595315   7303.21352014   6199.98061479
   6992.99541016   7776.57523668   5973.64030154   7272.55966835
   8449.37268385  10525.42597233   7788.5841533    5385.30289813
   7399.78885665   5865.67128791   7262.82652229   9656.50890697
   8579.86142588   9387.61183567   9835.322888     7731.93764897
   5325.69370908  10925.91992821   8931.26119592   5612.13544945
   8623.24858056   9212.93996947   8483.38522165   6596.3657301
   7823.92623748   7961.31525669   9895.37722885   7519.50191276
   6527.92955966   8891.41500492   7187.58090482   6930.39695368
   7757.26383673   7654.32376243   7519.31271715   7893.6829561
   8880.69940649   6895.75361247   7563.3874983    9196.5664968
   6907.08985945   7222.94297484   5387.19690975   6043.88123769
   6698.28269855   8552.87017011   7238.97503721   7867.72176972
   7302.09997355   6653.2828029    7894.40880833   6615.64427599
   6829.80711438   8076.32021151   7762.06233464   8303.82819336
   9935.11196014   7728.62337061   8847.19196525   5580.38581124
   8978.36505682  12705.76439509   7038.09560083  10405.09361098
   7609.76343004  11194.04914035   6226.9003833    7675.97712896
   8376.51681302   7022.41740218   7892.36581675   7928.12034261
   5900.23207547   7435.63266306   7515.81242682   6365.80859162
   7183.57435376   8746.12894895   7270.97381098   8744.07950008
  10387.21732374   8978.65344237  10568.61546431   8141.71597259
   7613.69402971   9563.77987554   9330.51170277   6327.1227326
   6093.87912508   6529.83440224   6234.22741607   6406.64572967
   6319.41533149   7200.50181593   6328.20024047   5653.15235495
   7928.23083248   6658.45150726   7750.86585064   5904.65802273
   5534.51879615   5738.62864965   9901.32290287   6102.51515057
   8170.87990635  10743.15688272   6190.34595399   6898.80958312
   6672.85791999   7837.83117502   7241.68331972   7351.83698726
   8097.91645806   8732.63358788   5807.81684944   6456.69902656
   5913.68685408   7658.28643847   8757.64550272  11522.46578033
   9555.77593268   6166.28534256   5883.22024461   6546.02183347
   8082.85924439   5351.62631988   9957.82072946  13470.99693387
   5753.6373237    6263.60496697   7296.64535745   6142.54223149
   8990.16855096   7340.2565485    5708.05642332   6573.78484655
   6809.62872062   9732.86718687   7547.2633678    6960.93714765
   9392.5190332   11018.89748863   8315.62082118   5673.61354097
  11088.68714972   5648.50436743   6606.11954857   8302.19184026
   6315.05509735   6898.91163821   8182.67781991   7686.16197379
   7238.50280948   5882.46219623   7458.68114265   6846.6264118
   8296.66427371   6573.62548128   9034.0426053    6288.09205429
  10098.81967055   7004.5280306    7821.23819523  11562.38422202
   8766.81213058   9275.85823843   8390.79696498   8788.22292598
  10573.37919359   8508.46596239   5797.82374175   5788.43786799
   6740.17351827   8008.77757644   8563.22012033   6592.29456726
   8851.88233857   5707.8693721    7472.9103183    9434.77940881
   6866.88503997   9149.44785477  11299.30504296   8600.28089874
   8577.17243724   6889.56605462   6252.55220725   5940.1456607
   6934.21842303   9917.07843046   6649.43607216   9771.5983443
   6350.26307359   6199.34019738   7567.78813347   5451.47637922
   7164.14411642  11158.82762235  11393.22649348   8735.54433914
   8166.68385079   5896.32765586  10068.42639205   6480.56224491
   7566.86971379   6619.72947594   8850.64577528   8117.79638423
   6166.06553909   8090.5528174    6026.94362281   6217.00274217
   7181.77363313   7865.13572359   7385.48652471   5277.22932718
   5803.22985586   9076.4866382    8521.72748838   7617.33437547
   7526.426376     6776.43169112   6311.63536712   8662.67082665
   6467.45440419   8774.37468925   5763.35346336   6557.19885571
   8068.03525137  10712.94996542   7517.22345224   5999.03613454
   9509.53092432   6922.87766641   8572.26264502   7252.33824673
   5731.22513009   8975.82205996   5707.29038373   7803.85194056
   7517.42598788   6802.37704572   8218.45328323   7175.5258765
   5973.487216     7333.24393239   8221.30284476   5756.38997372
   5612.10154344   7145.95713714  12603.4402081   11013.77498564
   7237.17182506   8354.74804126   6846.24380737  10977.68723531
   9918.34350557   7469.38598002   8095.52408467   6884.47636488
   5765.12779811   8667.25327801   6038.55214493   6578.20202613
   6682.50533646   8282.76593818   8136.26254955   7532.87601345
   7617.93926334  11758.06774987   7347.64447698   6131.68050286
  10256.00658597   8808.62616755  11067.6383247    7106.89444173
   6475.73265529   7154.33101654   8060.98938388   6449.63023495
   7325.24667986   7610.52155626  10008.92861157   6352.76431875
   7785.3633286    6833.28126953   6057.67858701   8570.33805135
   8641.01736889   5645.97561768   6110.77767357   8308.32832947
   7165.10121622   5743.58234749   6768.98316248   5563.36639677
   7267.03876414   7606.40699881   8115.32097848   5548.22784507
   6647.37384064   5722.00461243   8566.43640015   6851.77710872
   8059.8136065    5562.68631771   7048.28928597   7304.55232162
   5842.24484013   6622.98338111   5842.02612906   5527.54746229
   6042.7780111    6372.77358966   7648.78648972   8804.53952673
   5938.78879339   7932.06650925   6576.6667659    5445.76905887
   8649.4477915    8080.76434213   7528.55228615   9082.68428629
  10356.90475302   7478.8984146    8095.23576295  10135.25927208
   6083.04393048   6380.11242265   7218.9206908    7512.33901939
   9536.15354574  10286.24827986   5543.37812657   5893.00990267
   7422.45077546   5679.14943658   8230.57090242   7455.0313316
   8157.37988767   9459.80112469   9826.95734856   6671.10531487
   6354.79414713  10437.13422913   7111.37335898  10130.42679105
   5955.83252099   8333.50919972   6465.24062031   6985.33679875
   6624.32710298   5246.30245742  10950.17977853   6261.42735571
   8287.84604714   7856.31741581   7921.10526588   5426.27304482
   5494.69449226   6993.80619388   5698.92750025   7173.65559178
   6682.95827668   7514.75488021   7319.8960438    6424.92855736
   9483.76962967   7451.27121741   8409.67705675  10235.08481251
   7269.72235349   7042.58768006   7756.37421282   6515.08271651
   8313.66271256   7372.76896543   5804.2297549    7743.86798164
   9124.94266567   6849.47279597   7463.31498776   7446.19674029
   8556.15616466  11203.83711825   9510.15960912   9215.52702355
   8604.69300405   8037.23803527   8981.72151333   7495.72890549
   8197.76470215  10169.70699351   7581.86281772   7167.93947996
  11679.04787147   6068.34950938   6168.63559625   9255.40829373
   7649.85384466   8444.76750109   6141.74877783   6102.38315488
   8324.66043239   6312.23343865  10633.02149205   7088.59260764
   6965.68764169   7245.68622965   7855.68911564   7368.05585777
   7034.06834794   5802.12021025  11205.38216795   9327.64222912
  10382.84387576   5809.76613752   5773.24244142   6928.68516984
   7000.92712777   7318.82385978   8225.91163392   7753.81753961
   6919.11986392   8152.87998311   7456.11473153   6781.4148249
   5830.86983744   6815.67157606   5855.56978957   7414.34581752
   5948.17102333   8680.82145429   5582.44852257   7442.03137596
   6988.52579207   7324.56072387   6466.1255543    8707.06784691
   7277.98199944   8477.58462526   7575.46282427   6768.18289435
   7249.00883737  10623.13251275   8728.08299028   8801.41480003
   8037.10856235   6773.42578516   6490.57326258   9750.41816966
  11790.92364073   8160.19815412   8535.35283092   7069.02931806
   7105.08124386  10291.7978029    8441.37244976   6429.54298574
  10728.0694437   11200.06962212  10408.49751821   6966.61000281
   5791.99775988   8586.85850813   8430.0694099    5701.87039905
   8310.61935639   7247.14232801   6298.74061685   8748.48437428
   7047.10958273   8127.1934816    7422.51509614   6357.46377613
   7827.72490641   9666.07685576   9336.22334396   6403.35239827
  10293.70262977   5928.50357147  14373.38406088   7825.95804194
   6492.93648849   9718.79260369   5678.16119395   6017.83641328
   5778.5097472    5910.76117663   5713.5194841    6064.21602801
   8262.4146776    8795.51598414   7662.53706716   7902.68257907
   7362.62260643   7710.20149363  10766.63228642   8937.0036374
   9667.58933895   6340.81564154   7783.93770066   9007.25509341
   5726.48413606   5801.48748796   8192.27209947   6692.85379918
   8691.00843693   6265.43888683   6824.23084326   9718.42374945
   7026.62145882  11721.52596412   9401.47610797   6373.57687508
   6680.96395646  10759.08826214   6637.77176573   7156.49504668
   8331.09062382   7690.03188812  12869.89764676   7941.43312742
   6954.99400764   5997.16452217   9820.49598912   6513.56998143
  10329.14285983   7464.035955     8282.73421895   8304.61887665
  10650.57318618   7349.27685751  11632.00100024  10873.93596506
  10521.9742683   10634.70257917   5776.69636679   7138.51881712
   8150.70340617   7715.55323656   9101.93195405   9798.5552593
   6302.66342528   6785.11133481   9229.35505944   8474.21593943
   8002.03540516   7597.36389036   6761.98523165   9351.97981157
   5531.04031514   6852.9691019    6647.97175532   9131.52650977
   6885.31154148   7045.63540365   8368.38413644   6024.22782766
   6771.2069987    7076.08316822   6597.84272333   6882.24508863
   7313.87832163   6873.05999804   8105.21379233   8131.40628896
   8314.6976345    6135.92977987   9153.38419537   6172.68857825
   8846.98600959   8893.73985162   9547.51110156   8091.32848617]

In [128]:
diff = feats - feat
dists_m = np.dot(np.dot(diff, S), diff.T).max(1)
print dists_m


[  0.00000000e+00   6.67371872e+22   1.92129161e+22 ...,   3.55378790e+21
   4.94384933e+22   2.70183958e+22]

In [115]:
dists_m2 = (np.dot(np.dot(feats, S), feats.T) - 2 * np.dot(np.dot(feats, S), feat) + np.dot(np.dot(feat, S), feat)).max(1)
dists_m2.flat[::dists_m2.shape[0] + 1] = 0.0
print dists_m2


1 loops, best of 3: 1.33 s per loop
[ 0.          1.72585096  1.45449972  1.67682648  1.61590496  2.09476291
  1.34326397  1.39897748  1.50617424  1.45457989  1.1433198   2.08259481
  1.84591762  1.51239373  1.47208156  1.43799425  1.27610218  1.19545956
  1.49880789  1.44432068  1.34879423  1.84548779  1.45437458  1.22107375
  1.68044583  2.08041808  1.22167182  1.7355906   1.43201054  1.36315054
  1.36823685  1.46658596  1.36580255  1.31484965  1.28057012  1.46758599
  1.48842251  1.44355141  1.51524808  1.48325356  1.44991792  1.74778581
  1.23313563  1.3339787   1.34040795  1.29661546  1.52182904  1.85290023
  2.14858354  1.5157791   1.69605632  1.36600231  1.39478115  1.7242366
  3.57621224  2.02140321  1.69364239  1.42418744  1.33481724  1.64361347
  1.61106803  1.86536126  1.35903575  1.22458212  1.52645478  1.39696389
  2.10400269  1.42079228  1.5698522   1.40966906  1.41732227  1.71383498
  1.46846204  1.95827597  1.41080961  1.71838126  1.63318962  1.67710278
  1.30203813  2.14819058  1.52595225  4.00659894  2.01276571  1.31618159
  1.5708647   1.33709436  1.32415227  1.22906401  1.29912238  1.27585591
  1.29253498  1.32555005  1.62318295  1.64885984  1.26728094  1.43477349
  2.77679916  1.28957174  1.47669409  1.43723023  1.31971216  1.35218093
  1.34491115  1.371382    1.39768918  1.42185084  1.42100268  1.48775006
  1.27137881  1.31440955  1.80570133  1.35188645  1.35759005  1.7864301
  2.08229406  1.52228532  1.31807526  1.49704473  1.50531511  1.45277227
  1.3606461   1.30005555  1.33376761  1.3139401   1.68166832  1.46375339
  1.22389222  1.26563312  1.44521259  1.16999314  1.45429163  1.25686175
  1.40155596  1.34568777  1.44850871  1.31596268  1.77092897  1.68710282
  1.46826709  1.39652376  2.47308617  1.38392127  1.59112919  1.45833731
  1.37866882  1.75581142  1.28809368  1.38794697  1.38909267  1.45961986
  1.37498137  1.32893145  1.7928629   1.59653447  1.42754232  1.35446896
  1.32284119  1.56722268  1.56955145  1.29803266  1.41817759  1.48572469
  1.53394674  1.28248344  1.94792107  1.41675713  1.33652674  1.50866718
  1.35742828  1.39286536  1.44602314  1.70799108  1.62237791  2.54493125
  1.45195184  1.46683435  1.5396173   1.4452153   1.32875647  1.31576546
  1.36799417  1.42777377  1.72130215  1.33519426  1.51836055  1.2161254
  1.23475563  1.12941105  3.20179443  1.36576612  1.70858497  1.4321336
  1.3807713   1.88296919  1.57821938  1.29351892  1.41313486  1.48967089
  1.51477219  1.57084911  1.61287094  1.63655151  1.41201682  1.28430174
  1.45801154  1.2981795   1.48276047  1.47431926  1.40133878  2.03486595
  1.46658291  1.41098396  1.36384693  1.44251542  1.56067958  1.45435349
  1.35929062  1.55861233  1.403127    1.34153402  1.91051677  1.37591542
  1.30750191  1.20113414  1.45076516  1.37689418  1.21273482  1.20158058
  1.43017238  1.54874665  1.2686019   1.71000402  1.44079084  1.63734399
  1.35392394  1.35617701  1.46723433  1.32185393  1.46968398  1.25732086
  2.38384289  1.7446397   1.89157432  1.83030985  1.38767177  1.26262888
  1.37090845  1.35427372  1.34657449  1.32041153  1.49303217  1.64905896
  1.55267166  1.19992826  1.26268495  1.32092786  1.54612941  1.46828992
  1.38998929  1.32944482  1.2757587   1.53891111  1.50294621  2.72103262
  1.4990535   1.38601465  1.57480373  1.37299725  1.43146016  1.38646503
  1.49349771  1.4342557   2.46130829  1.70713324  1.39135875  1.41959383
  1.5196563   1.59991794  1.57758834  1.67155206  1.54495512  1.48559613
  2.20546218  1.89278102  2.9066254   1.39701067  1.42713649  1.43380206
  1.26164898  1.39674004  1.47068285  1.41502231  1.45641352  1.30952697
  1.23738152  1.62310808  1.43809861  1.41785986  1.45195118  1.33041159
  1.33452833  1.40929811  1.28888971  2.12125187  1.37081929  1.3593599
  1.32126217  1.53637192  1.88956386  1.49848105  1.4007395   1.51613391
  1.34260295  1.39630513  1.32236687  1.4819407   1.71886112  1.36501712
  1.31332327  1.31362504  1.36923726  1.40079989  1.49990841  1.34467752
  1.83520948  1.30211704  1.39598936  1.75327785  1.25632309  1.17518832
  1.70240785  1.35144834  1.41759647  1.41530068  1.39276481  1.523169
  1.45881298  1.44885786  1.2985644   1.45433398  1.37460972  1.3076635
  1.74546448  1.50779121  1.39311174  1.435264    1.32344028  1.31304513
  1.64207852  2.11438202  1.68225555  1.4156197   3.03842712  1.45335649
  1.90251286  1.29954823  1.48833091  1.86903052  1.38866581  1.48781354
  1.2971874   1.3988659   1.43043701  1.58009258  1.31874009  1.29974283
  1.39059358  1.23408127  1.68093321  1.36009813  1.52619966  1.26997923
  1.36106125  1.41030392  1.58939339  1.75969281  1.38729811  1.31482652
  1.27346886  1.44627361  1.307935    1.42219252  1.44010457  1.36989475
  1.35517855  1.44254107  1.48860268  1.46841905  1.56531381  1.30120076
  1.52515589  1.77110501  1.5485784   1.30237083  1.39609445  1.65192117
  1.42783857  1.30464147  1.44127137  1.4810598   1.33620994  1.41376359
  1.3411314   1.3532733   1.47667439  1.68542588  1.90235175  1.30228527
  1.34259582  1.42558693  1.298998    1.17564144  1.30153075  1.37471718
  1.35845796  1.55117369  1.58161161  1.40053547  1.26429345  1.34352867
  1.34591255  1.29174123  2.31795776  1.80920364  1.32107776  1.45047041
  1.36298069  1.41779423  1.51980267  1.70926421  1.28783877  1.38403057
  1.87654996  1.31387956  1.41416442  1.30553917  1.67583479  1.37731688
  1.55733908  1.38355993  1.40402433  2.5216986   1.32421997  1.48536478
  1.55690136  1.47201857  1.24849311  1.24117373  1.2358423   1.24856733
  1.29753349  1.49995082  1.43505011  1.36255516  1.53008265  1.40705389
  1.43473108  1.23401161  1.40491287  1.54393047  1.31038875  1.44653034
  2.0143338   1.31687085  1.52296631  1.6944509   1.46724886  1.40055061
  2.38499283  1.30351819  1.33410142  1.41011546  1.58783713  1.36200688
  1.37432041  1.26652679  1.28385898  1.66168591  1.29251042  1.4109499
  1.32343803  1.58262533  1.49615704  1.34783607  1.3880064   2.54955294
  1.21226455  1.41902207  1.19455112  1.36822852  1.24026308  1.21554344
  1.46389957  1.46979828  1.43944215  1.27567766  1.43943892  1.31376724
  1.21584073  1.43045469  1.42998385  1.88627822  1.2680772   1.42074507
  1.46738155  1.7303465   1.62043423  1.35971002  1.51071773  1.53205514
  1.95084122  1.36058372  1.48844316  1.66920827  1.36156141  1.40762964
  1.52322801  1.52792134  1.35802747  1.53637246  1.40841948  1.51537445
  1.42601251  1.27889023  1.7753886   1.37220439  1.50706618  1.51416229
  1.66930834  1.28838609  1.50593703  1.22366537  1.35276877  1.3844749
  1.49628891  1.36506973  1.41054734  1.58138137  1.37171356  1.58905913
  1.40640994  1.3455054   1.36079094  1.3288304   1.53936335  1.42884938
  1.32724957  1.47416083  1.39503796  1.36503716  2.32045284  1.39090271
  1.87097694  1.27601646  1.20481094  1.32146978  1.51933798  1.38813355
  1.36799655  1.28551827  1.39582628  1.41977815  1.33187156  1.44228704
  1.34637237  1.61890657  1.4089814   1.46669436  1.70778192  2.20050324
  1.90940593  1.64530551  1.39016555  1.88740239  1.48789231  1.26352542
  1.51701073  1.33543817  1.97463827  1.63850603  1.4137363   1.66312126
  1.98680246  1.29192523  1.50538968  1.43599275  1.29323617  1.2793385
  1.29795497  1.4113598   1.5985705   1.70225596  1.24224158  1.31641842
  2.2134135   2.119245    1.38329676  1.4513553   1.48463532  1.38140977
  1.44438009  1.43625921  1.46833605  1.65142887  1.37836679  1.4741764
  1.30583286  1.59877338  1.34126637  1.68617062  1.76220562  1.30966137
  1.31762434  1.71716236  1.54512677  4.75876176  1.48440569  1.3675554
  1.34404976  1.59417595  1.66247049  1.98822472  1.32262256  1.37009452
  1.88197394  2.03728234  1.50278593  1.5111738   1.35026595  1.49017729
  1.45862149  1.44060147  1.41344943  1.52963857  2.10410016  1.38010959
  1.41952253  1.36644651  1.38251551  1.38704211  1.205925    1.41917814
  1.3185674   1.33383988  1.38792478  1.43724216  1.52362388  1.80755135
  1.24857726  1.89268321  1.9601211   1.38930647  1.52758077  1.84809217
  1.31428554  1.36721199  1.66394878  1.79573744  1.24298636  1.23772098
  1.90182619  1.30463797  1.88302362  1.25162047  1.28235526  1.29580706
  1.23403004  1.43756731  1.48160907  1.38423214  1.40933404  1.39416324
  1.9211281   1.54792564  1.51839491  1.56297347  1.491117    1.45410358
  1.43077021  1.37023038  1.64861528  1.32592927  1.33301243  1.33305646
  1.39107943  1.32356635  1.39354327  1.53024944  2.10439848  1.47876603
  1.57340817  2.34093917  1.44493845  1.75765925  2.33642923  1.34884851
  1.78890203  1.60263215  1.54816149  1.43754583  1.0979264   1.56301232
  1.35286659  1.52165094  1.23119654  1.82590491  1.44276933  1.36843852
  1.50434471  1.46892728  1.30347137  1.4535596   1.70600297  1.40914422
  1.79262884  1.36615593  1.77122738  1.4356144   1.4650291   1.53187326
  1.21063456  1.37646132  1.43665007  1.3578015   1.42985482  1.42884966
  1.37773244  2.080385    1.33249896  1.61112155  1.2788204   1.24549803
  1.50432283  1.30951977  1.36426995  1.34851441  1.38068527  1.56560014
  2.05116768  1.32470406  1.44713462  1.18852746  1.34318882  1.39376196
  1.28993639  1.45402346  1.82579517  1.64718367  1.76563737  1.30159026
  1.2775753   1.58585411  1.34286774  1.38957847  1.37725692  1.69164247
  1.67590179  1.66019931  1.34885018  1.58176041  1.42276252  1.395087
  1.75693957  1.44914337  1.27294232  1.63342877  1.78651809  1.68978183
  1.95629136  2.31152073  1.30126752  1.34234242  1.51810716  1.32470599
  1.56768725  1.59262006  1.39118441  1.4265284   1.50092271  1.22698801
  1.45624628  1.53679483  1.7861336   1.32467984  1.41483852  1.31969674
  1.35144393  1.34922558  1.37725042  1.28178018  1.43269288  1.4228392
  1.4538915   1.37649166  1.64744246  1.50812484  1.24700662  1.35126663
  1.38805131  1.46268421  1.57601876  1.33132144  1.32643835  1.38298501
  1.61268287  1.43312822  1.37487788  1.62077999  1.17893197  1.95699898
  1.47205061  1.59636261  1.36243102  1.38872319  1.86747159  1.29627692
  1.47872748  1.53439591  1.19492796  1.40286003  2.64297974  1.42225317
  1.47202707  1.50742559  1.3893462   1.61948283  1.46336821  1.31916594
  1.33791776  1.37671355  1.51696282  1.61982017  1.71272218  1.36722006
  1.48914399  1.24325782  1.56118373  1.48725512  2.33455617  1.67897676
  1.88489551  1.44121489  1.21274418  1.38647636  1.35852876  1.50495949
  1.45542854  1.34572212  1.24631036  1.37250062  1.58643412  1.55766752
  2.9432279   1.29585041  1.44695424  1.56770671  1.43883743  1.50711408
  1.41150006  1.51245869  1.72822347  1.66153203  1.45630212  1.96563471
  1.66128706  1.33274627  1.42998917  1.41606946  1.41368466  1.49393764
  1.42565894  1.41826642  1.91919769  1.56214129  1.36666147  1.72327735
  1.77297724  1.18800371  1.62421087  1.38473708  1.51556124  2.24821966
  1.41669421  1.42928191  1.72500324  1.4314065   1.49842798  1.38435958
  1.45337303  1.64816502  1.31116055  1.54168947  1.48907033  1.28983143
  1.42343827  1.52154576  1.46586912  1.50160738  1.38705978  1.63457603
  1.46165038  1.70581858  2.31994623  1.51385348  1.39462896  1.42417222
  1.77474161  1.39859889  1.52409679  1.37375926  1.45324473  1.36607296
  1.49575146  1.54585217  1.39192845  1.44022363  1.49654332  2.95358916
  1.42943318  1.39654212  1.39536459  1.55256178  1.55718023  1.35685499
  1.46255303  1.38776164  1.42450358  1.78207346  1.45408728  1.41811619
  1.47065713  1.40889195  1.49184211  1.39589354  1.3987682   1.27562588
  1.33640835  1.55399853  1.81956415  2.1135182   1.55967499  1.26782502
  1.52687732  1.39670658  1.34279412  1.47377146  1.67951156  1.31518434
  1.39018272  1.36542394  1.71565717  2.01016404  1.73673522  1.28986702
  1.31627113  1.37339724  1.46514402  1.40159234  1.5096246   1.5293465
  1.56408704  1.31437012  1.37918076  1.70710871  1.48573426  1.31687378
  1.53933009  1.68291723  1.88288017  1.17077425  2.09569895  1.49327389
  1.34393213  1.28207193  1.47219269  1.35109819  1.58035946  1.52617081
  1.33817371  1.31757363  1.47992972  1.54203533  1.76971012  1.47939955
  1.38321727  1.34074407  1.35845189  1.32881397  1.42268941  2.00144842
  1.59244041  1.4335947   1.44861938  1.36983699  1.85618111  1.35762383
  1.3368622   1.53344002  2.20254672  1.36388121]

In [44]:
#XS = np.dot(feats, S)
XSXt = np.dot(np.dot(feats, S), feats.T)

In [75]:
dists_m2 = (XSXt - 2 * XSXt[:, 0] + np.dot(np.dot(feat, S), feat)).max(1)
dists_m2.flat[::dists_m2.shape[0] + 1] = 0.0
print dists_m2


[  0.00000000e+00   3.18333548e+22   2.12714797e+22 ...,   3.40206683e+22
   1.79030775e+22   1.72254001e+22]

In [27]:
dists_m2 = np.zeros(feats.shape[0])
for i in range(feats.shape[0]):
    t = (feats[i] - feat) * weights[0]
    dists_m2[i] = np.dot(t, t)
print dists_m2


[  0.          17.07294846  12.65759087 ...,  15.96310902  13.99752998
  13.07282066]

In [19]:
sc = vislab.searchable_collection.SearchableCollection('flickr')


Initialized SearchableCollection in 44.694 s

In [2]:
dirname = os.path.expanduser('~/work/caffe/examples_mine/flickr-finetuning-elbow/')
net = caffe.Net(dirname + '/flickr_finetune_deploy.prototxt', dirname + '/flickr_finetune_train_iter_3000')

In [3]:
# index 0 are the weights, 1 is the bias
print net.params['fc6'][0].data.shape
print net.params['fc6'][1].data.shape
print net.params['fc7'][0].data.shape
print net.params['fc7'][1].data.shape
print net.params['fc8_flickr'][0].data.shape
print net.params['fc8_flickr'][1].data.shape

fc7_weights = net.params['fc8_flickr'][0].data.squeeze()
print fc7_weights.shape
fc6_weights = np.dot(fc7_weights, net.params['fc7'][0].data.squeeze())
print fc6_weights.shape

import cPickle
with open('../data/shared/flickr_finetune_weights.pickle', 'wb') as f:
    cPickle.dump({'caffe fc6': fc6_weights, 'caffe fc7': fc7_weights}, f)


(1, 1, 4096, 9216)
(1, 1, 1, 4096)
(1, 1, 4096, 4096)
(1, 1, 1, 4096)
(1, 1, 20, 4096)
(1, 1, 1, 20)
(20, 4096)
(20, 4096)

In [42]:
M = np.linalg.inv(np.diag(fc7_weights[0]))
M


Out[42]:
array([[ -83.15381622,   -0.        ,   -0.        , ...,   -0.        ,
          -0.        ,   -0.        ],
       [   0.        ,   38.60193253,    0.        , ...,    0.        ,
           0.        ,    0.        ],
       [  -0.        ,   -0.        ,  -56.49224854, ...,   -0.        ,
          -0.        ,   -0.        ],
       ..., 
       [   0.        ,    0.        ,    0.        , ...,   26.90113258,
           0.        ,    0.        ],
       [  -0.        ,   -0.        ,   -0.        , ...,   -0.        ,
        -187.26078796,   -0.        ],
       [   0.        ,    0.        ,    0.        , ...,    0.        ,
           0.        ,  161.74790955]], dtype=float32)

In [ ]:
import time
import scipy.spatial.distance
X = sc.features['caffe fc7'][:10]

t = time.time()
Y = scipy.spatial.distance.pdist(X, 'euclidean')
print time.time() - t

t = time.time()
Y = scipy.spatial.distance.pdist(X, 'mahalanobis', M)
print time.time() - t

In [14]:
flickr_sc.nn_by_id(df.index[0], 'caffe fc6')


caffe fc6
(4096,)
(80000, 4096)
Out[14]:
{'num_results': 80000,
 'page': 1,
 'results': [{'_split': 'test',
   'distance': -106079.421875,
   'image_id': '11623486855',
   'image_url': 'http://farm8.staticflickr.com/7292/11623486855_a65f69a806.jpg',
   'owner': u'52549819@N02',
   'page_url': 'http://www.flickr.com/photos/52549819@N02/11623486855',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': True,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -103051.6015625,
   'image_id': '12883818274',
   'image_url': 'http://farm8.staticflickr.com/7376/12883818274_6f56950f37.jpg',
   'owner': u'11037560@N04',
   'page_url': 'http://www.flickr.com/photos/11037560@N04/12883818274',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': True,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -102033.8515625,
   'image_id': '11742369775',
   'image_url': 'http://farm4.staticflickr.com/3800/11742369775_def261120c.jpg',
   'owner': u'11619499@N02',
   'page_url': 'http://www.flickr.com/photos/11619499@N02/11742369775',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': True,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -101729.46875,
   'image_id': '9686831644',
   'image_url': 'http://farm3.staticflickr.com/2859/9686831644_4056c1f82c.jpg',
   'owner': u'39744436@N06',
   'page_url': 'http://www.flickr.com/photos/39744436@N06/9686831644',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -96847.515625,
   'image_id': '9342827939',
   'image_url': 'http://farm8.staticflickr.com/7333/9342827939_6613831992.jpg',
   'owner': u'14919774@N04',
   'page_url': 'http://www.flickr.com/photos/14919774@N04/9342827939',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -96575.2109375,
   'image_id': '12416930535',
   'image_url': 'http://farm8.staticflickr.com/7324/12416930535_8637153056.jpg',
   'owner': u'54774378@N08',
   'page_url': 'http://www.flickr.com/photos/54774378@N08/12416930535',
   'style_Bokeh': False,
   'style_Bright': True,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -96067.875,
   'image_id': '12947123495',
   'image_url': 'http://farm4.staticflickr.com/3707/12947123495_eb3181399c.jpg',
   'owner': u'79751615@N06',
   'page_url': 'http://www.flickr.com/photos/79751615@N06/12947123495',
   'style_Bokeh': False,
   'style_Bright': True,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -94174.7265625,
   'image_id': '9397036962',
   'image_url': 'http://farm4.staticflickr.com/3705/9397036962_48b17fd2ce.jpg',
   'owner': u'29487711@N02',
   'page_url': 'http://www.flickr.com/photos/29487711@N02/9397036962',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -93555.9765625,
   'image_id': '11314572015',
   'image_url': 'http://farm8.staticflickr.com/7366/11314572015_ef820fb6d3.jpg',
   'owner': u'77491310@N03',
   'page_url': 'http://www.flickr.com/photos/77491310@N03/11314572015',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': True,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -92939.3984375,
   'image_id': '10333605096',
   'image_url': 'http://farm3.staticflickr.com/2855/10333605096_4c4985afef.jpg',
   'owner': u'35891293@N02',
   'page_url': 'http://www.flickr.com/photos/35891293@N02/10333605096',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -90746.0234375,
   'image_id': '13231943364',
   'image_url': 'http://farm8.staticflickr.com/7209/13231943364_d4b42a6e5a.jpg',
   'owner': u'101689566@N04',
   'page_url': 'http://www.flickr.com/photos/101689566@N04/13231943364',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -89537.9140625,
   'image_id': '12971200794',
   'image_url': 'http://farm3.staticflickr.com/2142/12971200794_7693eeee4b.jpg',
   'owner': u'20996695@N00',
   'page_url': 'http://www.flickr.com/photos/20996695@N00/12971200794',
   'style_Bokeh': True,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -88773.5703125,
   'image_id': '9933209963',
   'image_url': 'http://farm3.staticflickr.com/2806/9933209963_fe4d5e5684.jpg',
   'owner': u'102154209@N08',
   'page_url': 'http://www.flickr.com/photos/102154209@N08/9933209963',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -88349.875,
   'image_id': '12852958705',
   'image_url': 'http://farm8.staticflickr.com/7411/12852958705_954a110a31.jpg',
   'owner': u'54601193@N02',
   'page_url': 'http://www.flickr.com/photos/54601193@N02/12852958705',
   'style_Bokeh': True,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -87012.0859375,
   'image_id': '12525514885',
   'image_url': 'http://farm8.staticflickr.com/7307/12525514885_d2c8ce149a.jpg',
   'owner': u'115811567@N08',
   'page_url': 'http://www.flickr.com/photos/115811567@N08/12525514885',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -86320.4140625,
   'image_id': '11267360274',
   'image_url': 'http://farm6.staticflickr.com/5544/11267360274_8c3254f316.jpg',
   'owner': u'45218031@N04',
   'page_url': 'http://www.flickr.com/photos/45218031@N04/11267360274',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': True,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -85738.0546875,
   'image_id': '9383667916',
   'image_url': 'http://farm3.staticflickr.com/2822/9383667916_75cff356cd.jpg',
   'owner': u'45445869@N04',
   'page_url': 'http://www.flickr.com/photos/45445869@N04/9383667916',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -85499.3984375,
   'image_id': '10669368643',
   'image_url': 'http://farm6.staticflickr.com/5511/10669368643_93a9430db5.jpg',
   'owner': u'41211257@N04',
   'page_url': 'http://www.flickr.com/photos/41211257@N04/10669368643',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -85497.5078125,
   'image_id': '11330279885',
   'image_url': 'http://farm8.staticflickr.com/7349/11330279885_4eab5dc54b.jpg',
   'owner': u'77491310@N03',
   'page_url': 'http://www.flickr.com/photos/77491310@N03/11330279885',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': True,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -84894.3125,
   'image_id': '12842184574',
   'image_url': 'http://farm4.staticflickr.com/3707/12842184574_5d2d0d4336.jpg',
   'owner': u'85959664@N02',
   'page_url': 'http://www.flickr.com/photos/85959664@N02/12842184574',
   'style_Bokeh': False,
   'style_Bright': True,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -83705.78125,
   'image_id': '9638406507',
   'image_url': 'http://farm8.staticflickr.com/7324/9638406507_e97a0cef03.jpg',
   'owner': u'101005204@N02',
   'page_url': 'http://www.flickr.com/photos/101005204@N02/9638406507',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -83692.65625,
   'image_id': '12326086625',
   'image_url': 'http://farm6.staticflickr.com/5495/12326086625_4db75e4d20.jpg',
   'owner': u'9874126@N06',
   'page_url': 'http://www.flickr.com/photos/9874126@N06/12326086625',
   'style_Bokeh': False,
   'style_Bright': True,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -83609.703125,
   'image_id': '9833794525',
   'image_url': 'http://farm3.staticflickr.com/2892/9833794525_7a7ed4497f.jpg',
   'owner': u'79952121@N02',
   'page_url': 'http://www.flickr.com/photos/79952121@N02/9833794525',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -83531.171875,
   'image_id': '12564167523',
   'image_url': 'http://farm4.staticflickr.com/3833/12564167523_32656b230c.jpg',
   'owner': u'112854276@N06',
   'page_url': 'http://www.flickr.com/photos/112854276@N06/12564167523',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'test',
   'distance': -83280.78125,
   'image_id': '9300228157',
   'image_url': 'http://farm6.staticflickr.com/5480/9300228157_454e3be407.jpg',
   'owner': u'74709335@N02',
   'page_url': 'http://www.flickr.com/photos/74709335@N02/9300228157',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -83244.6640625,
   'image_id': '13272441355',
   'image_url': 'http://farm8.staticflickr.com/7325/13272441355_12484108d6.jpg',
   'owner': u'52873386@N07',
   'page_url': 'http://www.flickr.com/photos/52873386@N07/13272441355',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': True,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -82752.0,
   'image_id': '12857831543',
   'image_url': 'http://farm4.staticflickr.com/3830/12857831543_1b052ea7cb.jpg',
   'owner': u'8381221@N05',
   'page_url': 'http://www.flickr.com/photos/8381221@N05/12857831543',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': True,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -82405.8515625,
   'image_id': '11131616243',
   'image_url': 'http://farm8.staticflickr.com/7315/11131616243_c0828cd35a.jpg',
   'owner': u'110164720@N03',
   'page_url': 'http://www.flickr.com/photos/110164720@N03/11131616243',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': True,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -81814.1015625,
   'image_id': '12624714593',
   'image_url': 'http://farm8.staticflickr.com/7385/12624714593_7f95a44911.jpg',
   'owner': u'101303333@N06',
   'page_url': 'http://www.flickr.com/photos/101303333@N06/12624714593',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -80794.96875,
   'image_id': '9709037842',
   'image_url': 'http://farm4.staticflickr.com/3790/9709037842_0c684a531c.jpg',
   'owner': u'35432998@N02',
   'page_url': 'http://www.flickr.com/photos/35432998@N02/9709037842',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -80265.7421875,
   'image_id': '12751178285',
   'image_url': 'http://farm6.staticflickr.com/5536/12751178285_6494c937c0.jpg',
   'owner': u'78489059@N05',
   'page_url': 'http://www.flickr.com/photos/78489059@N05/12751178285',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': True,
   'style_Melancholy': False,
   'style_Minimal': False,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False},
  {'_split': 'train',
   'distance': -80254.9453125,
   'image_id': '10642305425',
   'image_url': 'http://farm8.staticflickr.com/7447/10642305425_32d54b01b5.jpg',
   'owner': u'96428915@N04',
   'page_url': 'http://www.flickr.com/photos/96428915@N04/10642305425',
   'style_Bokeh': False,
   'style_Bright': False,
   'style_Depth_of_Field': False,
   'style_Detailed': False,
   'style_Ethereal': False,
   'style_Geometric_Composition': False,
   'style_HDR': False,
   'style_Hazy': False,
   'style_Horror': False,
   'style_Long_Exposure': False,
   'style_Macro': False,
   'style_Melancholy': False,
   'style_Minimal': True,
   'style_Noir': False,
   'style_Pastel': False,
   'style_Romantic': False,
   'style_Serene': False,
   'style_Sunny': False,
   'style_Texture': False,
   'style_Vintage': False}],
 'start_ind': 1,
 'time_elapsed': 5.415151119232178}