Skip to content

Instantly share code, notes, and snippets.

@fabianp
Last active June 5, 2018 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fabianp/6c946859cf2ab6042ca036663aa17f25 to your computer and use it in GitHub Desktop.
Save fabianp/6c946859cf2ab6042ca036663aa17f25 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import dask\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from dask.distributed import Client, LocalCluster\n",
"cluster = LocalCluster(processes=False)\n",
"client = Client(cluster)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"np.random.seed(0)\n",
"n_features = 1000\n",
"data = [(dask.delayed(np.random.randn)(5000, n_features), (dask.delayed(np.random.randint)(0, 2, 5000) - 0.5) * 2) for _ in range(10)]\n",
"data = [((np.random.randn)(5000, n_features), ((np.random.randint)(0, 2, 5000) - 0.5) * 2) for _ in range(10)]\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from numba import njit\n",
"\n",
"\n",
"@njit\n",
"def f_logistic(p, y):\n",
" # logistic loss\n",
" # same as in lightning\n",
" p *= y\n",
" if p > 0:\n",
" return np.log(1 + np.exp(-p))\n",
" else:\n",
" return -p + np.log(1 + np.exp(p))\n",
"\n",
"\n",
"@njit\n",
"def deriv_logistic(p, y):\n",
" # derivative of logistic loss\n",
" # same as in lightning (with minus sign)\n",
" p *= y\n",
" if p > 0:\n",
" phi = 1. / (1 + np.exp(-p))\n",
" else:\n",
" exp_t = np.exp(p)\n",
" phi = exp_t / (1. + exp_t)\n",
" return (phi - 1) * y\n",
"\n",
"@njit\n",
"def L1_prox(x, ss):\n",
" x = np.fmax(x - ss, 0) - np.fmax(- x - ss, 0)\n",
"\n",
"@dask.delayed(nout=3)\n",
"@njit\n",
"def _chunk_saga(\n",
" A, b, alpha, beta, n_samples, f_deriv, prox, x, memory_gradient, gradient_average, step_size):\n",
" x = x.copy()\n",
" gradient_average = gradient_average.copy()\n",
" memory_gradient = memory_gradient.copy()\n",
" \n",
" # sample randomly\n",
" idx = np.arange(memory_gradient.size)\n",
" np.random.shuffle(idx)\n",
"\n",
" # .. inner iteration ..\n",
" for i in idx:\n",
" grad_i = f_deriv(np.dot(x, A[i]), b[i])\n",
"\n",
" # .. update coefficients ..\n",
" delta = (grad_i - memory_gradient[i]) * A[i]\n",
" x -= step_size * (delta + gradient_average + alpha * x)\n",
" # prox(x, beta * step_size)\n",
"\n",
" # .. update memory terms ..\n",
" gradient_average += (grad_i - memory_gradient[i]) * A[i] / n_samples\n",
" memory_gradient[i] = grad_i\n",
"\n",
" return x, memory_gradient, gradient_average\n",
" \n",
"\n",
"def full_saga(data, alpha=0., beta=0., max_iter=100, callback=None):\n",
" n_samples = 0\n",
" for A, b in data:\n",
" n_samples += A.shape[0]\n",
" n_features = data[0][0].shape[1]\n",
" memory_gradients = [dask.delayed(np.zeros)(A.shape[0]) for (A, b) in data]\n",
" gradient_average = dask.delayed(np.zeros)(n_features)\n",
" # x = dask.delayed(np.zeros)(n_features)\n",
" x = np.zeros(n_features)\n",
" from sklearn.utils.extmath import row_norms\n",
" from sklearn.linear_model.sag import get_auto_step_size\n",
" step_size = (1./100) * np.min(\n",
" [get_auto_step_size(row_norms(A, squared=True).max(), alpha, 'log', False) for (A, b) in data])\n",
" if callback is not None:\n",
" out = callback(x)\n",
" for _ in range(max_iter):\n",
" for i, (A, b) in enumerate(data):\n",
" x, memory_gradients[i], gradient_average = _chunk_saga(\n",
" A, b, alpha, beta, n_samples, deriv_logistic, L1_prox, x, memory_gradients[i],\n",
" gradient_average, step_size)\n",
" x, memory_gradients, gradient_average = dask.compute(x, memory_gradients, gradient_average)\n",
" if callback is not None:\n",
" out = callback(x)\n",
" return x\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3687.9194275939517\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/fabian/anaconda3/lib/python3.6/site-packages/distributed/worker.py:742: UserWarning: Large object of size 40.05 MB detected in task graph: \n",
" (array([[ 1.76405235, 0.40015721, 0.97873798, .. ... 2700366604e-05)\n",
"Consider scattering large objects ahead of time\n",
"with client.scatter to reduce scheduler burden and \n",
"keep data on workers\n",
"\n",
" future = client.submit(func, big_data) # bad\n",
"\n",
" big_future = client.scatter(big_data) # good\n",
" future = client.submit(func, big_future) # good\n",
" % (format_bytes(len(b)), s))\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1859.5608998668135\n",
"1471.6942020720635\n",
"1057.5490736507752\n",
"773.4489960151068\n",
"567.177823869185\n",
"417.26920811399657\n",
"307.8718441729574\n",
"227.74146286625037\n",
"168.86343931912754\n",
"125.46131338040094\n",
"93.39964511474264\n",
"69.64584065573813\n",
"52.02011489483314\n",
"38.91115408023261\n",
"29.14785987508462\n",
"21.862085431618645\n",
"16.417944534452165\n",
"12.34295445931036\n",
"9.289163646047795\n",
"6.998362336415173\n",
"5.276904103777861\n",
"3.982705126813331\n",
"3.0084505823104393\n",
"2.2743022553595345\n",
"1.7206003545060886\n",
"1.3025881183352108\n",
"0.9867704471960451\n",
"0.7480479203178554\n",
"0.5674079112479027\n",
"0.43063255892435764\n",
"0.3270069416847227\n",
"0.24845312314471085\n",
"0.18885450687715827\n",
"0.1436236839667821\n",
"0.1092794145757937\n",
"0.08317629002676641\n",
"0.0633392599433402\n",
"0.048249191289956236\n",
"0.036769491222619265\n",
"0.028031904780130328\n",
"0.021376984270825548\n",
"0.016308314128514464\n",
"0.012445292445760309\n",
"0.009500188318638534\n",
"0.007254319042534535\n",
"0.005540793796952304\n",
"0.004233235484050956\n",
"0.003235254722734439\n",
"0.0024729979319909946\n",
"0.0018909241382071723\n",
"0.001446197346341732\n",
"0.0011063240890060182\n",
"0.0008465209126697716\n",
"0.0006478733509361477\n",
"0.000495930413701841\n",
"0.00037970750169038196\n",
"0.0002907860722388088\n",
"0.0002227204308031875\n",
"0.00017062986975928805\n",
"0.00013074308643145526\n",
"0.00010019449717621086\n",
"7.680293955990442e-05\n",
"5.888006660652465e-05\n",
"4.5147404854559714e-05\n",
"3.462286747972262e-05\n",
"2.6555617243659693e-05\n",
"2.037185919953625e-05\n",
"1.5630376520697207e-05\n",
"1.199382059253499e-05\n",
"9.204598852781282e-06\n",
"7.0650649687002806e-06\n",
"5.423630223318819e-06\n",
"4.16413779744671e-06\n",
"3.1974731361558217e-06\n",
"2.4555603593874186e-06\n",
"1.8859952654677732e-06\n",
"1.4487183273153799e-06\n",
"1.1129745859963193e-06\n",
"8.551048005571035e-07\n",
"6.570992658606526e-07\n",
"5.049438902583304e-07\n",
"3.8809144421422043e-07\n",
"2.983032856420694e-07\n",
"2.2931838713692482e-07\n",
"1.762964583662689e-07\n",
"1.3555515830365765e-07\n",
"1.0423352477696013e-07\n",
"8.015590589160006e-08\n",
"6.164731331611503e-08\n",
"4.742179798270751e-08\n",
"3.649971367366341e-08\n",
"2.8148725950118155e-08\n",
"2.179273699688031e-08\n",
"1.697872559348152e-08\n",
"1.3352069648292009e-08\n",
"1.0631614035923021e-08\n",
"8.607280535696197e-09\n",
"7.122390496090837e-09\n",
"6.066023710566093e-09\n",
"5.355692917030363e-09\n"
]
}
],
"source": [
"@njit\n",
"def loss_chunk(x, A, b):\n",
" obj = 0.\n",
" for i in range(A.shape[0]):\n",
" obj += f_logistic(np.dot(x, A[i]), b[i])\n",
" return obj\n",
"\n",
"@njit\n",
"def grad_chunk(x, A, b):\n",
" grad = np.zeros(x.size)\n",
" for i in range(A.shape[0]):\n",
" grad += A[i] * deriv_logistic(np.dot(x, A[i]), b[i])\n",
" return grad\n",
" \n",
"def callback(x):\n",
" grad = np.zeros(x.size)\n",
" for A, b in data:\n",
" grad += grad_chunk(x, A, b)\n",
" print(np.linalg.norm(grad))\n",
" # obj = np.sum([loss_chunk(x, A, b) for (A, b) in data])\n",
" # print(obj)\n",
"\n",
"out = full_saga(data, callback=callback)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 8.14384054e-03, 1.40958282e-02, 2.03659113e-02, -1.90217423e-03,\n",
" -2.52728913e-03, -6.98345913e-03, -3.15400756e-03, 1.10452593e-02,\n",
" -1.31300400e-02, 2.64983291e-03, -3.23741006e-03, -2.96503095e-03,\n",
" -4.35933631e-04, 2.24153120e-03, -1.95069001e-03, -3.38435314e-03,\n",
" -8.40650404e-03, 1.72768326e-03, 1.42443765e-02, -4.09703851e-03,\n",
" 1.16981436e-02, -9.54367170e-03, 1.53108631e-02, 4.74441975e-03,\n",
" 6.67328269e-03, -1.65327612e-02, 9.99410667e-03, 1.89254540e-02,\n",
" -9.11658491e-03, 6.42827031e-04, 2.64469150e-03, -9.51508186e-05,\n",
" -1.28448194e-02, 1.74313321e-02, 7.55896577e-04, 6.86459404e-03,\n",
" 4.85907142e-03, 1.00166354e-02, 1.08695795e-02, 3.72121200e-03,\n",
" 1.13827546e-02, -1.12855125e-03, -7.86073849e-03, -3.07013403e-03,\n",
" 9.43676992e-03, -2.22804105e-04, 9.79122243e-03, 5.99172898e-03,\n",
" -7.09925604e-03, 1.60853620e-02, 2.38657498e-02, 1.53446062e-03,\n",
" -1.20411572e-02, -7.41391339e-03, 5.87009277e-03, -2.30836688e-03,\n",
" -4.86221403e-03, -9.51382250e-03, 2.03738681e-03, -1.40501150e-03,\n",
" 6.28620155e-03, 5.74529773e-03, 8.17732179e-03, 3.98160019e-03,\n",
" 1.48356854e-02, -4.48174146e-03, -7.49390247e-03, -2.73279024e-02,\n",
" 4.93069305e-03, 8.04770496e-03, 1.34382557e-02, -1.07412998e-03,\n",
" -5.63102872e-03, 4.20969045e-03, -9.46692156e-03, -8.76061108e-03,\n",
" -6.44272609e-03, -8.15255523e-03, 6.98647626e-03, -3.89219783e-03,\n",
" -4.27255220e-03, -1.09733423e-02, -1.20592065e-02, 4.50474344e-03,\n",
" 2.68204604e-03, 1.45444314e-02, 4.10013565e-03, 4.16737238e-04,\n",
" -1.05866629e-02, -8.76828271e-03, 7.75928375e-03, 3.23292044e-04,\n",
" -1.09133838e-02, -1.23196225e-02, -1.39997126e-03, 1.21780746e-02,\n",
" 1.42646046e-03, -2.17674523e-04, -9.87240424e-03, 1.06155029e-02,\n",
" -4.23680761e-03, -8.11613820e-03, 9.21673865e-03, 9.94856174e-03,\n",
" -6.57502132e-03, 4.40376098e-04, 6.47072136e-03, 1.71643278e-02,\n",
" 2.12883226e-03, -9.33967118e-03, -1.60693113e-02, -2.50160673e-03,\n",
" 1.68857938e-03, 9.08819178e-03, -1.24010300e-02, 8.21664492e-04,\n",
" 5.85201167e-04, -3.24384191e-03, -7.35537051e-03, -6.04414191e-04,\n",
" 1.08826181e-03, -8.47839111e-03, -9.74726121e-04, -1.28439169e-02,\n",
" 2.12949409e-02, 1.36916540e-02, 7.43380283e-03, -9.68499032e-03,\n",
" -9.85403145e-03, 6.56083211e-04, 6.37045313e-03, -6.82569600e-03,\n",
" -6.54760193e-03, 1.27719421e-02, -7.92793399e-03, 9.52537937e-03,\n",
" -1.47283919e-02, -1.12066485e-02, -1.40247925e-02, 1.89503266e-02,\n",
" -6.04448220e-03, -8.55222109e-04, 6.46653952e-03, -6.33276739e-03,\n",
" -9.19811973e-03, 1.24290514e-02, 1.17884389e-02, -8.98238275e-04,\n",
" 5.45487255e-04, 6.34542486e-03, -1.60732375e-02, 6.05104057e-03,\n",
" 7.07874300e-03, -4.80566044e-03, 9.16429759e-04, 2.30396485e-03,\n",
" -6.74677842e-03, 1.76892160e-02, 6.22037440e-03, 9.92143932e-03,\n",
" -9.11717096e-03, -1.17297856e-03, -2.61099386e-03, 9.97960304e-03,\n",
" -1.28206517e-02, -7.04961042e-03, -1.62958989e-03, -1.37482429e-02,\n",
" -7.40142940e-05, -9.27571410e-03, -6.62603252e-03, 3.11802554e-03,\n",
" 9.47901706e-03, -3.54153325e-03, 7.33420906e-03, -7.67416274e-03,\n",
" -8.03712202e-03, 8.38935744e-03, -4.80188344e-03, -3.74065964e-03,\n",
" -2.79213187e-03, 2.02608848e-02, 7.79446239e-03, 5.72032154e-03,\n",
" 2.40075327e-04, 9.20914358e-03, 1.14793219e-02, 6.12974990e-04,\n",
" 4.30603560e-03, 1.19059054e-03, -2.91078092e-03, 1.32354474e-02,\n",
" 1.29506476e-02, 5.80698970e-03, -1.43323421e-02, 6.46321091e-03,\n",
" 2.51682051e-02, -5.61123400e-03, -2.00400565e-02, -1.10326116e-02,\n",
" 2.34011680e-03, -1.67401690e-03, -7.42304865e-03, -2.98811084e-03,\n",
" -1.42946110e-02, 4.97472853e-03, -6.32611089e-03, -1.83078813e-02,\n",
" -8.81539373e-03, 1.08104020e-02, -1.54276827e-02, -6.91618396e-03,\n",
" -4.40460065e-03, 6.82171412e-03, -2.16640219e-03, 9.39583904e-03,\n",
" 9.22420286e-03, -7.87870760e-03, 5.50045127e-03, 2.35413188e-02,\n",
" -2.42325221e-02, 2.23457823e-03, 1.87368309e-03, 2.86117351e-03,\n",
" -9.16849892e-03, -3.06283662e-04, 4.42829032e-03, -4.03304618e-03,\n",
" 9.07679376e-04, -1.54725743e-02, 2.29625260e-03, 3.87319034e-03,\n",
" 2.36457064e-04, -8.71640149e-03, 4.81103433e-03, -1.47241913e-02,\n",
" -1.54702232e-03, 3.51338934e-03, -2.10129748e-03, -1.45687818e-02,\n",
" -1.94394253e-02, 2.47332520e-03, 2.60511917e-03, 3.58951452e-03,\n",
" -4.60957386e-03, -5.44276666e-03, 2.49528393e-03, -3.50734442e-03,\n",
" 2.20548731e-03, -1.58348847e-02, 5.19384765e-03, 1.25360924e-03,\n",
" -7.26925309e-04, 1.87807103e-04, 6.78195204e-03, 5.81840155e-04,\n",
" 1.01477125e-04, -1.01386037e-03, 7.60744964e-03, -1.16295520e-02,\n",
" -1.08754071e-03, -1.77206464e-04, -8.44819494e-03, 1.50704523e-02,\n",
" 8.27651478e-03, 1.24186144e-03, 7.37365106e-03, -1.22741779e-02,\n",
" -7.01286378e-03, 1.10113253e-02, -1.01598963e-03, 1.08064388e-02,\n",
" 4.43587223e-03, 1.07800027e-02, -1.87874182e-03, 1.55735400e-02,\n",
" -2.62140305e-03, 8.73123255e-03, -2.26562156e-03, 1.14793409e-02,\n",
" -1.55059908e-02, -2.77466152e-03, -6.22137199e-03, 4.07261199e-03,\n",
" -8.53179600e-03, -6.83680628e-03, 6.65907052e-03, 6.75505287e-03,\n",
" -7.74096155e-03, -9.08635615e-03, 6.29375796e-03, -9.10223549e-03,\n",
" -5.94380185e-03, 1.82476349e-03, 9.83345514e-04, 8.47727977e-03,\n",
" -1.35939988e-02, -8.02890080e-03, -8.52208676e-03, -9.70212941e-03,\n",
" 1.70416614e-03, 2.57785348e-03, 4.30374133e-03, 3.99131369e-03,\n",
" 1.85101520e-03, -1.21153319e-02, -1.65705904e-02, 9.16794192e-03,\n",
" 2.56751461e-03, -1.58517022e-02, 1.22046558e-03, -5.23662301e-03,\n",
" 3.75993532e-03, 1.06303518e-02, 1.54859249e-02, -3.50430292e-03,\n",
" -9.91827803e-03, -3.06135998e-03, 8.40314289e-03, -9.00962562e-03,\n",
" 1.44964864e-02, 1.86965934e-02, -1.74048569e-03, -7.38741869e-03,\n",
" 4.39235110e-03, 2.33823837e-03, 1.04801199e-02, 2.35454031e-02,\n",
" -3.49508942e-04, -1.04404317e-02, -2.07418218e-02, -1.78581798e-02,\n",
" -8.29998440e-03, -1.87983307e-02, -5.42056888e-03, -1.49826539e-02,\n",
" 1.52251429e-02, 7.53102620e-03, -1.29263207e-02, 3.13640362e-03,\n",
" 1.16111874e-02, 3.53472718e-04, -7.02029971e-03, 6.17954315e-03,\n",
" 1.43102603e-02, 5.13699956e-04, -1.03438678e-02, 8.89577012e-03,\n",
" -4.93845550e-04, -1.62569339e-02, 1.76816192e-02, -2.62880562e-03,\n",
" 5.30767115e-04, 2.90866137e-03, -3.48517455e-03, -1.01985023e-02,\n",
" -1.90173414e-02, 1.54621016e-02, -3.69212418e-03, -6.06333515e-03,\n",
" -9.45372828e-04, 1.17885761e-03, 8.64840173e-04, -1.24517536e-02,\n",
" 3.14077330e-03, 2.35714321e-03, -1.70796640e-02, 6.66912299e-03,\n",
" 1.31450357e-02, 8.39853692e-03, -6.63429112e-03, 1.40277393e-02,\n",
" -1.52129074e-02, -1.66254310e-02, 8.80020150e-04, -1.35887100e-02,\n",
" -6.21359576e-03, -5.46855258e-03, -7.04492543e-03, 1.77234715e-02,\n",
" 2.27110523e-02, -2.87718469e-03, 3.41343891e-03, 5.47032067e-03,\n",
" -3.33014383e-03, 3.33635338e-03, 3.87728598e-03, -6.28255998e-03,\n",
" -5.31024938e-03, -4.53005794e-03, -1.97261649e-02, 1.03184968e-02,\n",
" -5.54934646e-04, -9.76859112e-03, 8.50555108e-03, 1.03204718e-02,\n",
" 4.13809470e-03, -3.36835136e-03, -1.12812738e-02, -1.61887354e-02,\n",
" -1.32020880e-02, 1.18784651e-02, 3.20633344e-02, 1.84164830e-02,\n",
" -1.52297642e-02, 9.69918855e-03, -2.41788324e-03, -1.25380436e-02,\n",
" 2.97369987e-03, 8.61744587e-03, 5.67079843e-03, 6.26138217e-03,\n",
" -6.06925081e-03, -9.36450512e-03, -1.55339344e-02, -6.62486648e-03,\n",
" -1.27217828e-02, 9.79188588e-03, -4.99758247e-03, -6.49293111e-03,\n",
" 1.19885921e-02, 2.00522803e-02, -4.41133127e-03, -2.12091139e-02,\n",
" -1.51735118e-02, -1.22495776e-02, -1.05105459e-02, 1.77231778e-02,\n",
" -5.04408755e-03, -5.21189708e-03, -1.58700589e-02, -7.85670920e-03,\n",
" 3.23160740e-03, -1.70539157e-02, -5.53662260e-03, 1.20774487e-02,\n",
" 4.69229673e-03, 2.15725525e-03, 2.13296537e-02, 7.64938144e-03,\n",
" -5.58601684e-03, -5.24084991e-05, 7.74360512e-03, 1.18656512e-03,\n",
" 4.33987740e-03, -5.11996246e-03, 7.95898136e-03, -3.64876242e-03,\n",
" 1.20003900e-02, 1.27870581e-02, 1.72516475e-03, -9.70942696e-03,\n",
" -2.14289753e-03, -6.56087085e-03, -3.66969583e-03, -5.09448189e-03,\n",
" -8.97651625e-03, -8.07368182e-03, -2.85399568e-03, 4.15151686e-04,\n",
" 3.00626829e-03, 8.96793254e-03, -1.65578352e-02, 1.32968303e-02,\n",
" 1.85000224e-02, 4.75682301e-03, -2.10032417e-03, 1.20179505e-02,\n",
" -1.15864211e-02, 6.72493972e-03, -1.20640213e-02, -1.20006968e-02,\n",
" 4.72749873e-03, -6.71765612e-03, 1.27022690e-02, 1.19507555e-02,\n",
" 4.98853922e-03, -9.10189232e-03, 7.47919733e-03, 1.46630346e-03,\n",
" -3.14918712e-03, 1.52662723e-02, -2.37580499e-03, 1.13461981e-04,\n",
" 1.55676294e-02, 6.16789186e-03, 4.54652966e-03, 4.79220694e-04,\n",
" 1.07175552e-02, 1.29504259e-02, -5.24373585e-03, 5.87401016e-03,\n",
" -4.48867670e-03, 8.16299074e-04, -1.21406921e-02, 1.94897175e-02,\n",
" 1.29813295e-02, 6.14018027e-04, 1.32506613e-03, 1.16425228e-02,\n",
" 1.41659398e-02, -1.29269941e-02, 1.37180045e-02, -1.81068915e-02,\n",
" -6.59303202e-03, -8.85294428e-03, 1.57302503e-02, -6.36404863e-03,\n",
" 6.17936069e-03, -2.34817298e-02, 2.05277605e-02, -3.84689669e-03,\n",
" 1.82545009e-03, -8.81984170e-03, -1.01280746e-03, 8.72081294e-03,\n",
" -9.35960192e-03, 5.74815647e-03, -2.74910496e-02, 8.73532614e-03,\n",
" -1.82586151e-02, -1.40193103e-03, -3.18839153e-03, -9.11138708e-03,\n",
" -3.79077077e-03, -3.97532185e-03, -7.74716226e-03, 3.51818464e-03,\n",
" -6.30197710e-03, -1.98012960e-02, 1.85141343e-03, -1.68789560e-02,\n",
" -8.54747372e-03, 8.56647758e-03, -9.78690887e-03, -2.15215790e-02,\n",
" -5.67437415e-03, -1.49940018e-03, 3.99397683e-03, 2.34519626e-02,\n",
" 8.78065280e-03, -9.27103291e-03, 1.17545549e-02, 1.66872261e-03,\n",
" -4.44659326e-03, -9.31901589e-03, 3.78867439e-03, -2.58805173e-03,\n",
" 1.10993016e-02, -1.74442124e-02, 5.28692325e-03, 1.70808512e-05,\n",
" 4.25020430e-03, 1.84728135e-03, -5.37025285e-04, -9.22865420e-03,\n",
" 1.28626204e-02, -8.26255675e-03, -2.63685875e-03, -1.40529973e-02,\n",
" -2.19132534e-02, -3.35076244e-03, 1.24752430e-02, -1.56357737e-02,\n",
" -2.14905849e-03, 4.92783537e-03, -9.80251007e-03, -4.58072402e-03,\n",
" -6.13245475e-03, 3.79707242e-03, 8.28005657e-03, -9.21074984e-03,\n",
" -3.14295115e-03, -1.30136336e-02, 1.14186156e-02, -1.46974652e-02,\n",
" -7.45242933e-03, 1.34372534e-03, 7.17085744e-03, 7.54592827e-03,\n",
" -1.89221469e-02, -9.92805473e-03, -9.67093409e-03, -1.18233736e-02,\n",
" 1.42702437e-02, 2.47319713e-03, 6.84739616e-03, -1.76160240e-02,\n",
" 8.78198641e-04, -1.68351576e-03, 5.38821703e-03, 1.50513671e-03,\n",
" 1.21658580e-02, 3.97140701e-03, 1.86804515e-03, 3.12569730e-03,\n",
" 4.95124138e-04, -9.42786184e-03, 1.58420879e-02, 8.87879140e-03,\n",
" -2.05567100e-02, -2.50516674e-05, -1.17352048e-02, -7.23251944e-03,\n",
" -1.95593661e-02, 2.16937503e-02, 3.98280745e-03, 1.15615492e-02,\n",
" -2.72575404e-04, 1.43391676e-02, 6.39972359e-03, 9.89736235e-03,\n",
" -6.85756864e-04, 1.43583160e-02, -4.76849168e-03, -1.33946087e-03,\n",
" 5.55014908e-03, -1.96019094e-02, -8.31195501e-03, 2.48231025e-03,\n",
" 1.47933999e-02, -1.23993999e-02, 1.11371938e-02, -2.43644970e-02,\n",
" 1.21746255e-02, 8.20534667e-03, -1.79911114e-03, -6.64298334e-03,\n",
" 2.82328235e-03, -5.76071870e-03, 3.10660419e-03, -8.08741095e-03,\n",
" 5.37111837e-03, -4.39749417e-03, 1.22712402e-03, -6.74872771e-03,\n",
" 1.32491652e-02, -3.92506817e-04, 1.37817635e-02, -1.84118691e-02,\n",
" -1.66286428e-02, 9.48116862e-03, 8.36184684e-04, 6.35739970e-03,\n",
" -1.21847939e-02, -9.58207213e-03, -5.22502340e-03, -7.05470817e-03,\n",
" 1.60893065e-03, 3.67986603e-03, 7.13300545e-03, 6.86368738e-03,\n",
" -3.70085307e-03, -9.20767139e-03, -1.06951143e-02, 1.07647302e-02,\n",
" 6.25022447e-03, -2.17361456e-03, 1.08895703e-02, 6.42142550e-03,\n",
" 1.12258542e-02, 3.89857126e-03, -1.02425277e-02, 1.08846118e-02,\n",
" -1.00371854e-02, -2.56650716e-03, 1.68003240e-02, 9.22393565e-03,\n",
" 4.79365207e-03, -4.32912872e-03, 9.34932702e-03, -9.55418618e-03,\n",
" 1.01487808e-02, 1.02134249e-02, 5.40163743e-03, 1.62667941e-02,\n",
" 1.81251531e-03, -4.98345752e-04, -1.40815704e-03, -8.41060732e-03,\n",
" -9.15601445e-03, -5.06921418e-03, 3.91384357e-03, -2.35374626e-02,\n",
" -3.98830633e-04, 1.66977377e-02, -7.88602851e-03, 1.79379317e-02,\n",
" 5.48257408e-04, 1.46771748e-02, 8.86886996e-03, 3.42210547e-03,\n",
" -9.39258220e-03, 2.52648634e-04, -4.03313507e-03, 4.05325070e-03,\n",
" 9.22550511e-03, -1.99770072e-03, 3.75051386e-03, 1.63327176e-02,\n",
" 7.54176444e-03, -7.28098388e-03, -1.67796664e-02, 2.61890271e-02,\n",
" -9.30342506e-03, -4.85975421e-03, -2.04103883e-02, 1.23418829e-02,\n",
" 4.18389716e-04, 3.92689257e-03, 7.88532904e-03, 4.48618536e-03,\n",
" 1.70837162e-03, 2.74484220e-03, 1.82034468e-02, -4.70966339e-03,\n",
" -8.81808836e-03, -2.52743265e-03, -4.74334039e-03, 8.45941564e-03,\n",
" -3.38275381e-03, 1.01323524e-02, -1.17514845e-02, 1.38710972e-02,\n",
" 4.32973428e-03, 1.29213819e-02, -1.84859191e-03, 2.76352866e-03,\n",
" 3.29426081e-03, -1.03751218e-02, 2.51842863e-02, -1.23193875e-02,\n",
" 1.06964500e-03, -4.77459168e-04, -6.66210990e-03, 1.53780046e-03,\n",
" -1.13277621e-02, -5.67530089e-03, 1.63766841e-03, -1.06973911e-02,\n",
" 1.68782847e-02, -1.22819462e-02, -3.62556305e-03, 6.04749433e-03,\n",
" -1.46615776e-02, -2.16964330e-02, -3.13849445e-03, 1.99839589e-02,\n",
" -1.26615921e-02, -1.91507811e-03, -4.29563669e-03, 3.47948196e-03,\n",
" 5.02698107e-03, 1.33466658e-02, -1.36560386e-02, -1.38179565e-03,\n",
" 9.68442962e-03, 1.14560212e-03, 1.22750573e-03, 1.82947178e-04,\n",
" -5.19188639e-04, 1.44048463e-03, -4.05253225e-03, -3.75700060e-03,\n",
" -3.57125687e-03, -8.57693235e-03, 4.91239059e-03, 6.59486166e-03,\n",
" 4.61998163e-03, -7.50542300e-03, 1.01549374e-03, -2.38462739e-03,\n",
" 4.06682025e-03, 6.60507816e-03, 1.27933022e-02, 1.42017617e-02,\n",
" 5.93122459e-03, -6.86400884e-03, 1.38366689e-02, -5.87033267e-03,\n",
" 1.21956049e-02, -1.76717845e-02, 5.59184237e-03, 2.45791957e-03,\n",
" -2.73541977e-04, 6.46712976e-03, -7.68746448e-04, -1.29259664e-02,\n",
" 1.81930459e-03, -7.65535017e-03, -4.17078825e-03, 1.19367696e-02,\n",
" 7.27326392e-03, -5.71170807e-03, 1.18845447e-02, -1.09571570e-02,\n",
" -3.49653381e-03, -2.94795423e-03, 1.12822799e-02, -1.08047972e-02,\n",
" -2.04274580e-02, 1.47461908e-02, 1.30186091e-02, 7.67079610e-03,\n",
" -1.95413732e-03, 1.24187799e-02, -6.56608572e-03, -4.70314782e-03,\n",
" -3.80623472e-03, 1.71945848e-02, 7.38097451e-03, -1.17538163e-02,\n",
" 2.45762029e-02, -6.52944788e-03, -8.06409028e-03, -1.10440428e-02,\n",
" -8.16159422e-04, 1.07745894e-02, -1.50909190e-04, 2.13487238e-02,\n",
" 3.79474333e-03, -6.39342303e-04, -4.27962879e-03, 9.65767450e-03,\n",
" -9.04357395e-03, 2.67435248e-03, -6.10043338e-03, -9.78730050e-03,\n",
" 1.30286925e-02, -6.76818916e-03, -3.07748741e-03, 4.71315753e-03,\n",
" -3.50286542e-04, 8.08362128e-03, 8.40140015e-03, 2.52062576e-03,\n",
" 1.30104974e-02, -1.92831609e-03, -6.26224292e-04, 8.72080217e-03,\n",
" -4.55134503e-03, -1.06067827e-03, 9.55890878e-03, -6.90412271e-03,\n",
" 1.60393743e-03, 5.99715403e-03, 1.79190071e-02, 1.84154598e-03,\n",
" -1.98241726e-04, -4.66202499e-03, -1.15149128e-02, -3.19686386e-03,\n",
" 1.93817725e-03, 2.31679051e-04, -8.57503551e-03, 1.38114376e-03,\n",
" 1.17965059e-03, 1.89835114e-03, -1.35333436e-02, -3.60003463e-03,\n",
" -1.30135880e-02, 7.11654283e-03, 6.87699182e-03, 9.81865963e-03,\n",
" -5.85532232e-03, 2.95198658e-03, -4.45592037e-03, -3.42178823e-03,\n",
" -1.04806975e-02, 9.90629299e-03, 3.41525735e-03, 1.14932826e-04,\n",
" 2.77694947e-02, 7.42410846e-03, -1.51547544e-03, -8.51280858e-03,\n",
" -1.75062849e-02, 7.19412718e-03, 1.60764670e-03, 7.31600701e-04,\n",
" 7.26794444e-03, 3.23834431e-03, 4.71392831e-03, 4.26503155e-03,\n",
" 8.61307337e-03, -2.84122785e-03, -1.97452712e-03, 5.69920997e-04,\n",
" -1.38287318e-02, 4.92841561e-03, -1.40306872e-03, -4.59303007e-03,\n",
" 8.11213764e-03, -7.52676944e-03, -1.46441434e-03, 2.75322125e-03,\n",
" -6.78425905e-04, 4.27214178e-03, 1.76703574e-03, -3.87972943e-03,\n",
" -1.09092899e-02, -4.19739561e-03, -6.77775599e-03, -9.83954817e-03,\n",
" 4.38423958e-03, 1.07299937e-03, -7.47748250e-05, 2.92111764e-03,\n",
" -7.77580312e-03, -5.64774767e-03, -7.37125577e-03, -1.11727488e-02,\n",
" 5.09685610e-03, -2.34191796e-03, 4.87664995e-03, 5.86505904e-03,\n",
" 1.54938218e-02, -1.58183310e-02, -1.12012191e-03, 1.01503938e-02,\n",
" 4.46645761e-04, -1.54888851e-04, -4.92581335e-03, -1.90002209e-03,\n",
" -1.20809808e-02, 7.76085503e-03, 1.28865870e-03, -2.45542279e-03,\n",
" -5.46429044e-03, 7.09842133e-03, -1.35548084e-02, 2.71655896e-02,\n",
" 2.24951040e-02, 3.51728000e-03, -1.53599336e-03, 5.37107123e-03,\n",
" -9.47106988e-03, -1.21036245e-02, -8.12952191e-03, -9.62046838e-03,\n",
" 1.10443165e-02, 8.52745772e-03, -6.68328055e-03, 1.67134907e-03,\n",
" 1.40415968e-02, 1.50854966e-04, 5.86635667e-03, -2.43236017e-03,\n",
" 1.25102894e-02, 8.42478136e-03, -8.77056353e-03, 2.40453272e-03,\n",
" 6.63848358e-03, -5.68066463e-03, 8.84403253e-03, -3.40112101e-03,\n",
" -7.34024883e-04, -1.17295634e-02, 8.03802106e-03, -4.00030937e-03,\n",
" -2.29709022e-02, -7.61569875e-03, 5.39649236e-03, -1.48851374e-02,\n",
" -4.48902449e-03, 5.56137350e-03, -4.63958037e-03, 1.15961005e-02,\n",
" 1.81231725e-02, 9.63271862e-03, -5.99027800e-03, -6.79633639e-03,\n",
" -5.68614477e-03, 1.48049524e-02, 1.01114505e-02, 9.69071632e-03,\n",
" -8.05946781e-03, -3.30351518e-03, -6.57652217e-03, 6.66379321e-03,\n",
" -1.22596567e-02, -2.22492296e-02, 7.29091592e-04, 9.90429007e-03,\n",
" -8.32324212e-03, -9.23722094e-03, 5.22750474e-03, -4.25802555e-03,\n",
" 3.36069762e-03, -5.81271983e-03, 9.54796180e-03, -1.82655818e-03,\n",
" 1.24685441e-02, 1.00430668e-02, -9.72601926e-03, 4.15155626e-03,\n",
" 1.14167882e-02, 3.30567272e-03, -9.04459471e-03, 3.33224194e-03])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"out"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment