Skip to content

Instantly share code, notes, and snippets.

@anadiedrichs
Created April 27, 2017 13:32
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 anadiedrichs/4d9d57207f097c06f4a3205a16ed198b to your computer and use it in GitHub Desktop.
Save anadiedrichs/4d9d57207f097c06f4a3205a16ed198b to your computer and use it in GitHub Desktop.
lstm keras time series preprocessing error
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# LSTM pre-processing time series\n",
"## how to manage dataframe shape?\n",
"See the first error below ...\n",
"## how should be the format of the input?"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"# -*- coding: utf-8 -*-\n",
"# LSTM for international airline passengers problem with regression framing\n",
"import numpy\n",
"import matplotlib.pyplot as plt\n",
"import pandas\n",
"import math\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense\n",
"from keras.layers import LSTM\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.metrics import mean_squared_error\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def create_dataset(dataset, look_back=1, time_step = 1):\n",
"\tdataX, dataY = [], []\n",
"\tfor i in range(len(dataset)-look_back-1):\n",
"\t\ta = dataset[i:(i+look_back), 0]\n",
"\t\tdataX.append(a)\n",
"\t\tdataY.append(dataset[i + look_back:(i + look_back + time_step), 0])\n",
"\treturn numpy.array(dataX), numpy.array(dataY)\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(975, 1)\n"
]
}
],
"source": [
"# fix random seed for reproducibility\n",
"numpy.random.seed(7)\n",
"dataframe = pandas.read_csv('peach_four_sensors.csv', usecols=[1], engine='python', skiprows=2) #,skipfooter=3\n",
"print dataframe.shape\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXt4VNW5/78vIRcIJBAI13BV7ioIKqJWgkqhPbb2qK3V\nnnqpbe05HvWnvWl9VFDbalvtzXNsa+vteKlVseKlirdUxSsCAnIRkHsgkARCEi5JyPr98c7q7Exm\nMnvPXnuvtWfW53nyzGTPzJ6VnT3f+e53ve+7SAgBi8VisWQv3XQPwGKxWCzBYoXeYrFYshwr9BaL\nxZLlWKG3WCyWLMcKvcVisWQ5VugtFosly0kr9ERUSETvE9EyIlpJRLfEtj9ARJ/Fti8louOCH67F\nYrFYvNI93ROEEIeJaJYQ4gAR5QFYTEQvxR7+gRBiQbBDtFgsFosfXIVuhBAHYncLwV8O7bHfKYhB\nWSwWi0UdroSeiLoR0TIAuwC8IoT4MPbQ7US0nIjuIqL8wEZpsVgslowhLy0QiKgEwDMArgJQJ4So\niQn8fQA2CCFuD2aYFovFYsmUtDF6J0KI/UT0TwBzhRB3x7a1EtEDAL6f7DVEZJvpWCwWSwYIIZSE\nx91k3fQnotLY/R4AzgKwlogGxbYRgK8AWNXFYO2PELjlllu0j8GUH3ss7LGwx6LrH5W4cfSDATxE\nRN3AXwxPCCFeJKLXiKg/eEJ2OYDvKR2ZxWKxWJTgJr1yJYCpSbafGciILBaLxaIUWxkbIpWVlbqH\nYAz2WMSxxyKOPRbB4CnrJqM3IBJBv4fFYrFkG0QEEdZkrMVisViijRV6i8ViyXKs0FssFkuWY4Xe\nYrFYshwr9BaLxZLlWKG3WCyWLMcKvcVisWQ5VugtFosly7FCn4Ct7bJYLNmGFXoHN94ITJ8OXHWV\n7pFYLBaLOmwLBAc9ewIHD/L9AweAHj30jsdiseQutgVCALS2AocPx3+vq9M3FovFYlGJFfoYCxcC\np50W/90KvcViyRas0MdYsAA4+WQO3wBAba3e8VgsFosqrNAD2LgReOwxoLiYBf6b3wQ++0z3qCwW\ni0UNVugBvPkm306cyBOwM2YA776rd0wWi8WiCiv0ADZvBm6+GTj/fP79lFOAxYu1Dskzjz8OTJ0K\n/PjHukdisVhMw83i4FnPli3A5z4X//2YYzh009oK5OfrG5db2tuBiy7i+4MG6R2LxWIxD+voAVRX\nA0OHxn/PywPKyoD6en1j8sLGjcCIEcB99wH/+Afw3nu6R2SxWEzCCj04lbJ//47b+vePTubN9u0s\n9Ecfzb+/+ipw1lnAmjV6x2WxWMzACj1Y6MvKOm6LktCvXg0MHgyceCJw6qnA668Dr70GPPec7pFZ\nLBYTSCv0RFRIRO8T0TIiWklEt8S2jySi94hoHRE9TkSRjffX1QH9+nXcNnAgh3RMZ+dO4L//G9i2\njdNDX3oJ2LSJH4vKF5XFYgmWtEIvhDgMYJYQ4ngAUwB8gYimA7gTwF1CiHEA9gG4PNCRBsThw8Ch\nQ0BJScftxx4LfPyxnjF5YetWoG9f4MEH+fdevYBvfYvv79+vbVgWi8UgXIVuhBAHYncLwZk6AsAs\nAE/Htj8E4N+Vjy4E1q8HjjoKoITWQZMmRSPGvW8fh2zGjIlvq6jg26YmPWOyWCxm4UroiagbES0D\nsAvAKwA2AtgnhGiPPWU7gCHBDDFY7r47PonppKIC2LEj/PF4Zd8+oE+fjtt69+Zb26/HYrEALvPo\nY4J+PBGVAHgGwIRkT0v1+nnz5v3rfmVlJSorKz0NMkg++gi49dbO24cOjY7Q9+3bcdsJJ/CtFXpL\nLrN7N7B0KTB3ru6RuKOqqgpVVVWB7NtzP3oiuhnAAQA/AjBICNFORCcDuEUI8YUkzze6H/2gQXwy\nDEm4HmlrY6e8bVtnITWJO+4A9u4F7ryz4/aNG4HZs23PHkvu8rWvAU8+Gd1V40LtR09E/YmoNHa/\nB4CzAKwG8AaAr8aedgmAZ1UMKExaWrgoauDAzo91787VsgF9wSpj6VJg/PjO26OUHmqxBMEnn+ge\ngTm4idEPBvAGES0H8D6Al4UQLwK4HsB1RPQpgDIAfwlumMFQXc3553l5yR8fPdr88M2yZdxeOZGS\nEs4mamkJf0wWiwmsXat7BOaQNkYvhFgJYGqS7ZsATA9iUGGxbVs8QyUZgwYBu3aFN55MqK8Hyss7\nbyfi2oC6Ov4ys1hyjfZYqogQnbPqco2croyNutC3twMNDZ2zbiT9+wN79oQ7JovFBNragG7duK6k\nsVH3aPQTitC3tobxLt5ZvRqYkCx/KIbpce6GBj6Ru6e4Lhs2jDtzWiy5xqFDQFERX9Wa/BkOi1CE\nvrk5jHfxzsqVXAGbitJSs6tL6+u7zggaM4YLwiyWXOPgQV5ESIYvc52cFvotW4BRo1I/XlLCrtlU\nVq4Exo5N/fjIkdbRW3KLl1/mmLx09KZflYdFKEJ/8GAY7+Kdbds4vJEK0x39W291XDAlkfJyG6O3\n5BZz53IRoXT05eXRWy0uCEIR+sOHw3gXbzQ18cmQ2IfeiemOfvHi9EJv3Ywl23n2WeCSS+JZNm1t\ncUd/0UXAiy/qHZ8J5KzQr1jBjcu6Srsy3dGvX88LmqfCOnpLtlNXB3zlK8DDD8eTPg4dijv6U08F\nPv00utWxqshZoV+5EjjuuK6fU1jILsHE8bu5IrETUZZs54c/jN+XxYGHDsUdfWkpZ6Xt3atnfKYQ\nitAfOhTGu3hj82aufO0KIj5RTAzfyPmFrq5Ieve2rYot2Y284u7ZMy70Bw/GHT1g/pV5GOSso9+8\nmbNS0lFSYuZJsmdP8opYJ7JYJNcvWy3Zy5EjfFtW1lHopaMHzP0Mh0nOCv3One5aA5jq6OvrOy9/\nmEhBAVcHmnj8U/Hmm8CXvqR7FJao0NAA3Hsvmxln6Mbp6EtKbHVszoZu3AglYK4bSLbObTKiFL55\n+mlg5kzg+ed1jyRz/vlPTu+zhENtLVe3NzdbR98VOevo6+v5ci8dUXb0QHR6fbS3A2+/rXsU/qms\nBG67TfcocoOWFk6qGD68o9Anc/RW6EPARKHfu9fdgiI9ewIHDqR/Xths2ACMGJH+eb17R0Por7oK\n+M1vgPvuA/LzgWuuMfO8cYOpBYLZxoMP8u2QIWwU5Oc00dH37m2FPieF/tAhzrktLk7/3B49zPzg\nfvghcNJJ6Z/Xq1c0QjfLl/PtccfxQjC/+x2waZPeMWWKqU38uuKmm/iLNkrU1ADXXstp0D16xMU8\n0dGbatbCJCdj9NXV7ALc9KguKjJv/ADH6AcMSP+8qDh6OcaJE+PLOm7frm88fojiYi+3385frlFi\n61Zg3Di+X1QUF/pER2+FPkfbFG/e7C7sAbArMFHom5rYracjCpOxTz/Nsda9e/lvktlQURV60853\nt3TV98lE9uyJmx2n0Cc6+uJiK/Q5KfRbtrgX+qIiM0M3zc3uQk9RmIw9/3y+lQuonHEGMG0acNll\nwK236huXV6STj6KjB9xdIZrE/v2cLAFYR58OK/RpMDF009bGx1SeyF1heuimro6zImThCwBcfTXw\n7W/z/b//Xc+4MqG+nm/ff99Mc5COVAvYmMr+/Xx+A/xZkNlxyWL0prZKDwsr9GkwcTJWunk3cwym\nT8YuWQJMnsyFXU7kEo+FheGPKRNaW4ErruD727cDt9yidzyZ4BT6zZvNXsvgjTdY6EtK+Peioviy\nn9bRdyYUoTftUtZt+wPATEfvNj4PmO/on3sOmDOn8/aTT+bbgoJwx5MpW7cCCxfG49wbNwKffaZ3\nTF5xCv3xxwNTpugbS1c0NHB4b8eOuND36MHV7kScbPHqqzZG78Q6+jSYOBnrNj4PmH3ZKgSHZs47\nr/Nj/fuzK3b7haaThoZ433/Zf6imBjjqqGikiMpeSHl5fLtiBVf3mljh29jIIg6weDtDNwsWcBHk\n448Du3d3dPSmfgbCIueE/sgRdgJuMwxMnIxdsYJFxA0mhp4k69dzyEamyCXy+c+b32Z52zaeRJZh\nA9kRVQp8VZWWYbmmtZX7CwFxwTe5uGjWrPjkPRA3PDL05xR06egLCsyLKoRNWqEnogoiep2IVhPR\nSiK6Krb9FiLaTkRLYz9zU+3DJKGvq2MX4GYiEzDT0VdVAbNnu3tuz57mCv2KFcDUqannGqLQT3/t\nWr5dupRvr78eWLaMwwcA8Mknesblliee4LYNQPxzmp+vbThpWb2ab2fPZsMmzx059kGD4s+Vn/H8\nfLM0SAduHH0bgOuEEBMBzADw30Q0PvbY3UKIqbGfl1LtwKSD7LYZmMRER79qFU9gusFkR19dHZ90\nTUa/fhzrNjm+KoXn1Vc5FXTatI7to3fs0DMut8jl9wDO5gLY/ZaW8kS4qS2ur7kmXljn5Le/jd+X\njt4KvQuhF0LsEkIsj91vArAGwNDYwy7yPsw6yG6bgUlMnIx1s2iKxHShHzo09eN9+7LQyGwWE5FC\n/8473FwL4BYOADBmjJkN8ZzIuDwQF/rWVp6MLSqKp4yaxtSpHX+X7t3Zv8o6+jieYvRENBLAFADv\nxzZdSUTLiejPRFSa6nUmxcfq6tx1rZSYKJRuO28CZo5fIltRpEKKkGlftE42bIjfP+ssvu3enYX/\n1782X+idqbdSDFtbWRzHjOEwlCnI+pG//73zWhJS1J2T99LRd+9uhd51iQQR9QLwFIBrhBBNRPS/\nAG4VQggiuh3A3QAuT/baVavmYd48vl9ZWYlKGRTUQCahG5OEprWVQxkyrSwdPXqYG/pIJ/QAcMcd\nnLpoKvv2xc8R59XJjBnc1sF0oXeOz+no8/OBiy7iGL78AtPNnj1scM45p/NjUuid2WhORy//NpOp\nqqpCVUCz966Enoi6g0X+/4QQzwKAEGKP4yn3AXgu1etHj44LvW62bvXW08O0ydh9+zh+mlhglAqT\nHf2OHemFftgws1xlIo2Nqc2AqWsZOGloAI49lic1Ex397NnA73+vd3xOdu9O3abhZz8Dzj23o6OX\nk8pRCd0kmuD58+cr27fb0M39AFYLIf411UFEjvltnAtgVaoXm3SQP/vMfXwbMG8ytr7eXR99iclZ\nN9XV6ZdzND3zZv9+zlpJJkBRWPCioYHbTdx1V2dHP2kSpyuackX1q191DJU5GTGC6zGcjl72ToqK\n0AeJm/TKUwF8A8AZRLTMkUr5CyJaQUTLAcwEcG2qfZhykGtrgRdeAE480f1rTHP0u3fHJ/vcYKqj\nb21lEZEfxlSY3n1z/37g4YeTd9qUY3dmtphGQwNfeTjDGy0tnHtOxBXkpmQOPfJI6poLiRT6O+6I\nz/FYoXcRuhFCLAaQl+ShlOmUiZhykBcs4MvRY491/xrTHL3bRc0lpgq92xCUqeMHWBgPH+ZwQbJa\ngLw8Fp7GxniXRZM4cIDF87zzOk5YSkcP8NWjKRWyp50G/PSnXT9HtnFwao4V+hyrjF29GjjhBG+v\nMW0y1s0EphNThdLtUo6mjh/ghmxFRV03lzM5Tr9wId8mOvpEod+7V8/4EmlsjLc8SEdNTfy+aUL/\n5JPAX/4S7nuGIvTOFrQ6Wbs2/aVfIgUFfJKYcvn96qu83J5bpFCaVviyd6+7FFGT5xhefBH45je7\nfk5JiblCL+cVevRI7ej79DHH0Tc2uu99JFtSAOYJ/bJlHccXBqEIvSmpTevWAePHp3+eEyKzTpQl\nS4Czz3b//Lw8/hCbtm7vunXRdvQ7dgC33ZbeOJSWmjshK83LwIEdr1xNdfRNTe4c/Q03AN/9bvx3\nkz6/AF9thL3IS84I/YED/C3qtj2xE1OaIrW3e68DAMxzxe3twCWXdF0VKzG1DkD2ak93tWpy6Obw\nYeALXwBGjeq4boHJjt6N0P/sZx17QZko9F4SKlSQM6GbRx5hN5/JKjoyfKOb+noOBXhtOmWaK5YO\n8Ve/Sv9cU0NPsjtlYil+IqYLvVzYxSn0MusGMMfRHznC4+3Z0/tr8/LYXJgSfq2u7th8LQxyxtHf\neae3kIeT/HwzHH1XBSNdYZrQ794NjB3rLkafl2fO8XeyaRN3qjzjjK6fZ7LQt7QkF3oTHX1Tk/tV\n1RIxKfx6+DDPFU6aFO775oTQt7VxWuKPf5zZ601x9Nki9F4vXU0bP8CN5UaNSv88kydjnY5eOviW\nFjNj9F4mYpNhitBv3MjV3m4XDlJFToRutm/nuHamJ4opjtKP0JsU596+3V18XmJaLQPgfpUykydj\nDx/uuFSjdPWmOnq3qZXJMEXot251v7qdSnLC0e/Y4U1YEom6oy8qMivrZsMG4Oij3T+/sNCM4+/E\nbXqoqaGb5cu5/bNz8fXi4s5Cb5Kjzxahl+2swyRnhL6rBS7SEXVHb1rR1/r13oTelKwnJ26Fx1Sh\nl00SE4W+udlcR58NoZu1a7n9c9jkROhm+XLv+fNOTHH0e/bkpqMvKDBr/ED0hV5+cTpDN3IuxJl1\nI0NPujNW/Dp6U3rSL1vGi7qETU44+jfe8NdT2yRH71ymzi0mOfqWFuDTT3PH0Zs6GSu/OJ2OXgq9\n09F3784pjY2N4Y/RiYrJWN06BPD8VCa1PH7JeqE/coQXgPDzLWqK0EQ9dCMEj2XiRG9ZN4WFZhx/\nSXs7T267ER5TJ2O7cvROoQfMiNNny2RsbS3Qv3/475v1Qr9zJ7sqP90DTQndZCr0hYVmCP2OHSz2\n99zj7XWmhW6am1kU3Sz+YmroRh5P5+cildCb0Fc/GyZjW1v570jXmjsIsj5G77V/ezJMCt1EOUa/\nciWH0LxeXZlyRSXZtct9CM1Uoa+u5lvnkpSphL6wUP/5kw2TsXLRILerw6kklLcUQt9kjooGQiY4\n+pYWPtkzcQOmhG5WrgSOOcb760wL3SxfDkye7O65MkZvagsHZ0uBVEJvwhdtNjj6ujo9YRsgJKHv\n3l1f+EaFozchdLBnD7vITNyASULvZdEXiQlC42T9evftrgsKWGRMKlgD4itiJRP6pqaOsXsTvmiz\noTJWV3weCFHodYVvVDh6E5YTzDRsA5hx6Q34E3oTxi/xWpdh4oRsYyNw9dXA5z4X31ZUBLz0EufY\nJzp63cc/GyZjs17o8/L0OXoVLUF79tTvyPwIvQmOfudOXph94kTvrzXN0XuttDYxTt/UBPziFx1d\ncs+ewKpVfD8xRq/7+Dc0dJxP8IoV+hCIeujGCr1/Fi0CvvjFzJo5mSA0Tnbt8tZm1jShX7WK5wyc\n4RmARUhO0prm6P3Gt63Qh0DUQzemCH0mxVKAfqEXArj00szbUJggNE5qa739L0wqmtq0icNnbW2d\nW/4OGRJvHud8zIQrKr8iaYU+BGzoxj+Ztj8A9MfoZXx6woTMXm+C0DjxuspXcbH+80fy0UepHxs8\nOH6/uTl+34QrqkxWVnNihT4EdIduVDh654mvgyiHbnbu5EZOl1+e2etNEvq2Nu9FLyaIjGTDhtSP\nOYU+Ly9+X/cV1ZEj/guNTPgfGC30RFRBRK8T0WoiWklEV8e29yWiRUS0joheJqKUtae6hL693ftl\ndjJMcPRRFnqvMe1ETHCUkkyKXkyow5Ds2JH6sSFD+PaXvwRmzoxv13385epSfgqNTBD6PXsMFnoA\nbQCuE0JMBDADwJVENB7A9QBeFUKMA/A6gBtS7UCXI6uv56yCxEknr2SD0Ot0ZOvWAaNHZ/563Y7S\nSW2t9xCCKZXVQNfNyXr3ZkGdPr1zjF7n8fdbFQuYIfSbNulpaAa4EHohxC4hxPLY/SYAawBUADgH\nwEOxpz0E4Cup9qErRux2cYh0RF3odfe6eewx4MwzM3+9SaGbTLI/THL0UugvvDD545Mnd14BSbej\n91ssBegX+r17+Rj6DSNnSncvTyaikQCmAHgPwEAhRA3AXwZElDJAokvo9+3jy2y/6J5MEyK6oZu2\nNmDxYuD11zPfh0lCnw2O/qWXgDlzkj++eHHnbdng6HX3o//4Y14QPJPFzVXgWuiJqBeApwBcI4Ro\nIiLX3Ttqaubh3nt5UdzKykpUVlZmMFTv7NunplOcbkff3MwnSKYLCusUetmjxDm55xXdjtJJJo5e\nt5t0sn+/9wrT/Hy9V4R+q2IB/f+Djz4CTjyx6+dUVVWhSi79pRhXQk9E3cEi/39CiGdjm2uIaKAQ\nooaIBgHYner1Rx89D//xH8CsWb7H64m9e9U4et1C7yeHHtAbo/fbjArQ7yidbNnivR7ApCuSxkbv\nFaa6RVJVjF5nu/QtW4BRo7p+TqIJnj9/vrL3dzuPfT+A1UKI3zq2LQRwaez+JQCeTXyRRGfoJhsc\n/c6d/rJWiorihTBhs3+/v9J1wCyhXLfOfUMziW6hdLJvn/e1GXSPv7Ex86tZie6/obraW9sM1aR1\n9ER0KoBvAFhJRMsACAA/AXAngL8R0bcAbAXw1VT70DkZq8rR68yj37zZ32x97976loLLJFSQSNSF\n3pTxHzzIoSeZRukW3SLZ0ODfsOn+G7z2R1JNWqEXQiwGkCrC6molVuvo/bFlS+dMCC84e6KHPRmU\nSaggEd2VvZKDB4EVK4CxY729Lj9ff8EdwIu+9Onjfb5Et0iq+BzrnGcQAlizxvt5o5JQKmN1ORpV\nWTdRF/r8fA7f6BCb+nr/H1ITHPGhQ3weDBrk/QrFhPRKIYB33uHPhFeyReh1/Q3V1WxW/BZu+iEU\nodcZulHh6GU/el2rZPkN3QAcl83kQ+6XnTu9hwoSMUHoN2/m2z/+0ftrTUiv3LOHb2+7zftrrdD7\no6bG/2fAL1kt9KpCN9266S068uvoAX2tcqurs0Po6+qAE04Avvxl76/VLZQAryg1eTLwwx96f63O\nXlVA9IW+vl5N4aYfslroGxq8ZxikomdPPZkrQqgR+vJydhZho0LoTYjR19Zm/neY8kWVaZ8V3V9U\nURd6VRX6fshqoVeRwy3RFaffvZtTy/zmEY8ZA3z6qZoxeWHHjuxw9H4aUukWSsCfWOoef9SFPmcc\nva4Pqkqh79FDj9Bv2aKmEdK4cXqEPltCN2vXZt6YzYTxR1noVVyZ6/wbamtzROito8+czZv9h20A\nTu1at87/frwgBAu9s895JphQGfvee8CMGZm9VrdQAtEW+qg7ehWhV79krdALoV7odcToVZ0k48aF\nL/QynVNFHr1uR7x+PTB+fGavNSG90gq9vr9h06b07Q+CJmuFvqWFi4P89qKX6ArdqCqdHj2aMy/C\n/BtUrO4F6A99NDbyT6ZXJiakV+7alfn/QqdIHjrEK0z16OFvP7qFXlcfeknWCr1KNw/oC92omrGX\n4Y/p0/3vyy3ZIvTvvANMnZp5VbEJjn7duswrM3WKpGx/4LeiW9ffcOQIsG1bjoRudHxQVQt9797A\ngw8Cq1er26cb5NJ1Krj/fnb1YdUD7N7tf2F2QH+M/uWXgblzM3+9CY5+06bMJ5N1Cr2qWhhd/eh3\n7OBsraKi8N/biXX0LikpAZ55Brj6anX7dIPKHNzLLgOOPRZYtEjN/tKhytHrjNEfOQIsWACcfXbm\n+9Ad4wb485Bp5ko2CL2uv8GE+Dxghd418tLx4495ojcsVHXglMyaBXzwgbr9dYUqoZcf0jCPu2TD\nBq6MnjIl833oDj0JwRPjmdZiZIvQ66jutUIfMKqF/qc/BZYs4Qm5V15Rt990qC62GDsW2LhR3f66\nQpXQE+kLf2zb5n8iTbejP3CAP4OZrvKVLUJvHX3AZIPQl5UB06bxJfx776nbbzpUO/phw1i8wqCm\nRt1iyLrCN9u28THzg+7JWL8rNOkWehVtTHQKve6MGyDLhd5v24BkTJ4MzJ8fToOwgwe5Y6bf1DIn\nI0awow8jDLJzp/9iKYmu8IcKodc9Get3zVUTsm78Yh19COjImlCxhF0yzj+f49wLFqjfdyJyIlbl\nYiHDh3MGQBjZQyraH0iiLPRRd/Q6u1dGPXRTXe19jeEgCEXoZT/3MFHZudJJXh63qg0jfKM6bAPw\nl8bUqcAnn6jdbzJUtD+Q6Eqx3LbN/wdVt6P3u5yj7tBNlIVeVYqxX0IReh3FRkEJPQBMnMgl8UFT\nWwv066d+v6NHA599pn6/Tg4fZnFTNU+iI0bf2gp8+CGH6/ygezK2rs7feWSFPjMOHOD3VDlXmCmh\nOfqw+8QEKfQVFVx4FDR79qibzHQShtDL468q7KQjdLNhA4fO/Dp63emVVuj1/A0y6yzsdZqTYR19\nBgwdyhVvQU9oqkpPTCRMoVeFDrFUFV+NuqPPy+OkAB1LaUZZ6GtqzAjbAFns6PfvD07o5aVY0Itt\n794dzILCRx3FbjVIghD6sGP0quYYdDt6vyFAWceg48sqykIflFHLhFCEvqiIT/QjR8J4NyZIRw/w\nyRd0imWQoZuGBu5oGBSqj7+OGP2uXcCgQf73IwuVwjz/naxaxW2q/WCF3jumTMQCLoSeiP5CRDVE\ntMKx7RYi2k5ES2M/XbZ8Igo/8yZooS8t5ZMwSIJyBN26ASeeCHz0kfp9S7IhdKOyKllniuXy5Vzs\n5wcr9N5RWTDoFzeO/gEAc5Jsv1sIMTX281K6nYTdzz0MRx+G0AcRugGACRN4ebygUFXoItERulHZ\nUE5XiqUQfGXo98pEh1C2tPBPz57+96XjqkpFDYYq0gq9EOJtAHuTPORpLjnsFZps6KZrJkwA1qwJ\nZt+AutJ1iQ5Hr7KOQZejb2jgz57fBXh0CH1jIxc9qspaCftv2LqVCxRNwE+M/koiWk5EfyaitB/p\nMB19ayv/qHACqejThy/tgyRIRz9+fLQcvY4YvUqh1+Xo9+zhfuh+0SH0fgu9Egn7b9i+3RxH3z3D\n1/0vgFuFEIKIbgdwN4DLUz153rx5aGgAfv1r4MILK1FZWZnh27qjoUGtE0jGwIEcgwuKtjZ2xUEU\nTAFxRy9EMMdp3z61q+rocPQqv6x0xbijLPTS0atChv/CKmCqrfV27KuqqlBVVRXIWDISeiHEHsev\n9wF4rqvnz5s3D4sWARdfDJx6aibv6I2gwzYAp93t3Bnc/uvqOD6caWvZdAwYwHnRtbXBXDVkQ4y+\nuRkoLlaoAGD3AAAgAElEQVSzL10plqqaamWDoy8u5v+pii8+N3idzK+s7GiC58+fr2wsbkM3BEdM\nnoicUzvnAliVbgdhxuizQeiDDNsA7OKDjNMHEaMPW+gPHFAX/tPl6Dds4LoJv2SDo5dCHwYHD/LV\nssrOs35wk175GIB3AIwloq1EdBmAXxDRCiJaDmAmgGvT7SfMGH0YQj96dLBFRyqaaaUjyDi9akdf\nWsoOL0xUCr2uydiVK7k3k190tBpX7eh79QpP6OvrOexqQvsDwEXoRghxUZLND3h9o2xz9JMmcQfI\nw4f5Q6CazZuDX7AgSo6+rCzYOZFkqHb0OkI3H3wA3HGH//3oWlMiqo5ehl5NIZTKWCD7HH2fPjzf\n8Le/BbP/sIQ+Ko6+rIw/PGEhRPQd/c6dLGwqQjfZ4OjDFHrVS4D6JTShzzZHDwAzZgTXrjgsoV+1\nKpjmbKodfb9+waezOmlt5Qri/Hw1+9Ph6D/4ADjpJDXhA+vovZHTQt/UFM57hSX0o0cHt4BHGEI/\nejRn9aj+G4RQ31Sub99whV6lmwf0TGZ++CG3ulCBdfTekDF6UwhN6IOevHQSltB/8YvAa69xrrJq\nduwIfjKWCDj9dPWrZTU3c6hClRsG+AOfzCgEJT6qhV5Xm2VVtQzZ4ujDMps5G6M/5hgOE4RBWELf\nvz9fGr//vvp919eHk+87dSqwbJnafaqOzwOp3VhREbBundr3Avi9oi70qhqCAdbReyVnQzf9+wff\nBEwSltADwMknA2+9pTbOLSetw8jBPf549UKvOj4PcGpcohuTcz5BXFGpdvQ6hDLqQm9j9OrItAWC\nZ8K8bApT6M88E6is5ErT739fzT7DPEmmTAFWrOCufqqqcINw9MlyoDdv5tsg0i6t0HckWxx9dbW6\n/XVFzsbowyxWCFPoZ84EbrwRePNNdfsMU+hLS7mF7aefqttnEI5eGgXnlZOcnA1iAZVsEXpVTdms\no/eGaY4+NKHPVkcPAF/+slqnEPZJojp8o7Lro6R7d57cdS5eI2PeQbSiUC30RUV6+ulbRx8nTLOZ\ns5OxhYXckTGMFLOwhX7AAO5No4qoC73Xrn1uSfygSqGPiqMPc4W19nYWSlWOOOzxA9bRqyQ0oScK\n7xs1bKEvL2ehVzUhG/ZJMmGC2syVurpghD7xqjBKjj5sR9zYyMeru6JZuJIS3meYNDaqdfS9e4fX\nLylnY/RAOOGb1lb+QKlqL+uG4mKuolT1JVZXF+5JMmaM2grfMB398OHBCb3KcyhsoVc5EQuwcQp6\nRTUnLS0cASgqUrfPigpe9SloDh7kKypTOlcCIQt9GNWN8nI17K5xffuqSx8NO743ZgyvhqNq/EEK\nfaKjHz48mNBNU1O0Y/SqhT6MNZKdyKtalZ/jkSO5K2x7u7p9JiOIsfslVKEfNCj4DoRhh20kffrw\n5JdfLr0U+OUv1a7OlI7CQuCUUwBVi9sEJfSJMdaWFl6qbc8e9Ys+q55Q1uHoVY4/bEcfxFVtjx4c\nvgmi7sKJaWEbQIPQB+G+nOgUehWO5+mn+VbFqkBemD0beOwxNTHMMB19cTEfe9XhG9VCGfZkpsqM\nGyA7hB7g/6kKQ9YVpk3EAtbRK6NnT+DKKzmu6Idjj+UirOOOUzMut3znO8CTT3JPIr8E6egThb6g\nAJgzB1iwQO17qXb0UQ/d9O8fvBN2EpTQl5VZoQ+cbHb0bW28ms/WrcDixZln4OzcCfzpT2rjw24o\nLQWuuMK/OAjBQh/EhzTZZGxBARetLV+u9r1UC32vXuFmragW+iFD2KT5NTJu2b2b05ZVE4ajNy2H\nHghZ6AcOzF6hf/554HOfAxYtAk47LbMCqvZ2ft2QIerH54abbvKfFdXYyGGKIFbdkulxLS081tpa\nFvqJE4HVq9W+l+rQR3l5uI5YtdDn57PwhtVCYNs2nn9RTRgJIdbRZ7Gj79mTwx6PPsq/V1R4j8nu\n2cMZQypTyrwwaBC7ET+uLaiwDRCfB1m0CLj9dj7WBQVcB7B6tdrGcqodvay1CAvVQg9whlMY6YlA\ncGsmqy5uTIbqQi8VhCr0Q4ZwGl+Q6BJ6gAXu7bfjv2/Z4u31O3YAQ4eqHZMX8vI45OLHeQYp9H37\nssC/9BJfHW7ZwkJfVsbxe5XnlurJWB2OXnUbijCFfvduNh6qqagIXoMOHdJn1lIRqtCPGsUfziDz\nWHUKvbxcmz+f++97PaH27tWfljVwoL8J86CqYgGOcwO82Mt55/H9ggK+nTxZXZxeCPWOWE4CBp3D\nLVEdegLCFXqV7RucVFTw1UKQHDxoVrEUoKEytrQ0mEpGiU6hlyJ98sncP8ar0Dc06L/kGzDAn9AH\n6ejl/MH69fEl8uT/evJkngxXQWMjf1BVrpDVvTvvM6zGflEP3ahufyAZNix4R5/zQg9wHPuvfwUu\nuCCY2W8THH1ZWWbOISgX4wW/WQlBCv1JJ/HtkSP8RQrEC8tGjlQnQkGIJBBuLroV+uQMGxa8o49k\n6IaI/kJENUS0wrGtLxEtIqJ1RPQyEbmW1lGjgB/8AHjlFWDTpkyHnRqdQi8X8+7XL+4cWlvdTxKq\nXlA7E/zmGQcp9NOnA9dfz/eHD+dbOacxbJg6EWpqioeJVGKF3j1BCf3gwRz/DzJNNKqO/gEAcxK2\nXQ/gVSHEOACvA7jB7RvKmfQpU7LP0csiJyn069fzidWtm7uJOBNCN4mO/pNPgJdfdv/6IIUe4ONZ\nWMgiVlsbP+YVFTyZrYLm5mCa4kVd6EeM4Dk2ldlNqVDdi16Sn8/nkNdECS8cPBhBRy+EeBtAoiSf\nA+Ch2P2HAHzF7RvefDPwxhvBFS7oFPrCQnaDJSXArFnAO+/w5CQA3Hpr+r/XxNDNqacCc+e6f33Q\nQj9kCP8QdZy4VpnVEnWhP3KE/wbV55L84gi64OjwYf4yCaIWA+B03DVrgtk3wKGbKDr6ZAwQQtQA\ngBBiF4Byty8sLuY1VoPqhqdT6IG4QBQXA1//Ot9/913gnnuAadO6fq0JoZsBAzrWOngVpqCqYiUT\nJnAIJ5H+/fm9VbjNoIQ+rA6QDQ3shrspnoEjirv6IJFXI0F1fxwzBtiwIZh9A2aGbkJZHHzevHn/\nul9ZWYnKysqsdPSJ/PnPwB13cMri6tXAGWfwvESqhmUmhG6OOgr44x/5vhRNL4IRtKOfNAl4/PHO\n2wsL+XJ50SLgG9/gcWRK1B19UJPJAOe2B11wFMRSlE6GDAk28y/T0E1VVRWqVLWQTSBToa8hooFC\niBoiGgSgy3+9U+glQQh9WxtfNgUxkZYJeXks8kDciX7wQWqhNyF0M24crzbV3s6l3KWl3HLA7QRl\n0ELfFeXlwP33x8NlmWKFPjVhVJYGLfSDB3cM3bS0ABdfzD2mamv9N/bLNHQjTbBk/vz5/gbiwK1X\no9iPZCGAS2P3LwHwrNc3VtW/3YmcwDGp4b+Ts88Gnngi9eOmhG4GDwaeeQb47DN2+G6zLYTQ24u7\nvDz+AfbTn94KfWoGDAi+wjeIql4ngwd3dPSLF/Pn8j//k893v0RyMpaIHgPwDoCxRLSViC4DcAeA\n2US0DsBZsd89oXJFJolJYZtkzJnTdWdLE0I3AIdurriCs4ZGj+a4rBuhb2hggVRZaOSF8vJ40ZQf\n16l6GUFJNgj9oEHBFxyF4ehXrwa+/3128/IK8LHH1OzfxBi9m6ybi4QQQ4QQhUKI4UKIB4QQe4UQ\nZwkhxgkhZgshPEt2EKEb04W+ooIrJJcuTf64CaEbgLtvlpcDf/87C/3w4e4m4HSGbQAes8RPDNY6\n+tQceyywYkX65/khDKGvrgbuvhvYvJnf74wz4o/7XXwnm7JufBNE6MZ0oScCvvtdrgxOhgmhG8np\npwNPPRV39FEQevneM2bkttAHKZRTpnBPoSBz6YMWemdocdw4YNkyrrQ+fJjrX/zqUiRDN0Fx9NE8\n6adyrU/ThR7gnvXvvtt5uxDBFYlkwje+wZksU6a4LxvXLfQXXMBr344fn9tCH3ToJi8v2PBN0ELf\nrRvw0EPAuefy748+yu9XUMD/9wMHMt+3rLjVFb5MhTahLy9nUVi/Xt0+oyD0kyYl753e3MwuoHso\nCa/pOf10vgSdPp0zh9zEvHUL/bRpPAfid8lKK/SpIeKFXtatC2b/QLDjl1x8cdzZ798f/2Lp2dOf\n0JsYnwc0Cj0Q7zuRiqYmb/GyKAj9gAHx5facmBS2ScRt62LdQi/xW5hkhb5rjjoK2LgxuP0H7egl\nzvCKTINWIfSmhW0AzUIvqxkTue46bh9w5pkcQ3NLFISeKHkJtikZN8mwQq+GbBH6KVOABx8Mbv9h\nmR6nIMv1af0KvYkTsYBmoU/Vn+TXv+aK0pUruRzf7fKDURB6gGPIa9d23GZKxk0yBg7kq6t04hl0\n+wO39OnjT1CDEvqSEu7KGPTiI0EL/Xe/yxOYLS3B7L+xMZyix699jSfugXjGlnX0AZDYV8XJu+9y\nOuK55wKvv+5uf1ER+gkTkgu9qWPPy2MXlyotVGKKoy8tNdPRh7X4SNChj4ICzsRSOb/mpKkpnKSE\nE07gyMGVV8ZbjNsYfQCMHQvMm8e5rJKDB/m2thaYORP4/Oc5n9sNURH68eN5QtaJyaEbgD8US5Z0\n/RxThN5v6m5QQg/4/xJyQxiTmSNGBJd5E5ajl9xzT9yF29BNAEycyLfLlsW31dXFL/+nTgXOP58X\ng3aThhkVoT/5ZL5icV76mhy6AdwJfZDrxXph1CjuTphprndzM3/gg8BvWMkNYQi9LDoKgrAcfTKK\ni/1dcdnQTRJOOIFXm1q6lHurACwWQ4Zw3/rzzmPRHzjQXf/oqAh9eTlfzbzySnybyaEbgP9XH37Y\n9XNMcfQDBvCHLVPHGbSjD1LoW1vDaewXVAdIIcJ39E78Vuzb0E0KjjkG+MUv4sULckJv/vz4TPhJ\nJ3HL33RERegBLkj6+c/jv5seuhkzhr+MUn24W1uDb0blhaOO4qZsmRBloZefgaAb+w0ZEoyjP3yY\nC5oKCtTv2w39+vnrfmpDNymYNCkewnjvvY6hG8m55wK//W36S/EoCf1Xv9px8QPTQzfduvFqU2+9\nBfzP/wDnnAP86Efx1girVvFViikFX3Ky8LXXvL2utZWzYoISGpUrYSUjjLAN0LkDpCp0hm0A/0Jv\nQzcpmDAhfn/GjORx3vPO4w9IOgcRJaEfPJgvEQ8d4t9ND90AXC37xBPAtdcCCxdyGfnTT/MX9Qsv\ncHjHFIYNA37/e+Css7y9Trr5oBxxUE5YElax0eDBwIIFHefXVKAzbAOoEXrr6JMgL5FvvJGFLpmj\nB/hL4MorU/8Tjhzh2XJTFh1JR7du/M3///4f/2566AbgLKgFC7igrbWVF2r46U+BO+8EbrqJUzBN\nwTnp6WVSNsiwDRCcE5aEdWUoF+d44QW1+9Xt6MvK/IdurKNPQUsLcNttfPvpp/xhSOScc4BnnwW+\n/e14+lNLC/DPf/J92RBM9TqZQdLcHF+2z/TQDcBZUL/6FYt69+78PykrA265hedULr1U9wjj9O4d\nF1Qv6YxBf+EOH87LSQaF25XA/DJ4MM+bqW6F0NioP3RTX5/5662j74L8fL5UHjqUMzuGDOn8nAsu\nAH7zG47jFxfzajB/+AMvNP7MM/zPKSsLfei+qK/nWHBjYzSEPi+PF2twOt6LL+Z00Z/8xJyJWICP\npZz7cVtZDQS/QtbkyeyCE+soVNHUFOwViZOKCvW59FEP3djJWBdUVHDFaDJHX1wMXHMNCw3AIr9y\nJfDv/86lzJs2dVx4IgqUlHC75s2bozW/4OSmm7i60JRJWInTFXpx9KlCh6oYNYqTC37yk2D239wc\nnlBWVLhrX+0F3aGb3r1ZrDNt72AnY11QUcG3I0akfs4PfhDPuX/+eQ4XTJ/OLsmEHG6vyF7vUXD0\nUSJToQ/6ypAIuPVWd3UhmRBW6AbgOP2WLWp73uh29ESc1u1moZ1k2NCNC+SHM5mjd/KVr3DF7K5d\nnLVz9NHABx9Ez9EDLPRbt1qhV408liUlZjl6gM/XTZuCaW4W9GSykx491Pe80e3oAeDss4Hnnsvs\ntTZ044KrruLUPTepbTJX+Oij+XL4ww+jKfQDBnBPfhNO8GxCtrceNswsRw/wyl09egRTOBWmowf4\nKlxluqhuRw9wa5ZMJ8xt6MYFEybwgr1uuO02dhJE3HmutTWaQl9Wxo6+Z0+e7LSooaSEC7pOP91b\nSXtYk/r9+nUsmFNFmI4eUF8ApjvrBuDMqK1bM3utDd0oZtAgdvMAO3ogmkLfty/HA23YRj133snO\n3kvWTRihG4BDdSedxCX/Kgnb0asWehOubP0Ivc2jDxAp+FEUy7IyvkyMYsZNFPCaGRKWo5cpfJn2\n40mFDkefbaEb6+gTIKLNRPQxES0jog9UDcorQ4YAs2dzg7SoUVbG6ZVR/JKKAsOH83oGbhcL37s3\nnF4xVVXA8cerD9+E7ei9rBfhBhMcff/+XJSZSbvirBR6AO0AKoUQxwshTlIxoExZtMjb+rKm0Lcv\nt2+wQh8M06Zxa4aXX3b3/AMHwnHEM2fyuNx+AbklzIIpADjuODYqmfb+T8QER0+UuavP1tANKdhH\nTiPDBDZ0EwzdunGBUuLSjakIS+iB9PHtffu8d98Ms2AKYPfaqxe3F1eBCZOxAKeNZiL0Bw5kp6MX\nAF4mog+J6DsqBpRrSKE34eTOVsrK3GfeHDgQ3OpSifTv37VAPvssd9/0MpkcdugG4NDpjh1q9qVj\n/MkYPhx45BHg8cc5HOO2p4+prVj8Fq6fIoTYRUTlAF4hojVCiLcTnzRv3rx/3a+srERlZaXPt80e\n5Le/roUWcgEvqwaFKfTl5cCKFakfl5PIDz/MqaJuCHsyFuBkiA0b1HQvNcXRDx/OzfoefZSb+S1d\nygVuyWp86up4e9++/pbTrKqqQlVVla9xp4KEouAaEd0CoFEIcXfCdqHqPbIVIuDrX2f3YFHPP/4B\nfPGL3Or6nXdSP6+9nXv2tLWF0wV12TJu1rduXXIB+c53WDh27ep63E5KSzldN4wJZckNN/CX4003\n+d/XgAG8iI1cXU4XDz4IXHZZx22ffRZP5XZy6qn8RbBrFxfo7d+vZgxEBCGEkpURMj6diagnEfWK\n3S8G8HkAq1QMKtcYM4brAizBILtqvvtu18+TVY1htbqePJkFcs6c5HMINTXAmWe6r9IUQo+jnzDB\n/RxIOkyYjAU69tuSq6tt2wbcey/32JI0N/Nk9KFDPN8SRg1GJvg5pQcCeJuIlgF4D8BzQohFaoaV\nW6xd674i2OKdCRN4HQOg6/4yYU7EAiwgixezWEyY0Lk9bl0dpwzX17srrDp8mKur8/ODGW8qxo9X\n06StrY0bpJkwmXnKKRxCWriQ3bqch/iv/+KqfIBdf69eXEfQowfw5pvxmh7TyDhGL4TYBMCgNYWi\nS5QWS4kipaXAffcBTz3FmSypJsvCjM9Lios5tDRhArB8OTt4SV0dx/FLS3ncAwd2vS8dbh7gtOZ1\n6/hL1M+5LCdig17Y3A2FhR1DMEOHxtcQkF9ETz3F4738cg75XX459+syEcO6iFsswTFgAIdDTBJ6\ngGsozjuPY/aJQt+/Pz++f396odeVsVJaynMC27fzJGammDIRm4yhQ3m95KFDeRW86mqeN9m6NR4a\n/NGP9Jw/brBe0pIzjBrVdcsBXUIPcMbKxx/HfxeCXXzfviykbjpdhl0s5URF+MaU1MpkDB0KLFnC\nk/p79wLz5gFf+ELHVdUGDDB3/FboLTmDDDGkQlfoA2AhcVbJtrRwCCM/373Qh10s5WT8eP8TsiY7\nenk19fWvs6Dfdx/wve/pHZMXbOjGkjOMG9fRNSei09GXlfGka0sLh2wKC+NfOjJ0kw6djnj8eP/r\n4JrQ5yYVlZVsEsaOZWffvbtZaySnwzp6S84wdmzXjt4Eob/2Ws7wcF5deHH0OkM3Khy9saGPbnz+\nADxBHiWRB6zQW3KIqVPZ0dfXJ3/cBKF/8cX4WLwKvW5Hn82hm6hjhd6SM5SVdS1IOoVeivnmzewW\nm5vjYyktdRe60enoKyr4i8bLso2JmDwZG3Ws0FtyioEDUzcJC7tgyonMP58zh+87RbukxHxHT5R+\nsjsd1tEHhxV6S04xaFDqHvBNTXrzoJcs4WrLfftY9DIJ3ej6ogL4amn58sxfbx19cFiht+QUAwd2\nLfQ6HeW0afxF1KsXFx9J0UsU+vvvBy65pPPrdaZXAlws9b3vZb6YinX0wWGF3pJT9OmTOo5sitD0\n68dtf2VmR+KY77+fWxcn9rLX7ehvvpm7cT78cGavN+X4ZyNW6C05RVdhEFPS+6TQy1YN/fp1bHgm\ne62Ul7N7bmnh3+vr9ab9FRWxo3/ssfTP/fnPgSuu6LjNhm6CwxZMWXKKroRed+hGIoX+xBP59/79\nOwp9fT2HeHbtAlauBGbPBu66i9vk6u7jPmMGF061tXFRUSJNTdyzfd8+Xmxn+nTgW9/ix/buNeP4\nZyPW0VtyCpnB0t7euUrWNEcv3Xm/fh3DNHV1vMzd+ecDTz/N2x59lIW+vDz88TopLOS2Damam+3Y\nEQ9DtbRwx8ft23ktgHff5S8Ki3qs0FtyCunolyxhUXHGvk2JEffrx8In+6v06sUO+eBB/r2+Hjjh\nBB7/H/4AXHgh1wbs2qVf6AGeFN65k2sCEqmp4eZyS5bEt732GnfuHDMm82X4LF1jhd6SU0ihX7OG\nhfORR+KPmST0QHwRCyIOd2zdyi744EG+Mjn+eH782mtZ4Hft4uZouvngA86p/93vOj+2ezePe9o0\n4K9/5YU8XnmFX3PSSeGPNVewMXpLTuGsQD3tNF7Z65vf5O2mTAbKL5vRo+PbRo3iJQX79OGQDhEw\naxavKlVQALzwAn8R5OXpGbOTE08E7rwT+POfOz+2Z0/ctV9wAT/3tNOAI0e4WMwSDNbRW3IKKfRN\nTcCXvsRCc//9/Jgpjl62O3CmSo4cyUJfV9dx4ZSCAr6dNIn7o5vC8OG8SHkiDQ0dFy4fNYqP+yuv\nWEcfJFboLTlFUREv6lFfz0J67rnAW2/xNlMmY6+7Dvjkk47bpKOvrzd3AWonI0Z0FPonnwRuuIG/\nxEpK4tuJuOVDXR2HeyzBYIXeklMQsauvrmZRnzqVF3+WC30UFuoeIV9VTJzYcduoURxuqqkxY8I1\nHX37sqhfcw3//qc/AXfc0VnoAU4Nff55M8JO2YoVekvOUVrKaX7FxcBRR7FL3rzZjLBNKqSj37KF\n3bLpyAW+5YSsnCTeurWz0H/728C//Vt4Y8tFrNBbco5+/Vgwi4s5bDBxIqf7mRC2SYWM0UdF6AHg\nuef4+O7eHa8DeO45/qK1hIsvoSeiuUS0log+JaIfqxqUxRIkgwdzCEFOdg4ezOl9uqtKu2LAAA4v\nvfsu55tHgbPP5oyaZcs4VHbhhbzd5OOcrWQs9ETUDcA9AOYAmATgQiIar2pg2UhVVZXuIRiDzmMx\neDDfSqHfvp1DDIMG6RmPm2NBxO0CPvyQM2yiwmmnAW+/zUJ/661c4NVV9av9jASDH0d/EoD1Qogt\nQohWAH8FcI6aYWUn9iSOo/NYDBvGtzJPfeRIvm1v1zIc18di1Ci+leONAjNncuVrXR2P+4or4vH7\nZNjPSDD4KZgaCmCb4/ftYPG3WIxm7lzgxhvjvWQeeww45RTzQyIXXsgFR90iNLM2YwaHmyoqkjc5\ns4SDn0Of7HtZ+NifxRIKU6dy3rwkP5/bCJjOrFn8EyVkJpOtetULCZGZNhPRyQDmCSHmxn6/HoAQ\nQtyZ8Dwr/haLxZIBQoguAl3u8SP0eQDWATgTwE4AHwC4UAixRsXALBaLxaKGjEM3QogjRPTfABaB\nJ3X/YkXeYrFYzCNjR2+xWCyWaBDY/H2uFVMRUQURvU5Eq4loJRFdHdvel4gWEdE6InqZiEodr/kd\nEa0nouVENEXf6IOBiLoR0VIiWhj7fSQRvRc7Fo8TUffY9gIi+mvsWLxLRCnWJ4omRFRKRE8S0Roi\n+oSIpufqeUFE1xLRKiJaQUSPxv73OXFeENFfiKiGiFY4tnk+D4jokpiuriOii928dyBCn6PFVG0A\nrhNCTAQwA8CVsb/5egCvCiHGAXgdwA0AQERfAHCUEGIMgCsA/EHPsAPlGgCrHb/fCeCu2LHYB+Dy\n2PbLAdTHjsVvAPwi1FEGz28BvCiEmABgMoC1yMHzgoiGALgKwFQhxHHg0PGFyJ3z4gGwJjrxdB4Q\nUV8ANwM4EcB0ALc4vxxSIoRQ/gPgZAD/cPx+PYAfB/Fepv4A+DuAs8Af6oGxbYMArInd/wOACxzP\nXyOflw0/ACoAvAKgEsDC2LY9ALolniMAXgIwPXY/D8Ae3eNXeBx6A9iYZHvOnRcAhgDYAqAvWOQX\nApgNYHeunBcARgBYkel5AODrAO51bL/X+bxUP0GFbpIVUxmwyFk4ENFIAFMAvAf+J9YAgBBiFwDZ\n6SPxGO1Adh2jXwP4IWK1FUTUD8BeIYSsP3WeE/86FkKIIwD2EVEZsoPRAGqJ6IFYGOtPRNQTOXhe\nCCGqAdwFYCv472oAsBTAvhw8LyQDXJ4H8rhkdH4EJfQ5W0xFRL0APAXgGiFEE1L/3Vl7jIjo3wDU\nCCGWI/53Ejr/zcLxWIddIEuOBdi5TgXwP0KIqQCawVe4uXhe9AG3SRkBdvfFAJKti5UL50U6Uv3t\nGZ0fQQn9dgDOiZMKANUBvZcxxCaRngLwf0KIZ2Oba4hoYOzxQeDLVICP0TDHy7PpGJ0K4MtE9BmA\nxwGcAY6xlsbmb4COf++/jkWsPqNECLE33CEHxnYA24QQS2K/Pw0W/lw8L84C8JkQoj7m0J8BcAqA\nPjl4Xki8ngcZaWtQQv8hgKOJaAQRFYDjSgsDei+TuB/AaiHEbx3bFgK4NHb/UgDPOrZfDPyrynif\nvMqLHM8AAAEySURBVISLOkKInwghhgshRoP/968LIf4DwBsAvhp72iXoeCwuid3/KnhSKiuI/U+3\nEdHY2KYzAXyCHDwvwCGbk4moiIgI8WORS+dF4pWt1/PgZQCzY5lcfcFzHC+nfdcAJx3mgitn1wO4\nXvckSAiTLKcCOAJgOYBl4NjjXABlAF6NHYtXAPRxvOYeABsAfAzORND+dwRwXGYiPhk7CsD7AD4F\n8ASA/Nj2QgB/i50r7wEYqXvcio/BZLD5WQ5gAYDSXD0vANwCnlhcAeAhAPm5cl4AeAzsvg+Dv/Qu\nA09MezoPwF8I62PH62I3720LpiwWiyXLiVDDU4vFYrFkghV6i8ViyXKs0FssFkuWY4XeYrFYshwr\n9BaLxZLlWKG3WCyWLMcKvcVisWQ5VugtFosly/n/GSMjrjqswPUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f011345f450>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(dataframe)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dataset = dataframe.values\n",
"dataset = dataset.astype('float32')\n",
"# normalize the dataset\n",
"scaler = MinMaxScaler(feature_range=(0, 1))\n",
"dataset = scaler.fit_transform(dataset)\n",
"# split into train and test sets\n",
"train_size = int(len(dataset) * 0.67)\n",
"test_size = len(dataset) - train_size\n",
"train, test = dataset[0:train_size,:], dataset[train_size:len(dataset),:]\n",
"# reshape into X=t and Y=t+1\n",
"look_back = 36 # 6 hs previous\n",
"T = 36 # 6 hs later\n",
"trainX, trainY = create_dataset(train, look_back, T)\n",
"testX, testY = create_dataset(test, look_back, T)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[ 0.93898886 0.92029738 0.88227385 ..., 0.22540411 0.22260374\n",
" 0.20475528]]\n",
"\n",
" [[ 0.92029738 0.88227385 0.82600176 ..., 0.22260374 0.20475528\n",
" 0.19281851]]\n",
"\n",
" [[ 0.88227385 0.82600176 0.74550551 ..., 0.20475528 0.19281851\n",
" 0.19033802]]\n",
"\n",
" ..., \n",
" [[ 0.10831202 0.08765508 0.06596807 ..., 0.05377215 0.05384341\n",
" 0.05608824]]\n",
"\n",
" [[ 0.08765508 0.06596807 0.04261281 ..., 0.05384341 0.05608824\n",
" 0.06133588]]\n",
"\n",
" [[ 0.06596807 0.04261281 0.04884277 ..., 0.05608824 0.06133588\n",
" 0.06884536]]]\n"
]
}
],
"source": [
"print trainX"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.93898886 0.92029738 0.88227385 0.82600176 0.74550551 0.63245684\n",
" 0.56068808 0.51127267 0.46409252 0.42426068 0.41535747 0.37945485\n",
" 0.35972923 0.34478965 0.33215642 0.32039779 0.31716985 0.32535392\n",
" 0.32621717 0.32767001 0.32799393 0.30246025 0.27836484 0.27182552\n",
" 0.25168443 0.24194227 0.24650967 0.23731335 0.22624524 0.21758285\n",
" 0.21883403 0.2350264 0.22238149 0.22540411 0.22260374 0.20475528]\n"
]
}
],
"source": [
"print(trainX[0,])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.19281851 0.19033802 0.20130868 0.21721034 0.23948285 0.26042244\n",
" 0.25878659 0.24577598 0.23897834 0.24637605 0.2541382 0.25877041\n",
" 0.26274741 0.25946686 0.25481847 0.24823783 0.24422598 0.23511305\n",
" 0.22906612 0.22939004 0.22011112 0.21494284 0.21037139 0.21591461\n",
" 0.21290207 0.21064834 0.20814033 0.2038013 0.20504682 0.20901494\n",
" 0.20009312 0.20603479 0.19818519 0.18726312 0.1892391 0.19567718]\n"
]
}
],
"source": [
"print(trainY)[0,]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"616\n"
]
}
],
"source": [
"print trainX.shape[0]"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"36\n"
]
}
],
"source": [
"print trainX.shape[1]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# reshape input to be [samples, time steps, features]\n",
"# is it ok this? how should be trainX & testX reshape?\n",
"trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))\n",
"testX = numpy.reshape(testX, (testX.shape[0], 1, testX.shape[1]))\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# create and fit the LSTM network\n",
"model = Sequential()\n",
"#shape (batch_size, timesteps, input_dim), how?\n",
"model.add(LSTM(4,input_shape=(None,look_back))) \n",
"model.add(Dense(1))\n",
"model.compile(loss='mean_squared_error', optimizer='adam')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n"
]
},
{
"ename": "ValueError",
"evalue": "setting an array element with a sequence.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-15-2599dbc66097>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mhistory\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrainX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrainY\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#4) evaluar usar validation_split=0.33\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/keras/models.pyc\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)\u001b[0m\n\u001b[1;32m 851\u001b[0m \u001b[0mclass_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclass_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 852\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 853\u001b[0;31m initial_epoch=initial_epoch)\n\u001b[0m\u001b[1;32m 854\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 855\u001b[0m def evaluate(self, x, y, batch_size=32, verbose=1,\n",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/keras/engine/training.pyc\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)\u001b[0m\n\u001b[1;32m 1491\u001b[0m \u001b[0mval_f\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mval_f\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval_ins\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mval_ins\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshuffle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1492\u001b[0m \u001b[0mcallback_metrics\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcallback_metrics\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1493\u001b[0;31m initial_epoch=initial_epoch)\n\u001b[0m\u001b[1;32m 1494\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1495\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m32\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/keras/engine/training.pyc\u001b[0m in \u001b[0;36m_fit_loop\u001b[0;34m(self, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch)\u001b[0m\n\u001b[1;32m 1145\u001b[0m \u001b[0mbatch_logs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'size'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch_ids\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1146\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mon_batch_begin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch_index\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_logs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1147\u001b[0;31m \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1148\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mouts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1149\u001b[0m \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mouts\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.pyc\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 2129\u001b[0m \u001b[0msession\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2130\u001b[0m updated = session.run(self.outputs + [self.updates_op],\n\u001b[0;32m-> 2131\u001b[0;31m feed_dict=feed_dict)\n\u001b[0m\u001b[1;32m 2132\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mupdated\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2133\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 765\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 766\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[0;32m--> 767\u001b[0;31m run_metadata_ptr)\n\u001b[0m\u001b[1;32m 768\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 769\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc\u001b[0m in \u001b[0;36m_run\u001b[0;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 936\u001b[0m ' to a larger type (e.g. int64).')\n\u001b[1;32m 937\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 938\u001b[0;31m \u001b[0mnp_val\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msubfeed_val\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubfeed_dtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 939\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 940\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msubfeed_t\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_shape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_compatible_with\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp_val\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.pyc\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 529\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 530\u001b[0m \"\"\"\n\u001b[0;32m--> 531\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 532\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 533\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: setting an array element with a sequence."
]
}
],
"source": [
"\n",
"history = model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2) #thrown error for input dimensions\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment