{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
به نام خدا
\n", "\"class.vision\"\n", "

مقدمات شبکه‌های بازگشتی و SimpleRNN

" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "from keras.models import Sequential\n", "from keras.layers import Dense, SimpleRNN\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
ایجاد مجموعه داده
\n", "\n", "
\n", "ایجاد یک سری سینوسی برای 1500 گام زمانی با نویز تصادفی.
" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t = np.arange(0,1500)\n", "x = np.sin(0.02*t)+ np.random.rand(1500) * 2\n", "plt.plot(x)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
جدا کردن داده آموزشی و آزمون
\n", "\n", "
\n", "1000 مقدار اول برای آموزش و 500 تای آخر برای تست در نظر گرفته شده است.
" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "train,test = x[0:1000], x[1000:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
آماده سازی داده و ایجاد ورودی و label
\n", "\n", "
\n", "در شبکه های RNN برای ورودی Step در نظر میگیریم.\n", "برای شبکه های RNN مهمه که ورودی به شکل دنباله ای از داده باشد. در اینجا step طول دنباله ی ورودی را تعیین میکند. برای مثال اگر x را به عنوان داده خام داشته باشیم:\n", "
\n", "
\n", "\n", " x = [1,2,3,4,5,6,7,8,9,10]\n", " \n", " for step=1, x input and its y prediction becomes:\n", " \n", " x y\n", " 1 2\n", " 2 3\n", " 3 4\n", " 4 5\n", " ..\n", " 9 10\n", " \n", " for step=3, x and y contain:\n", " \n", " x y\n", " 1,2,3 4\n", " 2,3,4 5\n", " 3,4,5 6\n", " 4,5,6 7\n", " ...\n", " 7,8,9 10\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "step = 10\n", "\n", "# convert into dataset data and label\n", "def convertToDataset(data, step):\n", " #data = np.append(data,np.repeat(data[-1,],step))\n", " X, Y =[], []\n", " for i in range(len(data)-step):\n", " d=i+step \n", " X.append(data[i:d,])\n", " Y.append(data[d,])\n", " return np.array(X), np.array(Y)\n", "\n", "trainX,trainY =convertToDataset(train,step)\n", "testX,testY =convertToDataset(test,step)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(990, 10)\n", "(490, 10)\n" ] } ], "source": [ "print(trainX.shape)\n", "print(testX.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
تغییر ابعاد داده برای ورودی دادن به شبکه
\n", "\n", "
\n", "ورودی یک شبکه RNN در Keras به صورت زیر است:\n", "
\n", "\n", " (NumberOfSequences, TimeSteps, ElementsPerStep)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "trainX = np.reshape(trainX, (trainX.shape[0], trainX.shape[1], 1))\n", "testX = np.reshape(testX, (testX.shape[0],testX.shape[1], 1))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(990, 10, 1)\n", "(490, 10, 1)\n" ] } ], "source": [ "print(trainX.shape)\n", "print(testX.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
معماری شبکه و compile آن
\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "model = Sequential()\n", "model.add(SimpleRNN(units=64, activation=\"tanh\"))\n", "model.add(Dense(1))\n", "model.compile(loss='mean_squared_error', optimizer='rmsprop')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "به نظر شما model.summary() را می‌توانیم صدا بزنیم؟ چرا؟\n", "
\n", "model.input\n", "چه چیزی بر می‌گرداند!\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
آموزش مدل
\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/100\n", " - 7s - loss: 0.7639\n", "Epoch 2/100\n", " - 1s - loss: 0.4325\n", "Epoch 3/100\n", " - 1s - loss: 0.4140\n", "Epoch 4/100\n", " - 1s - loss: 0.4124\n", "Epoch 5/100\n", " - 1s - loss: 0.4048\n", "Epoch 6/100\n", " - 1s - loss: 0.4024\n", "Epoch 7/100\n", " - 1s - loss: 0.3989\n", "Epoch 8/100\n", " - 1s - loss: 0.3947\n", "Epoch 9/100\n", " - 1s - loss: 0.3917\n", "Epoch 10/100\n", " - 1s - loss: 0.3912\n", "Epoch 11/100\n", " - 1s - loss: 0.3889\n", "Epoch 12/100\n", " - 1s - loss: 0.3908\n", "Epoch 13/100\n", " - 1s - loss: 0.3847\n", "Epoch 14/100\n", " - 1s - loss: 0.3862\n", "Epoch 15/100\n", " - 1s - loss: 0.3829\n", "Epoch 16/100\n", " - 1s - loss: 0.3755\n", "Epoch 17/100\n", " - 1s - loss: 0.3829\n", "Epoch 18/100\n", " - 1s - loss: 0.3742\n", "Epoch 19/100\n", " - 1s - loss: 0.3674\n", "Epoch 20/100\n", " - 1s - loss: 0.3691\n", "Epoch 21/100\n", " - 1s - loss: 0.3724\n", "Epoch 22/100\n", " - 1s - loss: 0.3703\n", "Epoch 23/100\n", " - 1s - loss: 0.3643\n", "Epoch 24/100\n", " - 1s - loss: 0.3625\n", "Epoch 25/100\n", " - 1s - loss: 0.3631\n", "Epoch 26/100\n", " - 1s - loss: 0.3631\n", "Epoch 27/100\n", " - 1s - loss: 0.3628\n", "Epoch 28/100\n", " - 1s - loss: 0.3552\n", "Epoch 29/100\n", " - 1s - loss: 0.3560\n", "Epoch 30/100\n", " - 1s - loss: 0.3585\n", "Epoch 31/100\n", " - 1s - loss: 0.3478\n", "Epoch 32/100\n", " - 1s - loss: 0.3495\n", "Epoch 33/100\n", " - 1s - loss: 0.3499\n", "Epoch 34/100\n", " - 1s - loss: 0.3411\n", "Epoch 35/100\n", " - 1s - loss: 0.3415\n", "Epoch 36/100\n", " - 1s - loss: 0.3381\n", "Epoch 37/100\n", " - 1s - loss: 0.3396\n", "Epoch 38/100\n", " - 1s - loss: 0.3311\n", "Epoch 39/100\n", " - 1s - loss: 0.3328\n", "Epoch 40/100\n", " - 1s - loss: 0.3291\n", "Epoch 41/100\n", " - 1s - loss: 0.3262\n", "Epoch 42/100\n", " - 1s - loss: 0.3210\n", "Epoch 43/100\n", " - 1s - loss: 0.3249\n", "Epoch 44/100\n", " - 1s - loss: 0.3210\n", "Epoch 45/100\n", " - 1s - loss: 0.3164\n", "Epoch 46/100\n", " - 1s - loss: 0.3159\n", "Epoch 47/100\n", " - 1s - loss: 0.3071\n", "Epoch 48/100\n", " - 1s - loss: 0.3031\n", "Epoch 49/100\n", " - 1s - loss: 0.3018\n", "Epoch 50/100\n", " - 1s - loss: 0.2984\n", "Epoch 51/100\n", " - 1s - loss: 0.3010\n", "Epoch 52/100\n", " - 1s - loss: 0.2901\n", "Epoch 53/100\n", " - 1s - loss: 0.2881\n", "Epoch 54/100\n", " - 1s - loss: 0.2847\n", "Epoch 55/100\n", " - 1s - loss: 0.2789\n", "Epoch 56/100\n", " - 1s - loss: 0.2759\n", "Epoch 57/100\n", " - 1s - loss: 0.2741\n", "Epoch 58/100\n", " - 1s - loss: 0.2668\n", "Epoch 59/100\n", " - 1s - loss: 0.2603\n", "Epoch 60/100\n", " - 1s - loss: 0.2589\n", "Epoch 61/100\n", " - 1s - loss: 0.2579\n", "Epoch 62/100\n", " - 1s - loss: 0.2502\n", "Epoch 63/100\n", " - 1s - loss: 0.2473\n", "Epoch 64/100\n", " - 1s - loss: 0.2426\n", "Epoch 65/100\n", " - 1s - loss: 0.2319\n", "Epoch 66/100\n", " - 1s - loss: 0.2306\n", "Epoch 67/100\n", " - 1s - loss: 0.2281\n", "Epoch 68/100\n", " - 1s - loss: 0.2242\n", "Epoch 69/100\n", " - 1s - loss: 0.2205\n", "Epoch 70/100\n", " - 1s - loss: 0.2181\n", "Epoch 71/100\n", " - 1s - loss: 0.2095\n", "Epoch 72/100\n", " - 1s - loss: 0.2083\n", "Epoch 73/100\n", " - 1s - loss: 0.2023\n", "Epoch 74/100\n", " - 1s - loss: 0.1980\n", "Epoch 75/100\n", " - 1s - loss: 0.1979\n", "Epoch 76/100\n", " - 1s - loss: 0.1899\n", "Epoch 77/100\n", " - 1s - loss: 0.1857\n", "Epoch 78/100\n", " - 1s - loss: 0.1832\n", "Epoch 79/100\n", " - 1s - loss: 0.1764\n", "Epoch 80/100\n", " - 1s - loss: 0.1780\n", "Epoch 81/100\n", " - 1s - loss: 0.1701\n", "Epoch 82/100\n", " - 1s - loss: 0.1676\n", "Epoch 83/100\n", " - 1s - loss: 0.1635\n", "Epoch 84/100\n", " - 1s - loss: 0.1614\n", "Epoch 85/100\n", " - 1s - loss: 0.1601\n", "Epoch 86/100\n", " - 1s - loss: 0.1538\n", "Epoch 87/100\n", " - 1s - loss: 0.1492\n", "Epoch 88/100\n", " - 1s - loss: 0.1477\n", "Epoch 89/100\n", " - 1s - loss: 0.1400\n", "Epoch 90/100\n", " - 1s - loss: 0.1365\n", "Epoch 91/100\n", " - 1s - loss: 0.1354\n", "Epoch 92/100\n", " - 1s - loss: 0.1334\n", "Epoch 93/100\n", " - 1s - loss: 0.1303\n", "Epoch 94/100\n", " - 1s - loss: 0.1269\n", "Epoch 95/100\n", " - 1s - loss: 0.1231\n", "Epoch 96/100\n", " - 1s - loss: 0.1245\n", "Epoch 97/100\n", " - 1s - loss: 0.1151\n", "Epoch 98/100\n", " - 1s - loss: 0.1133\n", "Epoch 99/100\n", " - 1s - loss: 0.1130\n", "Epoch 100/100\n", " - 1s - loss: 0.1077\n" ] } ], "source": [ "history = model.fit(trainX,trainY, epochs=100, batch_size=16, verbose=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "حالا model.summary() را می‌توانیم صدا بزنیم؟ چرا؟\n", "
\n", " الان\n", "model.input\n", "چه چیزی بر می‌گرداند؟\n", "
" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl8VdW99/HPLycnCQkhgRAIJEACRCDMIaAoYsUJxaF1aNE6Xluut05tnw5469NanvZW7X1dq9ZbtVY7qdRqB6pY2op1qAqEQZAAEuZAICEMGSDDSdbzRw4xhEzCCSf75Pt+vfIi+5yVc37bjV9W1llrL3POISIikSUq3AWIiEjoKdxFRCKQwl1EJAIp3EVEIpDCXUQkAincRUQikMJdRCQCKdxFRCKQwl1EJAJFh+uN+/fv7zIzM8P19iIinrRy5cr9zrnUjtqFLdwzMzPJz88P19uLiHiSme3oTDsNy4iIRCCFu4hIBFK4i4hEoLCNuYtI91NXV0dRURHV1dXhLqXHi4uLIyMjA7/ff1I/r3AXkSZFRUUkJiaSmZmJmYW7nB7LOUdZWRlFRUVkZWWd1GtoWEZEmlRXV5OSkqJgDzMzIyUl5ZR+g1K4i8hxFOzdw6leB8+F+4rtB/jvJZsI1DeEuxQRkW7Lc+G+eudBfvpmIdUBhbtIpCkrK2PSpElMmjSJtLQ00tPTm45ra2s79Rq33XYbmzZtarfNE088wfPPPx+KkpkxYwZr1qwJyWuFkuc+UI2N9gFQU1dP71jPlS8i7UhJSWkKygceeIDevXvzjW9847g2zjmcc0RFtd43fe655zp8nzvvvPPUi+3mPNdzj41uLLlWwzIiPUZhYSHjxo3jjjvuIDc3l+LiYubNm0deXh5jx45lwYIFTW2P9aQDgQDJycnMnz+fiRMnMn36dEpKSgC4//77+clPftLUfv78+UybNo1Ro0bx3nvvAVBVVcU111zDxIkTuf7668nLy+uwh/7b3/6W8ePHM27cOP7zP/8TgEAgwE033dT0+GOPPQbAI488Qk5ODhMnTuTGG28M+X8zz3V9Y/2N4V5Tp3AX6Urf/8t6CvaUh/Q1cwb34XtXjD2pny0oKOC5557jySefBODBBx+kX79+BAIBzj//fK699lpycnKO+5nDhw9z3nnn8eCDD/L1r3+dZ599lvnz55/w2s45li9fzqJFi1iwYAF//etfefzxx0lLS+OVV17hww8/JDc3t936ioqKuP/++8nPzycpKYkLL7yQV199ldTUVPbv38+6desAOHToEAAPP/wwO3bsICYmpumxUPJgzz04LKMxd5EeZcSIEUydOrXp+MUXXyQ3N5fc3Fw2bNhAQUHBCT/Tq1cvLr30UgCmTJnC9u3bW33tq6+++oQ27777LnPnzgVg4sSJjB3b/j9Ky5YtY9asWfTv3x+/388NN9zA22+/zciRI9m0aRP33nsvS5YsISkpCYCxY8dy44038vzzz5/0QqX2eK/nHhyWqQnUh7kSkch2sj3srpKQkND0/ebNm3n00UdZvnw5ycnJ3Hjjja3OCY+JiWn63ufzEQgEWn3t2NjYE9o45z5VfW21T0lJYe3atbz++us89thjvPLKKzz99NMsWbKEt956iz//+c/84Ac/4KOPPsLn832q92yPeu4i4jnl5eUkJibSp08fiouLWbJkScjfY8aMGbz00ksArFu3rtXfDJo766yzePPNNykrKyMQCLBw4ULOO+88SktLcc5x3XXX8f3vf59Vq1ZRX19PUVERs2bN4sc//jGlpaUcOXIkpPV7ruceE60xd5GeLjc3l5ycHMaNG8fw4cM555xzQv4ed999NzfffDMTJkwgNzeXcePGNQ2ptCYjI4MFCxbwmc98BuccV1xxBXPmzGHVqlXcfvvtOOcwMx566CECgQA33HADFRUVNDQ08O1vf5vExMSQ1m+f9lePUMnLy3Mns1nHh7sOcdUT/+IXt+RxwZiBXVCZSM+1YcMGxowZE+4yuoVAIEAgECAuLo7Nmzdz8cUXs3nzZqKjT1+fuLXrYWYrnXN5Hf2s53ruTbNlNCwjIl2osrKSCy64gEAggHOOp5566rQG+6nyTqVBn4y56wNVEek6ycnJrFy5MtxlnDQPfqAaXMSknrtIlwjXUK0c71Svg2fDXcMyIqEXFxdHWVmZAj7Mjt3PPS4u7qRfw3vDMv5j95ZRuIuEWkZGBkVFRZSWloa7lB7v2E5MJ8t74a5FTCJdxu/3n/TOP9K9eG5YJjrKMNOwjIhIezoV7mY228w2mVmhmZ1w1x0ze8TM1gS/Pjaz0N8F55P3IjY6SuEuItKODodlzMwHPAFcBBQBK8xskXOuaS2uc+5rzdrfDUzuglqbxEb7qKnTsIyISFs603OfBhQ657Y652qBhcBV7bS/HngxFMW1RT13EZH2dSbc04FdzY6Lgo+dwMyGAVnA0jaen2dm+WaWfyqfxsf6Fe4iIu3pTLi3tgV3W5Ng5wIvO+daHTNxzj3tnMtzzuWlpqZ2tsYTxEb7tIhJRKQdnQn3ImBIs+MMYE8bbefSxUMycGxYRmPuIiJt6Uy4rwCyzSzLzGJoDPBFLRuZ2SigL/B+aEs8kcbcRUTa12G4O+cCwF3AEmAD8JJzbr2ZLTCzK5s1vR5Y6E7DuuXG2TIKdxGRtnRqhapzbjGwuMVj321x/EDoympfTHQUh47Unq63ExHxHM+tUAUNy4iIdMSb4e73KdxFRNrhzXCPjtIKVRGRdng33NVzFxFpk0fDXYuYRETa481w1+0HRETa5c1wj46itr6BhgZtBSYi0hqPhnvjVnu19eq9i4i0xpPhHnNsqz2tUhURaZUnw137qIqItM/j4a6eu4hIa7wZ7v7GMXf13EVEWufNcA/23Ks15i4i0ipPh7tmy4iItM6j4R4cllHPXUSkVd4Md79my4iItMeT4R7j02wZEZH2eDLc4/wKdxGR9ngy3D8Zc9ewjIhIazwa7uq5i4i0x6PhfmwRk8JdRKQ1nQp3M5ttZpvMrNDM5rfR5vNmVmBm683shdCWeTzNlhERaV90Rw3MzAc8AVwEFAErzGyRc66gWZts4D7gHOfcQTMb0FUFwyezZbQbk4hI6zrTc58GFDrntjrnaoGFwFUt2nwZeMI5dxDAOVcS2jKPFxVlxPi0G5OISFs6E+7pwK5mx0XBx5o7AzjDzP5lZh+Y2exQFdiW2OgorVAVEWlDh8MygLXyWMv97aKBbOAzQAbwjpmNc84dOu6FzOYB8wCGDh36qYttLiY6SmPuIiJt6EzPvQgY0uw4A9jTSps/O+fqnHPbgE00hv1xnHNPO+fynHN5qampJ1szEOy5a1hGRKRVnQn3FUC2mWWZWQwwF1jUos2fgPMBzKw/jcM0W0NZaEuxfp/CXUSkDR2Gu3MuANwFLAE2AC8559ab2QIzuzLYbAlQZmYFwJvAN51zZV1VNBwbc9ewjIhIazoz5o5zbjGwuMVj3232vQO+Hvw6LTQsIyLSNk+uUIXGVar6QFVEpHXeDXd/lBYxiYi0wbvhrmEZEZE2eTjcNVtGRKQtng13LWISEWmbZ8Ndtx8QEWmbt8NdwzIiIq3ybrj7NRVSRKQt3g33YM+9cf2UiIg05+lwdw7q6hXuIiIteTjcG/dRra3XuLuISEveDfdj+6jq5mEiIifwbLgf20dVM2ZERE7k2XBv6rkr3EVETuDdcA+OuWs6pIjIiTwc7sfG3NVzFxFpycPhfqznrnAXEWnJu+HeNOauYRkRkZa8G+4alhERaZOHw12LmERE2uLhcNewjIhIWzoV7mY228w2mVmhmc1v5flbzazUzNYEv74U+lKPF6NhGRGRNkV31MDMfMATwEVAEbDCzBY55wpaNP2dc+6uLqixVZ/03BXuIiItdabnPg0odM5tdc7VAguBq7q2rI7F+rWISUSkLZ0J93RgV7PjouBjLV1jZmvN7GUzGxKS6tqh2TIiIm3rTLhbK4+1vIn6X4BM59wE4B/Ar1p9IbN5ZpZvZvmlpaWfrtIWoqOMKNOwjIhIazoT7kVA8554BrCneQPnXJlzriZ4+HNgSmsv5Jx72jmX55zLS01NPZl6m5gZsdHaak9EpDWdCfcVQLaZZZlZDDAXWNS8gZkNanZ4JbAhdCW2LdavTbJFRFrT4WwZ51zAzO4ClgA+4Fnn3HozWwDkO+cWAfeY2ZVAADgA3NqFNTeJjY6iVuEuInKCDsMdwDm3GFjc4rHvNvv+PuC+0JbWscZhGYW7iEhLnl2hCo0LmTTmLiJyIk+He2x0lKZCioi0wvvhrmEZEZETeDzcNRVSRKQ13g53TYUUEWmVt8NdY+4iIq3yeLhrWEZEpDUeD3ctYhIRaY2nwz1Gs2VERFrl6XDXClURkdZ5O9z9WqEqItIab4d7dBR19Y76hpa3lxcR6dk8Hu6NW+3pQ1URkeN5PNyPbZKtoRkRkea8He7+xvKP1incRUSa83S4j05LBOBPq/d00FJEpGfxdLhPGdaPWaMH8L9vFnKgqjbc5YiIdBueDneA+y4dTVVtgMfe2BzuUkREug3Ph3v2wES+MHUIv/1gB9v3V4W7HBGRbsHz4Q7wtQvPICY6ioeXbMQ5zXkXEenUBtnd3YA+cXz53OE8+sZmxj/wN7L6J3DGwETuuWAkw1ISwl2eiMhp16meu5nNNrNNZlZoZvPbaXetmTkzywtdiZ1z16yRPHj1eK6dkkFyvJ8l6/dy+WPvsnhd8ekuRUQk7DrsuZuZD3gCuAgoAlaY2SLnXEGLdonAPcCyrii0I35fFHOnDW06Ljp4hLteWM1Xnl/FTWcNY97M4WT07YWZhaM8EZHTqjPDMtOAQufcVgAzWwhcBRS0aPf/gIeBb4S0wpOU0Teel/59Oj9espGfv7ON33ywg4F9Ypma2Y8LxgzgwjEDSYzzh7tMEZEu0ZlwTwd2NTsuAs5s3sDMJgNDnHOvmlm3CHdovN/7d+bk8IWpQ3h/Sxkrth9k2bYyXl1bTEx0FDOzU7l2SgYXjhlAtC8iPlsWEQE6F+6tjWM0TUkxsyjgEeDWDl/IbB4wD2Do0KEdtA6dkQMSGTkgkZumZ9LQ4Fi96xCL1xXz2tpi/rFhH4OT4vjiWcP43OR0Bif3Om11iYh0Feto6qCZTQcecM5dEjy+D8A596PgcRKwBagM/kgacAC40jmX39br5uXlufz8Np8+LQL1DbyxsYRfv7+dfxWWAY23NJg1egCj0hLp5feREBtNenIvhqXEHzdeXxOoxzBiotXjF5HTx8xWOuc6nLTSmXCPBj4GLgB2AyuAG5xz69to/0/gG+0FO3SPcG9ua2kl/9iwjzc2lJC/4+AJ94hPSYghd1hf4mN8bCguZ0tpFYlx0XzzklHMnToUX5Q+qBWRrtfZcO9wWMY5FzCzu4AlgA941jm33swWAPnOuUWnXm74DU/tzbzU3sybOYKK6jpKK2o4UltPVU2ALaVVrNxxkFU7D1JTV8+YQX24OCeN/B0H+M4fP+J3K3Zxy/RM9pZXs6W0kpq6Bs4fPYALxwwgOT4m3KcmIj1Qhz33rtLdeu4nwznHog/38MPXNlBSUQNAWp84APaWV+OLMs7N7s+CK8cxNCW+6efW7DrEr97bzp3nj2DkgMSw1C4i3hSyYZmuEgnhfkxVTYCdB44wtF88CbHROOdYt/swr3+0l+c/2EGDgx9+bhyXTxjMk29t4ZG/f0ygwZEYF83PvjiFGdn9w30KIuIRCvduoujgEb66cA35Ow4ypF8vdh04yuUTBnHn+SP56sI1FJZW8oPPjuP6aadv9pCIeJfCvRsJ1Dfw2BubeXHFLr51ySiunZKBmVFRXcddL6zmrY9L+dzkdL53Rc4JY/THfgtYurGE3rHRjE9PYlx6EgmxEXFbIBH5lBTuHhGob+DxpYU88WYhyfExLLhqLAMSY9lcUsmG4nLe2FDC7kNHMYNjl8oMLs4ZyHcuyzluLF9EIp/C3WPW7znMN3+/loLi8qbHevl9nD0ihdnj0rhwzEACDY51uw+xbNsBfvP+DgINjjtmDudLM4fTR7dSEOkRFO4eVFffwOsf7aV3rI/sAYmkJ/ciqo3583sPV/Oj1zfw5zWN+8cO7RfP6LREkuP9lB8NcPhoHTWBTzYO90UZfl8Ufl8Uw1Li+T8XjyKpl/5BEPEahXsPsWbXId7dXMqGvRVsKC6nqiZAUi8/feL8xPl9HFtUG6h3BBoaqA00sH5POWlJcfz0hlwmDUk+7vUaGhwb91awr6KamdmpWpwl0s2EbBGTdG+ThiSfENAdWbXzIHe/sJprf/Yet5+bRS+/j0NH6ig6eJT8HQc4dKQOgOumZPDQNRPa/O1BRLovhXsPlDu0L6/dM4NvvbyWp97aCkBiXDSpibFcnDOQM7NS2FxSyZNvbSEhNprvXZGj++CLeIzCvYdKjo/h6ZvzOHy0joQY3wm3PHbOEahv4Jl3txEdZUwcksymvRVsKa2ksiZATaAB5xy3z8hi9rhBYToLEWmLwr2Ha+tDVTPjO3PGUFVbzzPvbgMaP5Qd1i+ePr38xPmjKKms5Y7fruLbs0dzx3nD1bsX6UYU7tImM+MHnx3HlRMHk9TLz/DUBOL8vqbnq+vq+ebLa3norxvZvr+Km6YP42hdPdV19WQPSCQtKS6M1Yv0bAp3aZcvypg+IqXV5+L8Ph79wiSyUuJ5bGkhv8v/ZMMuM5g6rB9zJgyib0IM2/dXsX1/FRMykrjl7Ez18kW6mKZCSkis2nmQ/RU19Irx4fdFsXzbAV5bW8ymfRVNbVISYiirquWqSYN56JoJx/0WICKdo6mQclrlDu173PFZw1O454JstpZWUlvfQGZKArHRUfzvP7fw4yWb2F52hG9fMoqdB47w8b5K/D7j8gmDGZfeR716kRBQz11OuyXr9/K1363hSG3jCto4fxQNDVBb38CI1ASunJjOBWMGkDOoj+bYi7SgFarSre0sO8LmkgqyBySS0bcXFdUBXltXzB9XF7Fi+0EA+veO5aKcgfz7zOFk9k9o+tnqunq2llYxKi1RK2ilx1G4i2eVVtTw9selvLmphL8X7CPQ4LgmN53LJwzm7wX7WPThHg4frWNQUhxX56Zz7ZQhZDULf5FIpnCXiFBSXs3P3trC88t2UhtoIDY6itnj0jgzK4W/Fezl7Y9LaXBw/qhUvjxzONOHp2jMXiKawl0iyt7D1azeeZCzR/Y/buHV3sPV/G7FLn79/nbKqmoZnZbIiAG9SYjx0SfOz03ThzEsRb16iRwKd+lRquvq+dPq3by8sogDR2o5UlPPgapaEmJ9/PzmPPIy+4W7RJGQCGm4m9ls4FHABzzjnHuwxfN3AHcC9UAlMM85V9Deayrcpatt31/Fbb9cwe6DR/nxdRO4alJ6uEsSOWWdDfeojhqYmQ94ArgUyAGuN7OcFs1ecM6Nd85NAh4G/uckahYJqcz+CfzhP85m0tBk7l24hq88v5J3NpfS0BCe31ZFTqfOLGKaBhQ657YCmNlC4CqgqWfunCtv1j4B0P890i30TYjhN7dP45G/b2bhip0sXreXIf16MX14CkP6xjM0JZ7coX0Z0u/4vWgbGpzm2IundSbc04FdzY6LgDNbNjKzO4GvAzHArJBUJxICsdE+5l86mq9emM2S9Xt5eWUR/9xUSklFTVObsYP7cOm4NKJ9USzbWsaK7QcZlZbIs7dO1XaE4kkdjrmb2XXAJc65LwWPbwKmOefubqP9DcH2t7Ty3DxgHsDQoUOn7Nix4xTLFzl51XX17Cg7wtsfl/L6R8Ws2nkIgBGpCUwcksxfPtzDxIxkfn37NOJjdKcO6R5C9oGqmU0HHnDOXRI8vg/AOfejNtpHAQedc0ntva4+UJXupqS8GjMjNTEWgNfWFnP3i6s4Z2R/nrklj9ho3ehMwi+UNw5bAWSbWRawG5gL3NDizbKdc5uDh3OAzYh4zIA+x99/fs6EQVTVTOBbr6zlmp+9x7nZqUxITyJ3WF8G9tG96qV76zDcnXMBM7sLWELjVMhnnXPrzWwBkO+cWwTcZWYXAnXAQeCEIRkRL/r81CEA/Or97fz87a0EgjNtcocmc9n4QVw+YbA2JZFuSYuYRDqpuq6eTXsreLdwP6+tLaaguBy/z7hleiZ3z8omKV4fvErX0wpVkS62bX8VT/5zCy+t3EVyLz93nj9SPXnpcgp3kdOkYE85P3itgPe2lAGQM6gP541KZezgPoxOSyQzJYFoX4frBUU6ReEucho55/h4XyVLN5bw5sYSVu48SH1wfL53bDT/edkYrp82RHeslFOmcBcJo+q6egpLKtm0t4I/rC7iX4VlXDJ2IA9ePYG+CTHhLk88LGT3lhGRTy/O72NcehLXTMngN/92JvfPGcPSjSVc+ug7LN24L9zlSQ+gcBfpYlFRxpfOHc4fv3IOiXHR/Nsv87n7xdWUNrv9gUioaVhG5DSqDTTw5Ftb+OnSQuL8UUzL6sfQfgkMS4lnYJ84UhNjGdgnlvTkXhqfl1aFcoWqiIRITHQU91yQzWXjB/HoG5v5eG8F/yos42hd/XHtZp6RyiOfn0hK79gwVSpep567SJg55yitrKGkvIbSyhoK9pTz6Bub6Rcfw+M3TGaqdpGSZjRbRsTDPtp9mLteWMWug0f53OR0zh81gBnZ/XX7YVG4i3hdRXUd/7V4A6+tLaa8OoAvyjjvjFT+feZwpmX105h8D6VwF4kQgfoG1uw6xBsbS/jdil0cqKpl8tBkvj17NGcNTwl3eXKaKdxFItDR2npeXrmLJ9/aSmlFDc/eOpUZ2f3DXZacRlrEJBKBesX4uGl6Jq/dM4PhqQl8+df5rNh+INxlSTekcBfxoOT4GH5z+5kMSo7jtudWsHTjPg5U1RKu38Sl+9GwjIiHFR8+yuefep9dB44CjTcpGzGgN9My+zItK4Vpmf10n/kIozF3kR7i8JE6Vmw/wM4DR9h54AgFxeWs2XWI2kADfp9xUc5ArssbwszsVHxRmmHjdVqhKtJDJMX7uTBn4HGPVdfV8+GuQ/ytYB9/XL2bxev2MrBPLJ+dnM7VkzMYlZYYpmrldFHPXSTC1QYaWLpxH7/PL+KfH5dS3+AYnZbIWcNTyMvsy7TMfidsDi7dl4ZlROQE+ytr+MuHe1iyfi9rdh2iuq4BX5Txf+eM4dZzssJdnnSChmVE5AT9e8dy2zlZ3HZOFnX1DRTsKefxpYU88JcCtu6v4ruX52hLwAjRqatoZrPNbJOZFZrZ/Fae/7qZFZjZWjN7w8yGhb5UEQklvy+KiUOSeeqmKXz53Cx+/f4ObvvlChYu38k/N5VQWFKpqZUe1mHP3cx8wBPARUARsMLMFjnnCpo1Ww3kOeeOmNl/AA8DX+iKgkUktHxRxnfm5DA8tTcPLFrPO5v3Nz03Y2R/vndFDtkD9QGs13RmWGYaUOic2wpgZguBq4CmcHfOvdms/QfAjaEsUkS63vXThnLtlAz2lVez93A1q3ce4vGlm5n96DvcMj2Tr5w/gv66v7xndCbc04FdzY6LgDPbaX878PqpFCUi4eH3RZHRN56MvvHkZfbjmikZ/PffNvHce9v47Qc7mDNhEDdNH8botER8UYY/KooozZ3vljoT7q1duVYH4szsRiAPOK+N5+cB8wCGDh3ayRJFJFz6JcTwX58bz+0zsvjN+zt4eWURf1y9+7g2n500mB9+bjwJsZqf0Z10OBXSzKYDDzjnLgke3wfgnPtRi3YXAo8D5znnSjp6Y02FFPGeypoAr68rpqyqlvoGx97D1Ty/bAcjB/TmqZvyyOqfEO4SI17I5rmbWTTwMXABsBtYAdzgnFvfrM1k4GVgtnNuc2cKVLiLRIZ3Npdyz4urCdQ7vn3paK7OTSc+Rr34rhLSRUxmdhnwE8AHPOuc+6GZLQDynXOLzOwfwHigOPgjO51zV7b3mgp3kchRdPAI97y4mlU7D5EYG83VuelcNTmd8elJ+DVvPqS0QlVETivnHCt3HOS3H+xg8bq91NY3EB/jY8qwvlwxcTDXTcnQ1oAhoHAXkbA5WFXLe1vKWLatjH8V7mdLaRVnj0jhoWsmMKRfPEDTAikF/qejcBeRbsE5x4vLd/FfizfQ4BwX5wxk54EjFJZUkhTv5ydfmMyUYX3DXaZnaJs9EekWzIwbzhzKkq/NZPrwFP61pQy/L4orJg4GYO7T7/Or97brVgchpo+0ReS0SE/uxS9unXrcY4eP1PG1l9bwveBtD+ZMSGNaVgrpyb3CVGXkULiLSNgkxft55uY8fvbWFp56awv/2LAPgGEp8Vw3JYPP5w3RveZPksbcRaRbqG9wbNpbwfJtZfytYB/vbSkjOso4f/QAzszqx/j0JMamJ9G7h6+E1QeqIuJpW0sreXH5Tl5bW8yew9VNj/fvHUtG315k9U/gS+dmMXZwUhirPP0U7iISMUorali3+xAFe8rZdeAoRYeO8NHuciprAtx2diZfu+iMHnNvG+3EJCIRIzUxllmjBzJr9CcbgR8+UsdDSzbyzLvbWLyumLtmZXN1bjpxfl8YK+0+1HMXEU9bueMA3/9LAWuLDtM33s8XzxzGudn9GTGgNykJMRG3SErDMiLSYzjnWL7tAM+8u41/bNjHsVhL6uXnlunDuOeC7IjZG1bDMiLSY5gZZw5P4czhKewrr2bj3gq2lFSyfNsBHltayPLtB3hs7uQeNa1SPXcRiWivrCzi/j99REJsNN+6ZBSXjEsjqZc/3GWdNA3LiIgEfbyvgnteXM3GvRXE+KKYeUZ/pmb2Y2CfOAb0iSUzJYFBSXGeGJ/XsIyISNAZAxN5/d5z+bDoMK9+uIfX1hXzjw3HbxjXv3cM49OTmDKsLxeMGcjotERPhH1b1HMXkR7HOUdlTYB95TXsK6+msKSSdbsPs67oMJv2VQCN98K5KGcgl08YRO7Qvt1mI3ANy4iInISS8mqWbizh7wX7eKdwP7WBBtL6xHHZ+EFcMyU97CtiFe4iIqeoorqOpRtLeHVtMW9tKqW2voHRaYmcm92fveU17Ciror7B8fC1E05b6CvcRURC6NCRWv7y4R5eXrWbj3bilw4XAAAF1klEQVQfJj25F8NS4tm8r5KqmgDP3JLHmcNTurwOhbuISBdxzjV92Lrn0FFu+sUyig4e5ac35HJRzsAOfvrUaLaMiEgXaT6LZnByL35/x9nc9ssVfPnX+fTvHcvotERGDuhNYlw0sdFRxMdEM2fCIAaexkVU6rmLiIRAVU2Al/J3sX5POZv2VrCltJKjdfVNt0KIjY7i1rMzueO8EfRNiDnp9wlpz93MZgOPAj7gGefcgy2enwn8BJgAzHXOvfzpSxYR8a6E2GhuOyfruMecc9TVO4oOHuGnSwt5+p2tvLBsJz+8ejxXBveQ7Sod3knHzHzAE8ClQA5wvZnltGi2E7gVeCHUBYqIeJWZERMdxfDU3vzPFybx13tnMn1ECpkp8V3+3p3puU8DCp1zWwHMbCFwFVBwrIFzbnvwuYYuqFFEJCKMSkvk6Zs7HFEJic7cAzMd2NXsuCj42KdmZvPMLN/M8ktLS0/mJUREpBM6E+6trbk9qU9hnXNPO+fynHN5qampJ/MSIiLSCZ0J9yJgSLPjDGBP15QjIiKh0JlwXwFkm1mWmcUAc4FFXVuWiIicig7D3TkXAO4ClgAbgJecc+vNbIGZXQlgZlPNrAi4DnjKzNZ3ZdEiItK+Ts1zd84tBha3eOy7zb5fQeNwjYiIdAORsWOsiIgcR+EuIhKBwnZvGTMrBXac5I/3B/aHsByv6Inn3RPPGXrmeffEc4ZPf97DnHMdziUPW7ifCjPL78yNcyJNTzzvnnjO0DPPuyeeM3TdeWtYRkQkAincRUQikFfD/elwFxAmPfG8e+I5Q8887554ztBF5+3JMXcREWmfV3vuIiLSDs+Fu5nNNrNNZlZoZvPDXU9XMLMhZvammW0ws/Vmdm/w8X5m9ncz2xz8s2+4aw01M/OZ2WozezV4nGVmy4Ln/Lvg/Y0iipklm9nLZrYxeM2n95Br/bXg3++PzOxFM4uLtOttZs+aWYmZfdTssVavrTV6LJhta80s91Te21Ph3sldoSJBAPg/zrkxwFnAncHznA+84ZzLBt4IHkeae2m8h9ExDwGPBM/5IHB7WKrqWo8Cf3XOjQYm0nj+EX2tzSwduAfIc86No3ELz7lE3vX+JTC7xWNtXdtLgezg1zzgZ6fyxp4Kd5rtCuWcqwWO7QoVUZxzxc65VcHvK2j8nz2dxnP9VbDZr4DPhqfCrmFmGcAc4JngsQGzgGN78kbiOfcBZgK/AHDO1TrnDhHh1zooGuhlZtFAPFBMhF1v59zbwIEWD7d1ba8Cfu0afQAkm9mgk31vr4V7yHaF8gozywQmA8uAgc65Ymj8BwAYEL7KusRPgG8Bx7ZrTAEOBe9MCpF5vYcDpcBzweGoZ8wsgQi/1s653cB/07j/cjFwGFhJ5F9vaPvahjTfvBbuIdsVygvMrDfwCvBV51x5uOvpSmZ2OVDinFvZ/OFWmkba9Y4GcoGfOecmA1VE2BBMa4LjzFcBWcBgIIHGYYmWIu16tyekf9+9Fu49ZlcoM/PTGOzPO+f+EHx437Ff04J/loSrvi5wDnClmW2ncbhtFo09+eTgr+0Qmde7CChyzi0LHr9MY9hH8rUGuBDY5pwrdc7VAX8Azibyrze0fW1Dmm9eC/cesStUcKz5F8AG59z/NHtqEXBL8PtbgD+f7tq6inPuPudchnMuk8brutQ590XgTeDaYLOIOmcA59xeYJeZjQo+dAFQQARf66CdwFlmFh/8+37svCP6ege1dW0XATcHZ82cBRw+NnxzUpxznvoCLgM+BrYA3wl3PV10jjNo/HVsLbAm+HUZjWPQbwCbg3/2C3etXXT+nwFeDX4/HFgOFAK/B2LDXV8XnO8kID94vf8E9O0J1xr4PrAR+Aj4DRAbadcbeJHGzxTqaOyZ397WtaVxWOaJYLato3Em0Um/t1aoiohEIK8Ny4iISCco3EVEIpDCXUQkAincRUQikMJdRCQCKdxFRCKQwl1EJAIp3EVEItD/B4i6kUYC80VaAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "loss = history.history['loss']\n", "plt.plot(loss, label='Training loss')\n", "plt.legend()\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
ارزیابی مدل
" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.08597392486502425\n" ] } ], "source": [ "trainScore = model.evaluate(trainX, trainY, verbose=0)\n", "print(trainScore)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
رسم سری اصلی و پیش بینی برای داده های آموزشی و تست
\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "trainPredict = model.predict(trainX)\n", "testPredict= model.predict(testX)\n", "predicted=np.concatenate((trainPredict,testPredict),axis=0)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(x)\n", "plt.plot(predicted)\n", "plt.axvline(len(trainX), c=\"r\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#
ورودی مدل با طول متفاوت
\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "testX,testY =convertToDataset(test,50)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(450, 50, 1)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "testX = np.reshape(testX, (testX.shape[0],testX.shape[1], 1))\n", "testX.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "همان طور که مشخص است کد با خطا مواجه می‌شود! چرا؟!
\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "Error when checking input: expected sequential_1_input to have shape (10, 1) but got array with shape (50, 1)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m#trainPredict = model.predict(trainX)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mtestPredict\u001b[0m\u001b[1;33m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtestX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;31m#predicted=np.concatenate((trainPredict,testPredict),axis=0)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Miniconda3\\envs\\tensorflow\\lib\\site-packages\\keras\\engine\\training.py\u001b[0m in \u001b[0;36mpredict\u001b[1;34m(self, x, batch_size, verbose, steps)\u001b[0m\n\u001b[0;32m 1147\u001b[0m 'argument.')\n\u001b[0;32m 1148\u001b[0m \u001b[1;31m# Validate user data.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1149\u001b[1;33m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_standardize_user_data\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1150\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstateful\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1151\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m>\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Miniconda3\\envs\\tensorflow\\lib\\site-packages\\keras\\engine\\training.py\u001b[0m in \u001b[0;36m_standardize_user_data\u001b[1;34m(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size)\u001b[0m\n\u001b[0;32m 749\u001b[0m \u001b[0mfeed_input_shapes\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 750\u001b[0m \u001b[0mcheck_batch_axis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;31m# Don't enforce the batch size.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 751\u001b[1;33m exception_prefix='input')\n\u001b[0m\u001b[0;32m 752\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 753\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0my\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Miniconda3\\envs\\tensorflow\\lib\\site-packages\\keras\\engine\\training_utils.py\u001b[0m in \u001b[0;36mstandardize_input_data\u001b[1;34m(data, names, shapes, check_batch_axis, exception_prefix)\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[1;34m': expected '\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mnames\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m' to have shape '\u001b[0m \u001b[1;33m+\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 137\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m' but got array with shape '\u001b[0m \u001b[1;33m+\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 138\u001b[1;33m str(data_shape))\n\u001b[0m\u001b[0;32m 139\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 140\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: Error when checking input: expected sequential_1_input to have shape (10, 1) but got array with shape (50, 1)" ] } ], "source": [ "testPredict= model.predict(testX)\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.input" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
دوره پیشرفته یادگیری عمیق
علیرضا اخوان پور
آبان و آذر 1399
\n", "
\n", "Class.Vision - AkhavanPour.ir - GitHub\n", "\n", "
" ] } ], "metadata": { "kernelspec": { "display_name": "tensorflow", "language": "python", "name": "tensorflow" }, "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }