{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import tensorflow as tf\nimport pandas as pd\nimport numpy as np\nfrom sklearn.model_selection import train_test_split\nimport glob\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nglob.glob('../input/*')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"inputSize = 1\ntimeStep = 2","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"data = pd.read_csv('../input/airline-passengers.csv')['Passengers']/100\nx = np.array([data[itr : itr+timeStep] for itr in range(len(data) - timeStep)]).reshape((-1, timeStep, inputSize))\ny = np.array([data[itr+timeStep] for itr in range(len(data) - timeStep)]).reshape((-1, 1))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def model(x):\n    \n    cell = tf.nn.rnn_cell.BasicRNNCell(32)\n    o, s = tf.nn.dynamic_rnn(cell, x, dtype = tf.float32)\n    ls = tf.transpose(o, [1, 0, 2])[-1]\n    dense = tf.layers.dense(ls, 1 )\n    \n    return dense","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tf.reset_default_graph()\ninRnn = tf.placeholder(tf.float32, [None ,timeStep, inputSize])\noutRnn = tf.placeholder(tf.float32, [None, 1])\n\npredModel = model(inRnn)\ncost = tf.losses.mean_squared_error(predModel, outRnn)\nopt = tf.train.RMSPropOptimizer(0.0001).minimize(cost)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"init = tf.global_variables_initializer()\nsess = tf.Session()\nsess.run(init)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for e in range(100):\n    for i in range(len(x)):\n        sess.run( opt, feed_dict={ inRnn : [x[i]],\n                                   outRnn : [y[i]] } )\n        \n    _cost = sess.run(cost, feed_dict = { inRnn : [x[i]],\n                                         outRnn : [y[i]] } )\n    if(e%10==0):\n        print(_cost)\n        pred = sess.run(predModel, feed_dict = { inRnn : x })\n        sns.lineplot(range(len(pred)), list(np.ravel(pred)))\n        sns.lineplot(range(len(y)), list(np.ravel(y)), color='r')\n        plt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}