\n",
"در اولین جلسه کارگاه طبقه بندی با شبکه های تمام متصل را دیدیم.\n",
" \n",
"توصیه میشود حتما نوت بوکهای زیر را قبل از این تمرین مرور کنید:\n",
"
\n",
"\n",
"[04_a Gentle Introduction to Keras - Simple neural network(mlp).ipynb](https://nbviewer.jupyter.org/github/alireza-akhavan/SRU-deeplearning-workshop/blob/master/04_a%20Gentle%20Introduction%20to%20Keras%20-%20Simple%20neural%20network%28mlp%29.ipynb)\n",
"\n",
"[05_Dropout.ipynb](https://nbviewer.jupyter.org/github/alireza-akhavan/SRU-deeplearning-workshop/blob/master/05_Dropout.ipynb)\n",
"\n",
"
\n",
"در این جلسه با داده های تصویری آشنا شدیم. اما در این تمرین برای اینکه بدانیم کاربرد این مباحث در مسائل غیر تصویری نیز هست از مجموعه داده ی ساختار یافتهiris شامل 4 ویژگی برای طول و عرض کاسبرگ و گلبرگ استفاده خواهیم کرد که بتوانیم بر اساس این ویژگی ها نوع گل را از 3 کلاس متفاوت تشخیص دهیم.\n",
"
\n",
"ویژگی ها و کلاس های این مجموعه داده به شرح زیر است:\n",
"
\n",
"\n",
"Attribute Information:\n",
"\n",
"1. sepal length in cm\n",
"2. sepal width in cm\n",
"3. petal length in cm\n",
"4. petal width in cm\n",
"\n",
"class:\n",
"\n",
" Iris Setosa\n",
" Iris Versicolour\n",
" Iris Virginica\n",
"\n",
"
\n",
"این دیتاست در کتابخانه sklearn موجود است\n",
" \n",
"در قطعه کد زیر ویژگی ها را در x و برچسب یا labelهای متناظر را در y لود شده است.\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"iris_data = load_iris() # load the iris dataset\n",
"x = iris_data.data\n",
"y = iris_data.target.reshape(-1, 1) # Convert data to a single column"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#
سوال 1:
\n",
"
\n",
"برچسب یا label های ما در حال حاضر عددی است.\n",
" \n",
"این اعداد 0 تا 2 هستند و به عبارتی 3 حالت مختلف دارند.\n",
" \n",
"این برچسب ها را به فرمت one-hot تبدیل کنید و خروجی را مجدد در y بریزید.\n",
"\n",
" \n",
"راهنمایی: \n",
"از تابع keras.utils.to_categorical استفاده کنید.\n",
"
\n",
"در زیر داده ها به داده های test و train تقسیم شده است:\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Split the data for training and testing\n",
"train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.20)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#
سوال 2:
\n",
"
\n",
"یک شبکه با دو hidden-layer در هر لایه 10 نوران و تابع فعالیت relu بسازید. یک لایه Dropout با نرخ 0.5 در لایه آخر ماقبل softmax نیز اضافه کنید.\n",
"