Skip to content

Instantly share code, notes, and snippets.

@czynot
Created November 19, 2020 05:07
Show Gist options
  • Save czynot/4ff537bfff300fb007ba5107b39315a2 to your computer and use it in GitHub Desktop.
Save czynot/4ff537bfff300fb007ba5107b39315a2 to your computer and use it in GitHub Desktop.
UTKFace.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "UTKFace.ipynb",
"provenance": [],
"authorship_tag": "ABX9TyMVsZwbQzq+HGXbjvgrekw5",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/czynot/4ff537bfff300fb007ba5107b39315a2/utkface.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "M7dLgxBhonD7"
},
"source": [
"! pip install -q kaggle"
],
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"resources": {
"http://localhost:8080/nbextensions/google.colab/files.js": {
"data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCkgewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwogICAgICBwZXJjZW50LnRleHRDb250ZW50ID0KICAgICAgICAgIGAke01hdGgucm91bmQoKHBvc2l0aW9uIC8gZmlsZURhdGEuYnl0ZUxlbmd0aCkgKiAxMDApfSUgZG9uZWA7CiAgICB9CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK",
"ok": true,
"headers": [
[
"content-type",
"application/javascript"
]
],
"status": 200,
"status_text": ""
}
},
"base_uri": "https://localhost:8080/",
"height": 89
},
"id": "iGCgiqxOo6XH",
"outputId": "88482c4c-6be6-4e3e-a01b-261fd94b4fb1"
},
"source": [
"from google.colab import files\n",
"files.upload()"
],
"execution_count": 3,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" <input type=\"file\" id=\"files-f9b98f88-8971-4da6-865c-87ea25a2227d\" name=\"files[]\" multiple disabled\n",
" style=\"border:none\" />\n",
" <output id=\"result-f9b98f88-8971-4da6-865c-87ea25a2227d\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script src=\"/nbextensions/google.colab/files.js\"></script> "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Saving kaggle.json to kaggle.json\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'kaggle.json': b'{\"username\":\"parthpurvesh\",\"key\":\"7ca0ed010ac6f002e47f8c455cfdfa0d\"}'}"
]
},
"metadata": {
"tags": []
},
"execution_count": 3
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "LDt6psgtpPpb"
},
"source": [
"! mkdir ~/.kaggle\n",
"! cp kaggle.json ~/.kaggle/"
],
"execution_count": 4,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "8gy6hoIDpZi5"
},
"source": [
"! chmod 600 ~/.kaggle/kaggle.json"
],
"execution_count": 5,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "GgC-JvNBpdmY",
"outputId": "c28b6c63-8b4f-484b-ea2f-9b249aaf064b"
},
"source": [
"! kaggle datasets list"
],
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": [
"Warning: Looks like you're using an outdated API Version, please consider updating (server 1.5.9 / client 1.5.4)\n",
"ref title size lastUpdated downloadCount \n",
"------------------------------------------------------ ----------------------------------------------- ------ ------------------- ------------- \n",
"unanimad/us-election-2020 US Election 2020 428KB 2020-11-18 10:16:32 6040 \n",
"antgoldbloom/covid19-data-from-john-hopkins-university COVID-19 data from John Hopkins University 2MB 2020-11-18 06:04:19 2483 \n",
"manchunhui/us-election-2020-tweets US Election 2020 Tweets 353MB 2020-11-09 18:51:59 2797 \n",
"headsortails/us-election-2020-presidential-debates US Election 2020 - Presidential Debates 199MB 2020-10-23 16:56:10 503 \n",
"etsc9287/2020-general-election-polls Election, COVID, and Demographic Data by County 1020KB 2020-11-14 19:52:25 997 \n",
"radustoicescu/2020-united-states-presidential-election 2020 United States presidential election 11MB 2019-07-04 15:00:45 813 \n",
"shivamb/netflix-shows Netflix Movies and TV Shows 971KB 2020-01-20 07:33:56 60834 \n",
"terenceshin/covid19s-impact-on-airport-traffic COVID-19's Impact on Airport Traffic 106KB 2020-10-19 12:40:17 4522 \n",
"sootersaalu/amazon-top-50-bestselling-books-2009-2019 Amazon Top 50 Bestselling Books 2009 - 2019 15KB 2020-10-13 09:39:21 4776 \n",
"nehaprabhavalkar/indian-food-101 Indian Food 101 7KB 2020-09-30 06:23:43 7623 \n",
"karangadiya/fifa19 FIFA 19 complete player dataset 2MB 2018-12-21 03:52:59 104643 \n",
"omarhanyy/500-greatest-songs-of-all-time 500 Greatest Songs of All Time 33KB 2020-10-26 13:36:09 1593 \n",
"heeraldedhia/groceries-dataset Groceries dataset 257KB 2020-09-17 04:36:08 8069 \n",
"andrewmvd/trip-advisor-hotel-reviews Trip Advisor Hotel Reviews 5MB 2020-09-30 08:31:20 5340 \n",
"docstein/brics-world-bank-indicators BRICS World Bank Indicators 4MB 2020-10-22 12:18:40 1200 \n",
"google/tinyquickdraw QuickDraw Sketches 11GB 2018-04-18 19:38:04 2484 \n",
"datasnaek/youtube-new Trending YouTube Video Statistics 201MB 2019-06-03 00:56:47 116030 \n",
"uciml/mushroom-classification Mushroom Classification 34KB 2016-12-01 23:08:00 54967 \n",
"anikannal/solar-power-generation-data Solar Power Generation Data 2MB 2020-08-18 15:52:03 10216 \n",
"zynicide/wine-reviews Wine Reviews 51MB 2017-11-27 17:08:04 119521 \n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "w8segXiPphl4",
"outputId": "26b483c8-af24-44aa-bfc5-ae961713c581"
},
"source": [
"! kaggle datasets download -d jangedoo/utkface-new"
],
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": [
"Downloading utkface-new.zip to /content\n",
" 92% 304M/331M [00:01<00:00, 174MB/s]\n",
"100% 331M/331M [00:01<00:00, 185MB/s]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "9AIZBbjKp91R"
},
"source": [
"! mkdir utkface"
],
"execution_count": 8,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "DPWY_mAMqG7x"
},
"source": [
"! unzip utkface-new.zip -d utkface"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "fGFeewbTqPny"
},
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"import os"
],
"execution_count": 10,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "FwUMdsparOfW",
"outputId": "43f67a58-02ae-4b13-d20a-92d91a856a40"
},
"source": [
"! ls"
],
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": [
"kaggle.json sample_data utkface utkface-new.zip\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "eZqqEggZri6r",
"outputId": "24bbc783-4422-414f-a007-c012c42a3673"
},
"source": [
"! ls utkface/"
],
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"text": [
"crop_part1 UTKFace utkface_aligned_cropped\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TNaKQcazrTF_",
"outputId": "7ddf26fc-6473-4b26-ed9e-6cf989765fb0"
},
"source": [
"path = \"utkface/UTKFace/\"\n",
"files = os.listdir(path)\n",
"size = len(files)\n",
"print(\"Total number of samples = \",size)\n",
"print(files[69])"
],
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": [
"Total number of samples = 23708\n",
"34_0_1_20170116200653236.jpg.chip.jpg\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "895e34mzrf__"
},
"source": [
"import cv2\n",
"\n",
"images = []\n",
"ages = []\n",
"genders = []"
],
"execution_count": 14,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "nLh-7RlKuiOf"
},
"source": [
"for file in files:\n",
"\n",
" image = cv2.imread(path+file,0)\n",
" # print(image)\n",
" image = cv2.resize(image,dsize=(64,64))\n",
" image = image.reshape((image.shape[0],image.shape[1],1))\n",
" images.append(image)\n",
"\n",
" split_var = file.split('_')\n",
" ages.append(split_var[0])\n",
"\n",
" genders.append(int(split_var[1]) )"
],
"execution_count": 15,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "jvBKsYATvAJW"
},
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"def display(img):\n",
" plt.imshow(img[:,:,0])\n",
" plt.set_cmap('gray')\n",
" plt.show()"
],
"execution_count": 16,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 285
},
"id": "YDJT93cKvc4Q",
"outputId": "580498a4-78e4-4994-aa8c-838de3c4a9b8"
},
"source": [
"idx = 420\n",
"sample = images[idx]\n",
"print(\"Gender = \",genders[idx],\"Age = \",ages[idx])\n",
"display(sample)"
],
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": [
"Gender = 0 Age = 15\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "JATn8XRvvxve"
},
"source": [
"def age_group(age):\n",
" if age >=0 and age < 16:\n",
" return 1\n",
" elif age < 32:\n",
" return 2\n",
" elif age < 64:\n",
" return 3\n",
" elif age < 80:\n",
" return 4\n",
" else:\n",
" return 5"
],
"execution_count": 18,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "Ho9vpMCkwmBH"
},
"source": [
"target = np.zeros((size,2),dtype='float32')\n",
"features = np.zeros((size,sample.shape[0],sample.shape[1],1),dtype = 'float32')\n",
"\n",
"for i in range(size):\n",
"\n",
" target[i,0] = age_group(int(ages[i])) / 5\n",
" target[i,1] = int(genders[i])\n",
" features[i] = images[i]\n",
"\n",
"features = features / 255"
],
"execution_count": 32,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "l1nYdYwkxeGQ",
"outputId": "75b1d17e-2a15-4358-b480-51da5b7b4b8e"
},
"source": [
"from sklearn.model_selection import train_test_split\n",
"x_train, x_test, y_train, y_test = train_test_split(features, target, test_size=0.3,shuffle = True)\n",
"\n",
"print(\"Samples in Training = \",x_train.shape[0])\n",
"print(\"Samples in Testing = \",x_test.shape[0])"
],
"execution_count": 20,
"outputs": [
{
"output_type": "stream",
"text": [
"Samples in Training = 16595\n",
"Samples in Testing = 7113\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "IVny562Wx3d7",
"outputId": "3dc782d3-3f48-4c20-a819-e78b9f987166"
},
"source": [
"print(\"Shape of image = \",sample.shape)"
],
"execution_count": 21,
"outputs": [
{
"output_type": "stream",
"text": [
"Shape of image = (64, 64, 1)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Rz_-dR2UyAfp"
},
"source": [
"import keras \n",
"from keras.layers import *\n",
"from keras.models import *\n",
"from keras import backend as K"
],
"execution_count": 22,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "4GzJ7kHqyMWZ"
},
"source": [
"inputs = Input(shape=(64,64,1))\n",
"conv1 = Conv2D(32, kernel_size=(3, 3),activation='relu')(inputs)\n",
"conv2 = Conv2D(64, kernel_size=(3, 3),activation='relu')(conv1)\n",
"pool1 = MaxPooling2D(pool_size=(2, 2))(conv2)\n",
"conv3 = Conv2D(128, kernel_size=(3, 3),activation='relu')(pool1)\n",
"pool2 = MaxPooling2D(pool_size=(2, 2))(conv3)\n",
"x = Dropout(0.25)(pool2)\n",
"flat = Flatten()(x)\n",
"\n",
"dropout = Dropout(0.5)\n",
"age_model = Dense(64, activation='relu')(flat)\n",
"age_model = dropout(age_model)\n",
"age_model = Dense(32, activation='relu')(age_model)\n",
"age_model = dropout(age_model)\n",
"age_model = Dense(1, activation='relu')(age_model)\n",
"\n",
"dropout = Dropout(0.5)\n",
"gender_model = Dense(64, activation='relu')(flat)\n",
"gender_model = dropout(gender_model)\n",
"gender_model = Dense(32, activation='relu')(gender_model)\n",
"gender_model = dropout(gender_model)\n",
"gender_model = Dense(16, activation='relu')(gender_model)\n",
"gender_model = dropout(gender_model)\n",
"gender_model = Dense(8, activation='relu')(gender_model)\n",
"gender_model = dropout(gender_model)\n",
"gender_model = Dense(1, activation='sigmoid')(gender_model)"
],
"execution_count": 24,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "-BDKsxd3zIO1"
},
"source": [
"model = Model(inputs=inputs, outputs=[age_model,gender_model])\n",
"model.compile(optimizer = 'adam', loss =['mse','binary_crossentropy'],metrics=['accuracy'])"
],
"execution_count": 25,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kCJyksWK0Jzp",
"outputId": "8389e3b3-ccfa-46e3-e88a-bbf4bba03da1"
},
"source": [
"model.summary()"
],
"execution_count": 26,
"outputs": [
{
"output_type": "stream",
"text": [
"Model: \"functional_1\"\n",
"__________________________________________________________________________________________________\n",
"Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
"input_2 (InputLayer) [(None, 64, 64, 1)] 0 \n",
"__________________________________________________________________________________________________\n",
"conv2d_3 (Conv2D) (None, 62, 62, 32) 320 input_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_4 (Conv2D) (None, 60, 60, 64) 18496 conv2d_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"max_pooling2d_2 (MaxPooling2D) (None, 30, 30, 64) 0 conv2d_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"conv2d_5 (Conv2D) (None, 28, 28, 128) 73856 max_pooling2d_2[0][0] \n",
"__________________________________________________________________________________________________\n",
"max_pooling2d_3 (MaxPooling2D) (None, 14, 14, 128) 0 conv2d_5[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_3 (Dropout) (None, 14, 14, 128) 0 max_pooling2d_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"flatten_1 (Flatten) (None, 25088) 0 dropout_3[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_11 (Dense) (None, 64) 1605696 flatten_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_5 (Dropout) multiple 0 dense_11[0][0] \n",
" dense_12[0][0] \n",
" dense_13[0][0] \n",
" dense_14[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_12 (Dense) (None, 32) 2080 dropout_5[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_8 (Dense) (None, 64) 1605696 flatten_1[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_13 (Dense) (None, 16) 528 dropout_5[1][0] \n",
"__________________________________________________________________________________________________\n",
"dropout_4 (Dropout) multiple 0 dense_8[0][0] \n",
" dense_9[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_9 (Dense) (None, 32) 2080 dropout_4[0][0] \n",
"__________________________________________________________________________________________________\n",
"dense_14 (Dense) (None, 8) 136 dropout_5[2][0] \n",
"__________________________________________________________________________________________________\n",
"dense_10 (Dense) (None, 1) 33 dropout_4[1][0] \n",
"__________________________________________________________________________________________________\n",
"dense_15 (Dense) (None, 1) 9 dropout_5[3][0] \n",
"==================================================================================================\n",
"Total params: 3,308,930\n",
"Trainable params: 3,308,930\n",
"Non-trainable params: 0\n",
"__________________________________________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zqU4u3120Mq-",
"outputId": "6f29d27e-2511-43c8-a98b-b629547ae236"
},
"source": [
"h = model.fit(x_train,[y_train[:,0],y_train[:,1]],validation_data=(x_test,[y_test[:,0],y_test[:,1]]),epochs = 30, batch_size=64,shuffle = True)"
],
"execution_count": 27,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"260/260 [==============================] - 7s 26ms/step - loss: 0.7799 - dense_10_loss: 0.0888 - dense_15_loss: 0.6911 - dense_10_accuracy: 0.0090 - dense_15_accuracy: 0.5158 - val_loss: 0.7023 - val_dense_10_loss: 0.0309 - val_dense_15_loss: 0.6714 - val_dense_10_accuracy: 0.0089 - val_dense_15_accuracy: 0.5255\n",
"Epoch 2/30\n",
"260/260 [==============================] - 6s 25ms/step - loss: 0.6628 - dense_10_loss: 0.0372 - dense_15_loss: 0.6256 - dense_10_accuracy: 0.0155 - dense_15_accuracy: 0.6466 - val_loss: 0.5515 - val_dense_10_loss: 0.0271 - val_dense_15_loss: 0.5244 - val_dense_10_accuracy: 0.0190 - val_dense_15_accuracy: 0.7973\n",
"Epoch 3/30\n",
"260/260 [==============================] - 6s 25ms/step - loss: 0.5858 - dense_10_loss: 0.0343 - dense_15_loss: 0.5515 - dense_10_accuracy: 0.0179 - dense_15_accuracy: 0.7491 - val_loss: 0.4536 - val_dense_10_loss: 0.0242 - val_dense_15_loss: 0.4293 - val_dense_10_accuracy: 0.0214 - val_dense_15_accuracy: 0.8491\n",
"Epoch 4/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.5440 - dense_10_loss: 0.0297 - dense_15_loss: 0.5144 - dense_10_accuracy: 0.0196 - dense_15_accuracy: 0.7767 - val_loss: 0.4309 - val_dense_10_loss: 0.0201 - val_dense_15_loss: 0.4108 - val_dense_10_accuracy: 0.0232 - val_dense_15_accuracy: 0.8480\n",
"Epoch 5/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.5230 - dense_10_loss: 0.0265 - dense_15_loss: 0.4965 - dense_10_accuracy: 0.0219 - dense_15_accuracy: 0.7911 - val_loss: 0.4158 - val_dense_10_loss: 0.0203 - val_dense_15_loss: 0.3954 - val_dense_10_accuracy: 0.0229 - val_dense_15_accuracy: 0.8487\n",
"Epoch 6/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.5059 - dense_10_loss: 0.0238 - dense_15_loss: 0.4820 - dense_10_accuracy: 0.0236 - dense_15_accuracy: 0.7942 - val_loss: 0.3960 - val_dense_10_loss: 0.0190 - val_dense_15_loss: 0.3770 - val_dense_10_accuracy: 0.0242 - val_dense_15_accuracy: 0.8558\n",
"Epoch 7/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4887 - dense_10_loss: 0.0231 - dense_15_loss: 0.4655 - dense_10_accuracy: 0.0234 - dense_15_accuracy: 0.8065 - val_loss: 0.3868 - val_dense_10_loss: 0.0190 - val_dense_15_loss: 0.3678 - val_dense_10_accuracy: 0.0243 - val_dense_15_accuracy: 0.8650\n",
"Epoch 8/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4839 - dense_10_loss: 0.0213 - dense_15_loss: 0.4627 - dense_10_accuracy: 0.0254 - dense_15_accuracy: 0.8064 - val_loss: 0.3764 - val_dense_10_loss: 0.0169 - val_dense_15_loss: 0.3595 - val_dense_10_accuracy: 0.0250 - val_dense_15_accuracy: 0.8604\n",
"Epoch 9/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4691 - dense_10_loss: 0.0212 - dense_15_loss: 0.4479 - dense_10_accuracy: 0.0246 - dense_15_accuracy: 0.8133 - val_loss: 0.3850 - val_dense_10_loss: 0.0180 - val_dense_15_loss: 0.3669 - val_dense_10_accuracy: 0.0243 - val_dense_15_accuracy: 0.8549\n",
"Epoch 10/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4521 - dense_10_loss: 0.0205 - dense_15_loss: 0.4316 - dense_10_accuracy: 0.0256 - dense_15_accuracy: 0.8233 - val_loss: 0.3564 - val_dense_10_loss: 0.0167 - val_dense_15_loss: 0.3397 - val_dense_10_accuracy: 0.0260 - val_dense_15_accuracy: 0.8707\n",
"Epoch 11/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4451 - dense_10_loss: 0.0197 - dense_15_loss: 0.4254 - dense_10_accuracy: 0.0262 - dense_15_accuracy: 0.8281 - val_loss: 0.3543 - val_dense_10_loss: 0.0172 - val_dense_15_loss: 0.3371 - val_dense_10_accuracy: 0.0260 - val_dense_15_accuracy: 0.8711\n",
"Epoch 12/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4315 - dense_10_loss: 0.0193 - dense_15_loss: 0.4122 - dense_10_accuracy: 0.0265 - dense_15_accuracy: 0.8293 - val_loss: 0.3763 - val_dense_10_loss: 0.0160 - val_dense_15_loss: 0.3603 - val_dense_10_accuracy: 0.0256 - val_dense_15_accuracy: 0.8653\n",
"Epoch 13/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4211 - dense_10_loss: 0.0190 - dense_15_loss: 0.4022 - dense_10_accuracy: 0.0266 - dense_15_accuracy: 0.8386 - val_loss: 0.3416 - val_dense_10_loss: 0.0171 - val_dense_15_loss: 0.3244 - val_dense_10_accuracy: 0.0256 - val_dense_15_accuracy: 0.8705\n",
"Epoch 14/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4141 - dense_10_loss: 0.0186 - dense_15_loss: 0.3955 - dense_10_accuracy: 0.0268 - dense_15_accuracy: 0.8411 - val_loss: 0.3416 - val_dense_10_loss: 0.0184 - val_dense_15_loss: 0.3233 - val_dense_10_accuracy: 0.0253 - val_dense_15_accuracy: 0.8739\n",
"Epoch 15/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4112 - dense_10_loss: 0.0186 - dense_15_loss: 0.3926 - dense_10_accuracy: 0.0269 - dense_15_accuracy: 0.8445 - val_loss: 0.3269 - val_dense_10_loss: 0.0176 - val_dense_15_loss: 0.3093 - val_dense_10_accuracy: 0.0256 - val_dense_15_accuracy: 0.8833\n",
"Epoch 16/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4004 - dense_10_loss: 0.0183 - dense_15_loss: 0.3821 - dense_10_accuracy: 0.0266 - dense_15_accuracy: 0.8463 - val_loss: 0.3605 - val_dense_10_loss: 0.0182 - val_dense_15_loss: 0.3423 - val_dense_10_accuracy: 0.0259 - val_dense_15_accuracy: 0.8574\n",
"Epoch 17/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.4078 - dense_10_loss: 0.0185 - dense_15_loss: 0.3893 - dense_10_accuracy: 0.0268 - dense_15_accuracy: 0.8438 - val_loss: 0.3361 - val_dense_10_loss: 0.0173 - val_dense_15_loss: 0.3188 - val_dense_10_accuracy: 0.0257 - val_dense_15_accuracy: 0.8736\n",
"Epoch 18/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3909 - dense_10_loss: 0.0176 - dense_15_loss: 0.3733 - dense_10_accuracy: 0.0271 - dense_15_accuracy: 0.8534 - val_loss: 0.3199 - val_dense_10_loss: 0.0171 - val_dense_15_loss: 0.3028 - val_dense_10_accuracy: 0.0259 - val_dense_15_accuracy: 0.8811\n",
"Epoch 19/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3796 - dense_10_loss: 0.0178 - dense_15_loss: 0.3618 - dense_10_accuracy: 0.0272 - dense_15_accuracy: 0.8598 - val_loss: 0.3270 - val_dense_10_loss: 0.0174 - val_dense_15_loss: 0.3097 - val_dense_10_accuracy: 0.0261 - val_dense_15_accuracy: 0.8733\n",
"Epoch 20/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3774 - dense_10_loss: 0.0178 - dense_15_loss: 0.3596 - dense_10_accuracy: 0.0269 - dense_15_accuracy: 0.8603 - val_loss: 0.3237 - val_dense_10_loss: 0.0177 - val_dense_15_loss: 0.3060 - val_dense_10_accuracy: 0.0260 - val_dense_15_accuracy: 0.8775\n",
"Epoch 21/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3852 - dense_10_loss: 0.0175 - dense_15_loss: 0.3677 - dense_10_accuracy: 0.0270 - dense_15_accuracy: 0.8538 - val_loss: 0.3126 - val_dense_10_loss: 0.0155 - val_dense_15_loss: 0.2971 - val_dense_10_accuracy: 0.0261 - val_dense_15_accuracy: 0.8903\n",
"Epoch 22/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3785 - dense_10_loss: 0.0176 - dense_15_loss: 0.3609 - dense_10_accuracy: 0.0269 - dense_15_accuracy: 0.8603 - val_loss: 0.3274 - val_dense_10_loss: 0.0182 - val_dense_15_loss: 0.3092 - val_dense_10_accuracy: 0.0254 - val_dense_15_accuracy: 0.8742\n",
"Epoch 23/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3819 - dense_10_loss: 0.0176 - dense_15_loss: 0.3643 - dense_10_accuracy: 0.0273 - dense_15_accuracy: 0.8580 - val_loss: 0.3246 - val_dense_10_loss: 0.0181 - val_dense_15_loss: 0.3065 - val_dense_10_accuracy: 0.0252 - val_dense_15_accuracy: 0.8760\n",
"Epoch 24/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3652 - dense_10_loss: 0.0176 - dense_15_loss: 0.3476 - dense_10_accuracy: 0.0265 - dense_15_accuracy: 0.8640 - val_loss: 0.3126 - val_dense_10_loss: 0.0162 - val_dense_15_loss: 0.2964 - val_dense_10_accuracy: 0.0259 - val_dense_15_accuracy: 0.8799\n",
"Epoch 25/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3605 - dense_10_loss: 0.0170 - dense_15_loss: 0.3434 - dense_10_accuracy: 0.0274 - dense_15_accuracy: 0.8673 - val_loss: 0.3063 - val_dense_10_loss: 0.0158 - val_dense_15_loss: 0.2905 - val_dense_10_accuracy: 0.0261 - val_dense_15_accuracy: 0.8895\n",
"Epoch 26/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3595 - dense_10_loss: 0.0170 - dense_15_loss: 0.3424 - dense_10_accuracy: 0.0266 - dense_15_accuracy: 0.8707 - val_loss: 0.3184 - val_dense_10_loss: 0.0184 - val_dense_15_loss: 0.3000 - val_dense_10_accuracy: 0.0259 - val_dense_15_accuracy: 0.8844\n",
"Epoch 27/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3523 - dense_10_loss: 0.0171 - dense_15_loss: 0.3352 - dense_10_accuracy: 0.0275 - dense_15_accuracy: 0.8711 - val_loss: 0.3122 - val_dense_10_loss: 0.0150 - val_dense_15_loss: 0.2972 - val_dense_10_accuracy: 0.0263 - val_dense_15_accuracy: 0.8735\n",
"Epoch 28/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3528 - dense_10_loss: 0.0167 - dense_15_loss: 0.3361 - dense_10_accuracy: 0.0280 - dense_15_accuracy: 0.8736 - val_loss: 0.3171 - val_dense_10_loss: 0.0168 - val_dense_15_loss: 0.3002 - val_dense_10_accuracy: 0.0260 - val_dense_15_accuracy: 0.8690\n",
"Epoch 29/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3494 - dense_10_loss: 0.0164 - dense_15_loss: 0.3329 - dense_10_accuracy: 0.0284 - dense_15_accuracy: 0.8750 - val_loss: 0.2994 - val_dense_10_loss: 0.0152 - val_dense_15_loss: 0.2842 - val_dense_10_accuracy: 0.0261 - val_dense_15_accuracy: 0.8925\n",
"Epoch 30/30\n",
"260/260 [==============================] - 7s 25ms/step - loss: 0.3475 - dense_10_loss: 0.0162 - dense_15_loss: 0.3313 - dense_10_accuracy: 0.0278 - dense_15_accuracy: 0.8750 - val_loss: 0.3108 - val_dense_10_loss: 0.0163 - val_dense_15_loss: 0.2945 - val_dense_10_accuracy: 0.0257 - val_dense_15_accuracy: 0.8801\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 513
},
"id": "gmVvEF540WoB",
"outputId": "9227de30-cfa5-49b9-8ce1-e707afa47988"
},
"source": [
"history = h\n",
"plt.figure(figsize=(14,8))\n",
"plt.plot(history.history['loss'])\n",
"plt.plot(history.history['val_loss'])\n",
"plt.title('Model Loss')\n",
"plt.ylabel('accuracy')\n",
"plt.xlabel('epoch')\n",
"plt.legend(['train', 'val'], loc='upper left')\n",
"plt.show()"
],
"execution_count": 40,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x576 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 513
},
"id": "BvOPYvx42jyW",
"outputId": "eee420e1-417d-44d8-e81a-c433bfc7ddc6"
},
"source": [
"history = h\n",
"plt.figure(figsize=(14,8))\n",
"plt.plot(history.history['dense_15_accuracy'])\n",
"plt.plot(history.history['val_dense_15_accuracy'])\n",
"plt.title('Model Accuracy')\n",
"plt.ylabel('accuracy')\n",
"plt.xlabel('epoch')\n",
"plt.legend(['train', 'val'], loc='upper left')\n",
"plt.show()"
],
"execution_count": 41,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1008x576 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "EISNNmNI1RQk"
},
"source": [
"model.save('data.h5')"
],
"execution_count": 31,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "6YEoSmaY1kzJ"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment