Skip to content

Instantly share code, notes, and snippets.

@tsu-nera
Created May 15, 2018 00:17
Show Gist options
  • Save tsu-nera/7f6c46a960c2810f652931a28fb3897c to your computer and use it in GitHub Desktop.
Save tsu-nera/7f6c46a960c2810f652931a28fb3897c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SCUT-FBP5500 dataset\n",
"* https://github.com/HCIILAB/SCUT-FBP5500-Database-Release"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"PATH=\"/home/tsu-nera/hdd/data/SCUT-FBP5500_v2/\""
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"All_Ratings.xlsx Images_Sources.xlsx data\t\ttrain_test_files\r\n",
"Images\t\t README.txt\t facial landmark\r\n"
]
}
],
"source": [
"!ls {PATH}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ratings=pd.read_table(f\"{PATH}train_test_files/All_labels.txt\", delimiter=\" \", names=[\"image\", \"rating\"])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ratings[\"race\"] = ratings[\"image\"].apply(lambda x: \"Asian\" if x[0]==\"A\" else \"Caucasian\")\n",
"ratings[\"gender\"] = ratings[\"image\"].apply(lambda x: \"Male\" if x[1]==\"M\" else \"Female\")\n",
"ratings[\"target\"] = ratings[\"rating\"]/5"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ratings_F=ratings[ratings.gender==\"Female\"]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>image</th>\n",
" <th>rating</th>\n",
" <th>race</th>\n",
" <th>gender</th>\n",
" <th>target</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>CF437.jpg</td>\n",
" <td>2.883333</td>\n",
" <td>Caucasian</td>\n",
" <td>Female</td>\n",
" <td>0.576667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>CF215.jpg</td>\n",
" <td>3.033333</td>\n",
" <td>Caucasian</td>\n",
" <td>Female</td>\n",
" <td>0.606667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AF1899.jpg</td>\n",
" <td>2.916667</td>\n",
" <td>Asian</td>\n",
" <td>Female</td>\n",
" <td>0.583333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CF228.jpg</td>\n",
" <td>2.750000</td>\n",
" <td>Caucasian</td>\n",
" <td>Female</td>\n",
" <td>0.550000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>AF1179.jpg</td>\n",
" <td>3.933333</td>\n",
" <td>Asian</td>\n",
" <td>Female</td>\n",
" <td>0.786667</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" image rating race gender target\n",
"0 CF437.jpg 2.883333 Caucasian Female 0.576667\n",
"4 CF215.jpg 3.033333 Caucasian Female 0.606667\n",
"5 AF1899.jpg 2.916667 Asian Female 0.583333\n",
"9 CF228.jpg 2.750000 Caucasian Female 0.550000\n",
"10 AF1179.jpg 3.933333 Asian Female 0.786667"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ratings_F.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#%pwd"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#%cd {PATH}"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#import glob\n",
"#import shutil\n",
"#g = glob.glob('Images/?F*.jpg')\n",
"#shuf = np.random.permutation(g)\n",
"#for i in range(2750):\n",
"# if i<2000:\n",
"# shutil.copy(shuf[i], 'data/train/' + shuf[i])\n",
"# else:\n",
"# shutil.copy(shuf[i], 'data/val/' + shuf[i]) "
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#import shutil\n",
"#for row in ratings_F.iterrows():\n",
"# if row[1][4] > 0.6:\n",
"# shutil.move(\"Images/\"+row[1][0], \"Images/like/\"+row[1][0])\n",
"# else:\n",
"# shutil.move(\"Images/\"+row[1][0], \"Images/nope/\"+row[1][0]) "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#import glob\n",
"#g = glob.glob('Images/like/?F*.jpg')\n",
"#shuf = np.random.permutation(g)\n",
"#for i in range(1333):\n",
"# if i>1333/5:\n",
"# shutil.copy(shuf[i], 'data/train/' + shuf[i])\n",
"# else:\n",
"# shutil.copy(shuf[i], 'data/valid/' + shuf[i]) "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#import glob\n",
"#g = glob.glob('Images/nope/?F*.jpg')\n",
"#shuf = np.random.permutation(g)\n",
"#for i in range(1417):\n",
"# if i>1417/5:\n",
"# shutil.copy(shuf[i], 'data/train/' + shuf[i])\n",
"# else:\n",
"# shutil.copy(shuf[i], 'data/valid/' + shuf[i]) "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from fastai.imports import *\n",
"\n",
"from fastai.transforms import *\n",
"from fastai.conv_learner import *\n",
"from fastai.model import *\n",
"from fastai.dataset import *\n",
"from fastai.sgdr import *\n",
"from fastai.plots import *"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"arch=resnet34\n",
"sz=224\n",
"data = ImageClassifierData.from_paths(f\"{PATH}data\", tfms=tfms_from_model(arch, sz), num_workers=12)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"learn = ConvLearner.pretrained(arch,data, precompute=True, ps=0.5)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8ebece86e3a74ad99094a4b32a7f8bf7",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 26%|██▌ | 9/35 [00:00<00:00, 48.84it/s, loss=4.75] \n",
" \r"
]
}
],
"source": [
"lrf=learn.lr_find()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"learn.sched.plot()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = ImageClassifierData.from_paths(f\"{PATH}data\", tfms=tfms_from_model(arch, sz), num_workers=12)\n",
"learn = ConvLearner.pretrained(arch, data, precompute=True)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "10372c6ff34845cf8be694cb37f0b217",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch trn_loss val_loss accuracy \n",
" 0 0.923885 1.296041 0.76225 \n",
"\n"
]
},
{
"data": {
"text/plain": [
"[array([1.29604]), 0.7622504542613852]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"learn.fit(1e-1, 1)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6a1611a620774ccdace0c111ab2c3142",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=3), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch trn_loss val_loss accuracy \n",
" 0 0.554054 0.514872 0.789474 \n",
" 1 0.592691 0.595349 0.805808 \n",
" 2 0.523414 0.550402 0.800363 \n",
"\n"
]
},
{
"data": {
"text/plain": [
"[array([0.5504]), 0.8003629772719367]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"learn.precompute=False\n",
"learn.fit(1e-1, 3, cycle_len=1)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"learn.unfreeze()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"lr=np.array([1e-3,1e-2,1e-1])"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "fd818bf9d091420fbb6c52ecaeca8922",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch trn_loss val_loss accuracy \n",
" 0 0.498958 0.47512 0.833031 \n",
" 1 0.405495 0.478952 0.834846 \n",
" 2 0.269203 0.508377 0.852995 \n",
" 3 0.252969 0.722254 0.77677 \n",
" 4 0.191792 0.912953 0.745917 \n",
" 5 0.118868 0.650653 0.862069 \n",
" 6 0.07108 0.657423 0.858439 \n",
"\n"
]
},
{
"data": {
"text/plain": [
"[array([0.65742]), 0.8584392017764318]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"learn.fit(lr, 3, cycle_len=1, cycle_mult=2)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" \r"
]
},
{
"data": {
"text/plain": [
"0.8584392014519057"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"log_probs_tta,y = learn.TTA()\n",
"probs_tta = np.mean(np.exp(log_probs_tta), axis=0)\n",
"preds = np.argmax(probs_tta, axis=1)\n",
"(preds==y).mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "kaggle",
"language": "python",
"name": "kaggle"
},
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment