Skip to content

Instantly share code, notes, and snippets.

@esuji5
Created September 19, 2017 09:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esuji5/d32ab7bac648dd7615ab66ba2269635e to your computer and use it in GitHub Desktop.
Save esuji5/d32ab7bac648dd7615ab66ba2269635e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"※PyCon Jp 2017で発表した文からプログラム分を説明するために一部抜粋した資料になります\n",
"\n",
"[Pythonで実現する4コマ漫画の分析・評論 2017 - slideship.com](https://slideship.com/presentations/FSKS46VL9ivVSpUE4Gaamh/)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import seaborn as sns\n",
"import numpy as np\n",
"import cv2\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ディレクトリ構造\n",
"顔を切り抜いた後、0_yuzuko,1_yukari,2_yuiに入れています。データ分割を行うことでtest,train以下のフォルダにそれぞれ画像が振り分けられます。\n",
"```\n",
"├── 0_yuzuko\n",
"├── 1_yukari\n",
"├── 2_yui\n",
"├── test\n",
"│   ├── 0_yuzuko\n",
"│   ├── 1_yukari\n",
"│   └── 2_yui\n",
"└── train\n",
" ├── 0_yuzuko\n",
" ├── 1_yukari\n",
" └── 2_yui\n",
" ```"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train\n",
"/Users/esuji/image/yuyu_bunrui_dlib/0_yuzuko\n",
"1232 136\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/0_yuzuko\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/0_yuzuko\n",
"/Users/esuji/image/yuyu_bunrui_dlib/1_yukari\n",
"999 110\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/1_yukari\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/1_yukari\n",
"/Users/esuji/image/yuyu_bunrui_dlib/2_yui\n",
"1037 115\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/2_yui\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/2_yui\n",
"/Users/esuji/image/yuyu_bunrui_dlib/3_yoriko\n",
"115 12\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/3_yoriko\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/3_yoriko\n",
"/Users/esuji/image/yuyu_bunrui_dlib/4_chiho\n",
"117 13\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/4_chiho\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/4_chiho\n",
"/Users/esuji/image/yuyu_bunrui_dlib/5_kei\n",
"92 10\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/5_kei\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/5_kei\n",
"/Users/esuji/image/yuyu_bunrui_dlib/6_fumi\n",
"70 7\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/test/6_fumi\n",
"書き出しディレクトリ: /Users/esuji/image/yuyu_bunrui_dlib/train/6_fumi\n"
]
}
],
"source": [
"# データ分割\n",
"import os\n",
"import shutil\n",
"\n",
"choice_num = 10000\n",
"bunrui_dir = '/Users/esuji/image/yuyu_bunrui_dlib/'\n",
"test_sample_rate = 0.1\n",
"utils.make_outdir(bunrui_dir, 'test'), utils.make_outdir(bunrui_dir, 'train')\n",
"\n",
"for dir_name in os.listdir(bunrui_dir):\n",
" if dir_name.startswith('.') or dir_name[0] == 't':\n",
" continue\n",
" \n",
" try:\n",
" label = int(dir_name[0])\n",
" # ゆずこ、縁、唯の3人だけでよい\n",
" if label >= nb_classes:\n",
" continue\n",
" except:\n",
" continue\n",
" \n",
" bunrui_img_dir = os.path.join(bunrui_dir, dir_name)\n",
" print(bunrui_img_dir)\n",
" img_list = np.array(utils.get_path_list(bunrui_img_dir, 'png'))\n",
"# 定数まで取得\n",
" if len(img_list) > choice_num:\n",
" img_list = np.random.choice(img_list, choice_num, False)\n",
" test_num = int(len(img_list) * test_sample_rate)\n",
" test_img_list = list(np.random.choice(img_list, test_num, False))\n",
" train_img_list = list(set(img_list) - set(test_img_list))\n",
" print(len(train_img_list), len(test_img_list))\n",
" \n",
"# 書き出しディレクトリを作成&空にする\n",
" test_dir = utils.make_outdir(bunrui_dir, os.path.join('test', dir_name))\n",
" train_dir = utils.make_outdir(bunrui_dir, os.path.join('train', dir_name))\n",
" [shutil.os.remove(os.path.join(test_dir, os.path.basename(img_path))) for img_path in os.listdir(test_dir)]\n",
" [shutil.os.remove(os.path.join(train_dir, os.path.basename(img_path))) for img_path in os.listdir(train_dir)]\n",
" # 人物ディレクトリからtrain,testディレクトリへコピー\n",
" [shutil.copy(img_path, os.path.join(test_dir, os.path.basename(img_path))) for img_path in test_img_list]\n",
" [shutil.copy(img_path, os.path.join(train_dir, os.path.basename(img_path))) for img_path in train_img_list]\n",
"\n",
" # 0サイズの画像は削除。リスト内包表記でos.path.getsize()の判定ができない?\n",
" for img_path in (train_img_list + test_img_list):\n",
" if not os.path.getsize(img_path):\n",
" shutil.os.remove(img_path)\n",
" \n",
" # 画像の水増しを行う。計算量増加と精度向上のバランスが取れなかったため不採用になった\n",
"# for img_path in train_img_list:\n",
"# img = cv2.imread(img_path)\n",
"# # 左右反転\n",
"# img_f = cv2.flip(img, 1)\n",
"# new_img_path = os.path.basename(img_path)[:-4] + '_f.png'\n",
"# cv2.imwrite(os.path.join(train_dir, os.path.basename(new_img_path)), img_f)\n",
"# # 線画\n",
"# img_s = utils.generate_senga(img, 4)\n",
"# new_img_path = os.path.basename(img_path)[:-4] + '_s.png'\n",
"# cv2.imwrite(os.path.join(train_dir, os.path.basename(new_img_path)), img_s)\n",
"# # ブラー\n",
"# img_b = cv2.blur(img, (5,5))\n",
"# new_img_path = os.path.basename(img_path)[:-4] + '_b.png'\n",
"# cv2.imwrite(os.path.join(train_dir, os.path.basename(new_img_path)), img_b)\n",
"# # 左右反転ブラー\n",
"# img_fb = cv2.blur(img_f, (5,5))\n",
"# new_img_path = os.path.basename(img_path)[:-4] + '_fb.png'\n",
"# cv2.imwrite(os.path.join(train_dir, os.path.basename(new_img_path)), img_fb)\n",
"# ガウス\n",
"# img_g = cv2.GaussianBlur(img, (5, 5), 0)\n",
"# flip_img_path = os.path.basename(img_path)[:-4] + '_g.png'\n",
"# cv2.imwrite(os.path.join(train_dir, os.path.basename(flip_img_path)), img_g)\n",
"# "
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from collections import defaultdict\n",
"import os\n",
"from keras.callbacks import EarlyStopping\n",
"from keras.utils import np_utils\n",
"\n",
"\n",
"TRAIN_NUM = 150 # 訓練に使う画像のMAX枚数\n",
"size = 32 # CNNに入力する画像のサイズ。高さ、幅は同値\n",
"filter_size = 32 # 入力に使用する元画像のサイズ\n",
"\n",
"def make_image_and_label_list(bunrui_img_dir):\n",
" '''pngファイルのあるdirパスからimgデータとラベルのリストを返す'''\n",
" image_list = []\n",
" label_list = []\n",
" label_num_dict = defaultdict(int)\n",
" for img_path in utils.get_path_list(bunrui_img_dir, 'png'):\n",
" label = int(bunrui_img_dir.split('/')[-1][0])\n",
" # labelを再定義\n",
" label = redefine_label(label)\n",
" \n",
" kanji = int(img_path.split('animeface_cut0')[1][0])\n",
" # 8巻分は除外\n",
" if kanji >= 8:\n",
" continue\n",
" label_num_dict[label] += 1\n",
" if label_num_dict[label] > TRAIN_NUM:\n",
" continue\n",
" \n",
" img = cv2.imread(img_path, 0)\n",
" # 大きさに制限をかける\n",
" if img.shape[0] < filter_size:\n",
" continue\n",
" \n",
" if img is not None and img.shape[0] >= size and img.shape[1] >= size:\n",
" img = cv2.resize(img, (size, size))\n",
" image_list.append(img)\n",
" label_list.append(label)\n",
"\n",
" return image_list, label_list\n",
"\n",
"def get_bunrui_images(img_dir, ll):\n",
" image_list_all = []\n",
" label_list_all = []\n",
" for dir_name in os.listdir(img_dir):\n",
" if dir_name.startswith('.') or dir_name[0] == 't':\n",
" continue\n",
"\n",
" dir_num = int(dir_name[0])\n",
" if dir_num != ll:\n",
" continue\n",
"\n",
" bunrui_img_dir = os.path.join(img_dir, dir_name)\n",
" print(bunrui_img_dir)\n",
" image_and_label_list = make_image_and_label_list(bunrui_img_dir)\n",
" image_list_all.extend(image_and_label_list[0])\n",
" label_list_all.extend(image_and_label_list[1])\n",
"\n",
" return np.array(image_list_all), label_list_all\n",
"\n",
"def make_train_test_data(ll, nb_classes):\n",
" X_train, y_train = get_bunrui_images(os.path.join(bunrui_dir, 'train'), ll)\n",
" X_test, y_test = get_bunrui_images(os.path.join(bunrui_dir, 'test'), ll)\n",
" print(X_train.shape[0], 'train samples')\n",
" print(pd.Series(y_train).value_counts(sort=False))\n",
" print(X_test.shape[0], 'test samples')\n",
" print(pd.Series(y_test).value_counts(sort=False))\n",
" \n",
" # 画素を-1.0~1.0の範囲に変換\n",
" X_train =X_train.astype('float32') / 255\n",
" X_test =X_test.astype('float32') / 255\n",
" # データ整形\n",
" X_train = X_train.reshape(X_train.shape[0], size, size, 1)\n",
" X_test = X_test.reshape(X_test.shape[0], size, size, 1)\n",
" # one-hot-encoding\n",
" Y_train = np_utils.to_categorical(y_train, nb_classes)\n",
" Y_test = np_utils.to_categorical(y_test, nb_classes)\n",
" return X_train, X_test, Y_train, Y_test, y_test"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": true,
"scrolled": false
},
"outputs": [],
"source": [
"from keras.models import Sequential\n",
"from keras.layers.core import Dense, Dropout, Activation\n",
"from keras.optimizers import Adam\n",
"from keras.utils.vis_utils import plot_model\n",
"from keras.optimizers import SGD\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, Dropout, Activation, Flatten, Input\n",
"from keras.layers import Convolution2D, MaxPooling2D, Conv2D, BatchNormalization\n",
"from keras.optimizers import SGD\n",
"from keras.models import Model\n",
"\n",
"def build_mnist_model(nb_classes):\n",
" model = Sequential()\n",
" input_shape = (size, size, 1)\n",
" model.add(Conv2D(32, (3, 3),\n",
" activation='relu',\n",
" input_shape=input_shape))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"# model.add(Dropout(0.2))\n",
" model.add(Conv2D(64, (3, 3), activation='relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"# model.add(Dropout(0.2))\n",
" \n",
" model.add(Flatten())\n",
" model.add(Dense(1024, activation='relu'))\n",
" model.add(Dropout(0.5))\n",
" model.add(Dense(nb_classes, activation='softmax'))\n",
" return model\n",
"\n",
"def model_compile(nb_classes, verbose=1, model=None):\n",
" if not model:\n",
" model = build_mnist_model(nb_classes)\n",
" # モデルをコンパイル\n",
" if verbose:\n",
" model.summary()\n",
" model.compile(loss='categorical_crossentropy', optimizer=Adam(), metrics=['accuracy'])\n",
" return model\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 検証用のアニメ画像のディレクトリ構造\n",
"顔を切り抜いた後、a01_0にはTVアニメ1話のゆずこ、a01_1にはTVアニメ1話の縁...のようにデータを入れておきます\n",
"```\n",
"├── 0_yuzuko\n",
"├── 1_yukari\n",
"├── 2_yui\n",
"├── test\n",
"│   ├── 0_yuzuko\n",
"│   ├── 1_yukari\n",
"│   └── 2_yui\n",
"└── train\n",
" ├── 0_yuzuko\n",
" ├── 1_yukari\n",
" └── 2_yui\n",
" ```"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.metrics import accuracy_score, classification_report\n",
"\n",
"def plot_history(history):\n",
" # 精度の履歴をプロット\n",
" plt.plot(history.history['acc'])\n",
" plt.plot(history.history['val_acc'])\n",
" plt.title('model accuracy')\n",
" plt.xlabel('epoch')\n",
" plt.ylabel('accuracy')\n",
" plt.legend(['acc', 'val_acc'], loc='lower right')\n",
" plt.savefig(\"plot_acc.png\",format = 'png', dpi=300)\n",
" plt.show()\n",
"\n",
" # 損失の履歴をプロット\n",
" plt.plot(history.history['loss'])\n",
" plt.plot(history.history['val_loss'])\n",
" plt.title('model loss')\n",
" plt.xlabel('epoch')\n",
" plt.ylabel('loss')\n",
" plt.legend(['loss', 'val_loss'], loc='upper right')\n",
" plt.savefig(\"plot_loss.png\",format = 'png', dpi=300)\n",
" plt.show()\n",
" \n",
"def model_score(model, X, y, ll, nb_classes):\n",
" res = model.predict_classes(X)\n",
" print('')\n",
" print('label =', ll)\n",
" print(res)\n",
" print(np.array(y))\n",
" return"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/Users/esuji/image/yuyu_bunrui_dlib/train/0_yuzuko\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/0_yuzuko\n",
"1108 train samples\n",
"0 1108\n",
"dtype: int64\n",
"121 test samples\n",
"0 121\n",
"dtype: int64\n",
"1\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/1_yukari\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/1_yukari\n",
"874 train samples\n",
"1 874\n",
"dtype: int64\n",
"95 test samples\n",
"1 95\n",
"dtype: int64\n",
"2\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/2_yui\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/2_yui\n",
"925 train samples\n",
"2 925\n",
"dtype: int64\n",
"106 test samples\n",
"2 106\n",
"dtype: int64\n",
"3\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/3_yoriko\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/3_yoriko\n",
"115 train samples\n",
"3 115\n",
"dtype: int64\n",
"12 test samples\n",
"3 12\n",
"dtype: int64\n",
"4\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/4_chiho\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/4_chiho\n",
"117 train samples\n",
"4 117\n",
"dtype: int64\n",
"13 test samples\n",
"4 13\n",
"dtype: int64\n",
"5\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/5_kei\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/5_kei\n",
"90 train samples\n",
"5 90\n",
"dtype: int64\n",
"10 test samples\n",
"5 10\n",
"dtype: int64\n",
"6\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/6_fumi\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/6_fumi\n",
"70 train samples\n",
"6 70\n",
"dtype: int64\n",
"7 test samples\n",
"6 7\n",
"dtype: int64\n",
"Train on 2969 samples, validate on 330 samples\n",
"Epoch 1/30\n",
"2969/2969 [==============================] - 5s - loss: 0.8892 - acc: 0.6079 - val_loss: 9.5515 - val_acc: 0.0000e+00\n",
"Epoch 2/30\n",
"2969/2969 [==============================] - 3s - loss: 0.4419 - acc: 0.8552 - val_loss: 10.4822 - val_acc: 0.0000e+00\n",
"Epoch 3/30\n",
"2969/2969 [==============================] - 3s - loss: 0.3079 - acc: 0.9020 - val_loss: 11.3416 - val_acc: 0.0000e+00\n",
"Epoch 4/30\n",
"2969/2969 [==============================] - 3s - loss: 0.2233 - acc: 0.9293 - val_loss: 12.0297 - val_acc: 0.0000e+00\n",
"Epoch 5/30\n",
"2969/2969 [==============================] - 3s - loss: 0.1723 - acc: 0.9471 - val_loss: 11.9112 - val_acc: 0.0000e+00\n",
"Epoch 6/30\n",
"2969/2969 [==============================] - 4s - loss: 0.1472 - acc: 0.9569 - val_loss: 12.3656 - val_acc: 0.0000e+00\n",
"Epoch 7/30\n",
"2969/2969 [==============================] - 4s - loss: 0.1191 - acc: 0.9613 - val_loss: 12.1405 - val_acc: 0.0000e+00\n",
"Epoch 8/30\n",
"2969/2969 [==============================] - 4s - loss: 0.1008 - acc: 0.9670 - val_loss: 12.8858 - val_acc: 0.0000e+00\n",
"Epoch 9/30\n",
"2969/2969 [==============================] - 4s - loss: 0.1016 - acc: 0.9690 - val_loss: 12.7809 - val_acc: 0.0000e+00\n",
"Epoch 10/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0750 - acc: 0.9751 - val_loss: 12.7316 - val_acc: 0.0091\n",
"Epoch 11/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0680 - acc: 0.9818 - val_loss: 13.1487 - val_acc: 0.0000e+00\n",
"Epoch 12/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0547 - acc: 0.9845 - val_loss: 13.4826 - val_acc: 0.0121\n",
"Epoch 13/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0437 - acc: 0.9872 - val_loss: 13.1718 - val_acc: 0.0242\n",
"Epoch 14/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0428 - acc: 0.9859 - val_loss: 12.7288 - val_acc: 0.0030\n",
"Epoch 15/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0364 - acc: 0.9892 - val_loss: 12.6386 - val_acc: 0.0212\n",
"Epoch 16/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0241 - acc: 0.9939 - val_loss: 13.7268 - val_acc: 0.0212\n",
"Epoch 17/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0201 - acc: 0.9953 - val_loss: 13.6470 - val_acc: 0.0273\n",
"Epoch 18/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0179 - acc: 0.9956 - val_loss: 13.4164 - val_acc: 0.0303\n",
"Epoch 19/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0160 - acc: 0.9956 - val_loss: 13.8966 - val_acc: 0.0182\n",
"Epoch 20/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0104 - acc: 0.9990 - val_loss: 14.1290 - val_acc: 0.0242\n",
"Epoch 21/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0087 - acc: 0.9980 - val_loss: 14.0524 - val_acc: 0.0273\n",
"Epoch 22/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0059 - acc: 1.0000 - val_loss: 14.3274 - val_acc: 0.0182\n",
"Epoch 23/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0051 - acc: 0.9993 - val_loss: 14.0570 - val_acc: 0.0303\n",
"Epoch 24/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0047 - acc: 0.9987 - val_loss: 13.9713 - val_acc: 0.0303\n",
"Epoch 25/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0042 - acc: 0.9997 - val_loss: 14.0516 - val_acc: 0.0303\n",
"Epoch 26/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0026 - acc: 1.0000 - val_loss: 14.3934 - val_acc: 0.0182\n",
"Epoch 27/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0031 - acc: 0.9997 - val_loss: 14.3910 - val_acc: 0.0182\n",
"Epoch 28/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0025 - acc: 1.0000 - val_loss: 14.2767 - val_acc: 0.0273\n",
"Epoch 29/30\n",
"2969/2969 [==============================] - 4s - loss: 0.0017 - acc: 1.0000 - val_loss: 14.4250 - val_acc: 0.0242\n",
"Epoch 30/30\n",
"2969/2969 [==============================] - 5s - loss: 0.0017 - acc: 1.0000 - val_loss: 14.3863 - val_acc: 0.0242\n"
]
},
{
"data": {
"image/png": "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\ngJ6TXERERGL8nbfX6+Xtt9/mlVdeoaqqikmTJvGTn/yEpUuXMnnyZF588cV41ykiIiIdYgrvcePG\nceqppzJlyhSOO+64yPxLLrmEZcuWxa04ERER2V1M4f3uu++yYcMGhg4dSnNzM+Xl5ZxwwglYLBbm\nzZsX7xpFRERkJzHt837ssceYO3cuAK2trTzyyCM89NBDcS1MREREoospvBcvXsyTTz4JQO/evZk/\nfz7vvPNOXAsTERGR6GIK70AgQFtbW+S+fiYmIiKSODHt8544cSLnnXceY8eOBWDp0qVccsklcS1M\nREREoospvH/xi18wYsQIPvvsM+x2O3PmzGHo0KHxrk1ERESiiGnY3OfzUVVVRW5uLpmZmaxevZq/\n/vWv8a5NREREooip5z1lyhRaW1vZuHEjI0eO5NNPP2X48OHxrk1ERESiiKnnXVFRwdNPP8348eO5\n+uqree6556iuro53bSIiIhJFTOHdq1cvLBYLJSUlrF27loKCAnw+X7xrExERkShiGjYfNGgQd999\nN5MmTWLq1KlUV1fr52IiIiIJElPPe9q0aZx55pkMHDiQ66+/nurqau6///541yYiIiJRxNTzvvDC\nC3nppZeA8EVKxo0bF9eiREREpGsx7/P+7LPPtJ9bRESkB4ip511eXs7Pf/7zTvMsFgurV6+OS1Ei\nIiLStZjC+//+7//iXYeIiIjEKKbwfvjhh6POnzJlSrcWIyIiInsX0z7vnfn9ft577z22bdsWj3pE\nRERkL2I+PerOrrvuOq666qq4FCQiIiJ7ts89bwCv18uWLVu6uxYRERGJQUw977Fjx2KxWAAwDIOm\npiYmT54c18JEREQkupjCe8GCBZFpi8VCZmYmbrc7bkWJiIhI12IaNvd6vcydO5d+/frR2trKtdde\ny3fffRfv2kRERCSKmML7D3/4AxMmTACgtLSU3/zmN/z+97+Pa2EiIiISXUzh3draysknnxy5f+KJ\nJ9La2hq3okRERKRrMYV3bm4u//rXv/B6vXi9Xp599ll69eoV79pEREQkipjC+5577mHJkiWMHj2a\nsWPH8v777zNz5sx41yYiIiJRxHS0eWFhITfeeCNDhw6lubmZ8vJy+vTpE+/aREREJIqYet5z585l\n7ty5QHj/9yOPPMJDDz0U18JEREQkupjCe8mSJTz55JMA9O7dm/nz5/POO+/EtTARERGJLqbwDgQC\ntLW1Re77/f64FSQiIiJ7FtM+74kTJ3LeeecxduxYDMPggw8+4NJLL413bSIiIhJFTOE9adIk/H4/\nPp+PzMxMLrjgAmpqauJdm4iIiEQRU3hff/31tLa2snHjRkaOHMmnn37K8OHD412biIiIRBHTPu+K\nigqefvppxo8fz9VXX81zzz1HdXV1vGsTERGRKGIK7169emGxWCgpKWHt2rUUFBTg8/niXZuIiIhE\nEdOw+aBBg7j77ruZNGkSU6dOpbq6Wkeci4iIJEhMPe/p06dz5plnMnDgQK6//nqqq6u5//77412b\niIiIRBFTz9tmszFy5EgAxo0bx7hx4/b6nFAoxPTp01m7di0Oh4OysjL69++/22OuueYaxo0bx6RJ\nk/ajfBERkeQTU897fyxatAifz8fChQu59dZbmT179m6PeeCBB2hqaopXCSIiIgeluIX3ihUrGDNm\nDADDhw+nvLy80/K33noLi8USeYyIiIjEJqZh8/3h8Xhwu92R+zabjUAggN1u55tvvuH111/nwQcf\nZN68eTGtLycnDbvd1q015udndOv6DhZql+jULtGpXaJTu0SndoluX9slbuHtdrvxer2R+6FQCLs9\n/HIvv/wyVVVVXHHFFWzevJmUlBT69evHSSed1OX66utburW+/PwMamqau3WdBwO1S3Rql+jULtGp\nXaJTu0TXVbvsKdDjFt4jRoxg8eLFnHXWWaxcuZLBgwdHlt12222R6Yceeoi8vLw9BreIiIjsELfw\nHj9+PB999BETJ07EMAxmzZrF/PnzKSoqiulodREREYkubuFttVqZMWNGp3mlpaW7Pe7666+PVwki\nIiIHpbgdbS4iIiLxofAWERExGYW3iIiIySi8RURETEbhLSIiYjIKbxEREZNReIuIiJiMwltERMRk\nFN4iIiImo/AWERExGYW3iIiIySi8RURETEbhLSIiYjIKbxEREZNReIuIiJiMwltERMRkFN4iIiIm\no/AWERExGYW3iIiIySi8RURETEbhLSIiYjIKbxEREZNReIuIiJiMwltERMRkFN4iIiImo/AWEREx\nGYW3iIiIySi8RURETEbhLSIiYjIKbxEREZNReIuIiJiMwltERMRkFN4iIiImo/AWERExGYW3iIiI\nySi8RURETEbhLSIiYjIKbxEREZNReIuIiJiMwltERMRkFN4iIiImo/AWERExGYW3iIiIySi8RURE\n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\nT57M3/72N/70pz8xderUpG6XM844A7t9x8CUYRhYLBYA0tPTaW5uTlRpCbVruwwbNozbbruN//mf\n/+HQQw9l3rx5CawuMdLT03G73Xg8Hm644QZuuukmbS9EbxdtL2F2u53f/e533H333Zxzzjn7tb0k\nXXi73W68Xm/kfigU6vRhlKxKSkr46U9/isVioaSkhOzsbGpqahJdVo+x8/4nr9dLZmZmAqvpOcaP\nH8+RRx4Zmf76668TXFFiVFZWcvnll/Ozn/2Mc845R9tLh13bRdvLDvfeey9vv/02f/zjH2lvb4/M\nj3V7SbrwHjFiBEuXLgVg5cqVDB48OMEV9QzPP/88s2fPBqCqqgqPx0N+fn6Cq+o5hg4dyvLlywFY\nunQpI0eOTHBFPcPkyZP54osvAPj444854ogjElzRgVdbW8tVV13Fb3/7Wy644AJA2wtEbxdtL/Dy\nyy/z+OOPA5CamorFYuHII4/c5+0l6S5Msv1o82+++QbDMJg1axalpaWJLivhfD4fd9xxB1u2bMFi\nsTB16lRGjBiR6LISatOmTdxyyy08++yzVFRU8Mc//hG/38+AAQMoKyvDZrMlusSE2LldvvrqK+6+\n+25SUlLIy8vj7rvv7rRbKhmUlZXx5ptvMmDAgMi83//+95SVlSX19hKtXW666SbmzJmT1NtLS0sL\nd9xxB7W1tQQCAX75y19SWlq6z58vSRfeIiIiZpd0w+YiIiJmp/AWERExGYW3iIiIySi8RURETEbh\nLSIiYjIKbxH5wV588UVuv/32RJchkjQU3iIiIiaj84KKJJEnnniCN998k2AwyOjRo5k0aRK/+c1v\nOPTQQ9mwYQOFhYXMmTOH7OxsFi9ezAMPPEAoFOLQQw9lxowZ5OXlsWzZMmbPno1hGBQWFnL//fcD\nsGHDBi677DK2bNnCCSecQFlZWYLfrcjBSz1vkSSxdOlSysvLef7553n55Zepqqritdde45tvvuGK\nK67gjTfeoLS0lIcffpht27Zx1113MW/ePF577TVGjBjBjBkz8Pl8TJ06lXvvvZfXXnuNww47jJde\negkIn8f6oYce4s0332Tp0qX897//TfA7Fjl4qectkiQ+/vhjvvjiC8477zwA2traMAyD4uJiRo0a\nBcCECROYOnUqJ554IsOGDeOQQw4B4OKLL+aJJ55g7dq1FBQUcPjhhwNwyy23AOF93iNHjiQ7OxsI\nXzq0vr7+QL9FkaSh8BZJEsFgkCuuuIIrr7wSgKamJrZu3crNN98cecz26y6HQqFOzzUMg0AgQEpK\nSqf5zc3Nkav07Xx1PovFgs68LBI/GjYXSRI/+tGPeOWVV/B6vQQCAa677jrKy8upqKhg9erVALzw\nwgucdNJJHH300axatYpNmzYBsHDhQkaNGkVJSQl1dXV8++23ADz11FP861//Sth7EklW6nmLJImx\nY8eyZs0aLrroIoLBIGPGjOG4444jKyuLBx98kI0bN3LYYYdRVlZGWloaM2bMYMqUKfj9fgoLC5k5\ncyZOp5M5c+Zw22234ff7KSoq4r777uPtt99O9NsTSSq6qphIEtu0aROXX3457733XqJLEZF9oGFz\nERERk1HPW0RExGTU8xYRETEZhbeIiIjJKLxFRERMRuEtIiJiMgpvERERk1F4i4iImMz/D3mjM23G\nnY4TAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1be7bf5c0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n5uFyufyOn5tb0uQ1uN2RzTJds1Nf/FNf/FNf/FNf/FNf/GuoL253ZIPvCej+6aioKBwOBwDR0dF4\nPB68Xm8gSxARETGtgIb2LbfcwmOPPcaNN95IdXU1f/jDHwgLCwtkCSIiIqYV0NAODw/nf//3fwM5\nSxERkVZDJ1cRERExCYW2iIiISSi0RURETKJRob1mzRr+8Y9/UFVVxW233cbpp5/OggULmrs2ERER\nqadRoT1p0iT69+/PggULCAkJYc6cOUybNq25axMREZF6GhXaPp+PIUOG8PXXX3PRRRfRvn17/b5a\nREQkwBoV2qGhobz99tssXbqU8847j3/+85+Eh4c3d20iIiJST6NC+6WXXqK8vJyXX36Z6OhocnJy\n+NOf/tTctYmIiEg9jTq5SmxsLCNHjqR3797MmzcPn8+H1aoDz0VERAKpUcn74IMPsmDBAlavXs3U\nqVOJiIjgkUceae7aREREpJ5GhXZGRgb33nsvCxYsYOzYsYwfP56ioqLmrk1ERETqaVRoe71e8vPz\nWbhwIeeeey65ublUVFQ0d20iIiJST6O+07799tu59tprOf/88+nZsyejRo3i3nvvbe7aREREpJ5G\nhfbo0aMZNWoUu3btYuPGjXzyySfY7QG9QJiIiEib16jkXbt2Lffeey8xMTH4fD7y8vJ45ZVXSEtL\na+76REREpFajQnvy5Mn85S9/qQvpVatWMXHiRGbPnt2sxYmIiMghjToQrby8/LCt6oEDB1JZWdls\nRYmIiMjRGhXa0dHRfPHFF3XPP//8c2JiYpqtKBERETlao3aPT5w4kQcffJDHH38cgE6dOvHiiy82\na2EiIiJyuGOG9rhx47BYLACEhISQnJyMYRiEhoby1FNP8c477wSkSBERETlOaN99992BqkNERESO\n45ihPXTo0EDVISIiIsehS3WJiIiYhEJbRETEJBTaIiIiJqHQFhERMQmFtoiIiEkotEVERExCoS0i\nImISCm0RERGTaNS5x5vSG2+8wZdffkl1dTU33HAD11xzTaBLEBERMaWAhvbSpUtZuXIl77//PgcO\nHODtt98O5OxFRERMLaCh/d1339GzZ0/Gjx9PaWkpDz30UCBnLyIiYmoWwzCMQM1swoQJZGVl8frr\nr5ORkcFdd93Ff//737oriR3J4/Fit9sCVZ6IiEiLFtAt7ZiYGLp164bT6aRbt264XC7y8/OJj4/3\nO35BQXmT1+B2R5KbW9Lk0zU79cU/9cU/9cU/9cU/9cW/hvridkc2+J6AHj0+ePBgvv32WwzDYN++\nfRw4cICYmJhAliAiImJaAd3SPu+88/jxxx8ZO3YshmHw5JNPYrNp97eIiEhjBPwnXzr4TERE5OTo\n5CoiIiImodAWERExCYW2iIiISSi0RURETEKhLSIiYhIKbREREZNQaIuIiJiEQltERMQkFNoiIiIm\nodAWERExCYW2iIiISSi0RURETEKhLSIiYhIKbREREZNQaIuIiJiEQltERMQkFNoiIiImodAWEREx\nCYW2iIiISSi0RURETEKhLSIiYhIKbREREZNQaIuIiJiEQltERMQkFNoiIiImodAWERExCYW2iIiI\nSSi0RURETEKhLSIiYhIKbREREZMISmjv37+fc845h+3btwdj9iIiIqYU8NCurq7mySefJCQkJNCz\nFhERMbWAh/YLL7zA9ddfT2JiYqBnLSIiYmr2QM7sww8/JC4ujuHDhzNt2rTjjh8bG4bdbmvyOtzu\nyCafZmugvvinvvinvvinvvinvvh3on2xGIZhNFMtR/nlL3+JxWLBYrGwceNGunTpwmuvvYbb7fY7\nfm5uSZPX4HZHNst0zU598U998U998U998U998a+hvhwryAO6pf3ee+/VPR43bhxPP/10g4EtIiIi\nh9NPvkREREwioFva9U2fPj1YsxYRETElbWmLiIiYhEJbRETEJBTaIiIiJqHQFhERMQmFtoiIiEko\ntEVERExCoS0iImISCm0RERGTUGiLiIiYhEJbRETEJBTaIiIiJqHQFhERMQmFtoiIiEkotEVERExC\noS0iImISCm0RERGTUGiLiIiYhEJbRETEJBTaIiIiJqHQFhERMQmFtoiIiEkotEVERExCoS0iImIS\nCm0RERGTUGiLiIiYhEJbRETEJBTaIiIiJqHQFhERMQmFtoiIiEnYAzmz6upqHnvsMTIzM6mqquKu\nu+7iggsuCGQJIiIiphXQ0P7444+JiYnhxRdfpLCwkKuuukqhLSIi0kgBDe2LL76YUaNGAWAYBjab\nLZCzFxERMbWAhnZ4eDgApaWl3HPPPdx3332BnL2IiIipWQzDMAI5w+zsbMaPH8+NN97I2LFjjzmu\nx+PFbtfWuIiICAQ4tPPy8hg3bhxPPvkkZ5xxxnHHz80tafIa3O7IZpmu2akv/qkv/qkv/qkv/qkv\n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\ni1H/+6WysjKioqKCWE3LceGFF9K/f/+6xxs2bAhyRcGRnZ3NTTfdxJVXXsno0aO1vNQ6si9aXg55\n4YUXWLBgAU888QSVlZV1w09keWkToT1o0CAWLVoEwKpVq+jZs2eQK2oZZs+ezfPPPw/Avn37KC0t\nxe12B7mqlqNv374sXboUgEWLFnHaaacFuaKW4fbbb2fNmjUALFmyhH79+gW5osDLy8vjtttu48EH\nH2Ts2LGAlhfw3xctL/DRRx/xxhtvABAaGorFYqF///4ntby0iQuGHDx6fMuWLRiGwXPPPUdqamqw\nywq6qqoqHn30UbKysrBYLDzwwAMMGjQo2GUFVUZGBvfffz+zZs1i586dPPHEE1RXV9OtWzcmTZqE\nzWYLdolBUb8v69evZ+LEiTgcDhISEpg4ceJhXz+1BZMmTWL+/Pl069atbtjjjz/OpEmT2vTy4q8v\n9913Hy+++GKbXl7Ky8t59NFHycvLw+Px8Otf/5rU1NST+vvSJkJbRESkNWgTu8dFRERaA4W2iIiI\nSSi0RURETEKhLSIiYhIKbREREZNQaIvISfnwww955JFHgl2GSJui0BYRETEJnctTpJWbNm0a8+fP\nx+v1cvbZZ3PDDTfwu9/9jk6dOpGenk6HDh148cUXiYmJ4auvvuKvf/0rPp+PTp068eyzz5KQkMDi\nxYt5/vnnMQyDDh068Kc//QmA9PR0xo0bR1ZWFmeccQaTJk0K8qcVad20pS3Sii1atIh169Yxe/Zs\nPvroI/bt28e8efPYsmULN998M5988gmpqan87W9/Y//+/Tz55JO88sorzJs3j0GDBvHss89SVVXF\nAw88wAsvvMC8efPo1asXc+bMAWrOMz116lTmz5/PokWL2Lp1a5A/sUjrpi1tkVZsyZIlrFmzhjFj\nxgBQUVGBYRh06dKFYcOGAXDVVVfxwAMPcNZZZzFgwACSk5MBuO6665g2bRqbN2+mXbt29OnTB4D7\n778fqPlO+7TTTiMmJgaouYRnQUFBoD+iSJui0BZpxbxeLzfffDO33norAMXFxezdu5c//OEPdeMc\nvO6xz+c77L2GYeDxeHA4HIcNLykpqbtqXv2r5VksFnRWZJHmpd3jIq3Y6aefzty5cykrK8Pj8TB+\n/HjWrVvHzp072bhxIwAffPABI0aMIC0tjdWrV5ORkQHAzJkzGTZsGF27diU/P59t27YB8NZbb/H+\n++8H7TOJtGXa0hZpxc4//3w2bdrEtddei9frZfjw4QwZMoTo6Ghefvlldu/eTa9evZg0aRJhYWE8\n++yz/P73v6e6upoOHTowefJkXC4XL774Ig899BDV1dWkpKTwxz/+kQULFgT744m0ObrKl0gbk5GR\nwU033cSXX34Z7FJE5ARp97iIiIhJaEtbRETEJLSlLSIiYhIKbREREZNQaIuIiJiEQltERMQkFNoi\nIiImodAWERExif8HRSPOdI94GxwAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x198f15f60>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"352/364 [============================>.] - ETA: 0s\n",
"label = 7\n",
"[0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 2 0 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 3 0 2 3 0 3 0 0 0\n",
" 0 3 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3\n",
" 3 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6]\n",
"320/364 [=========================>....] - ETA: 0s precision recall f1-score support\n",
"\n",
" 0 0.86 0.99 0.92 121\n",
" 1 0.84 0.99 0.91 95\n",
" 2 0.97 0.97 0.97 106\n",
" 3 0.50 0.25 0.33 12\n",
" 4 0.00 0.00 0.00 13\n",
" 5 0.00 0.00 0.00 10\n",
" 6 0.00 0.00 0.00 7\n",
"\n",
"avg / total 0.80 0.88 0.84 364\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/site-packages/sklearn/metrics/classification.py:1113: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
" 'precision', 'predicted', average, warn_for)\n"
]
}
],
"source": [
"nb_classes = 7\n",
"batch_size = 64\n",
"nb_epoch = 30\n",
"TRAIN_NUM = 10000\n",
"size = 32\n",
"filter_size = 32\n",
"\n",
"def redefine_label(label):\n",
"# if label >= 3:\n",
"# label = 3\n",
" return label\n",
"\n",
"temp_res = make_train_test_data(0, nb_classes)\n",
"for ll in range(1, nb_classes):\n",
" print(ll)\n",
" ll = redefine_label(ll)\n",
" res = make_train_test_data(ll, nb_classes)\n",
" temp_res = [np.concatenate([res1, res2]) for res1, res2 in zip(temp_res, res)]\n",
"\n",
"X_train, X_test, Y_train, Y_test, y_test = temp_res\n",
"\n",
"model = model_compile(nb_classes, verbose=0)\n",
"callbacks = []\n",
"# callbacks.append(EarlyStopping(monitor='val_loss', patience=8, verbose=1, mode='auto'))\n",
"history = model.fit(X_train, Y_train, batch_size=batch_size, epochs=nb_epoch, verbose=1, validation_split=0.1\n",
" ,callbacks=callbacks)\n",
"# 学習履歴をプロット\n",
"plot_history(history)\n",
"print('')\n",
"total_score = model_score(model, X_test, y_test, nb_classes, nb_classes)\n",
"model_score_bi(model, X_test, y_test)\n"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/Users/esuji/image/yuyu_bunrui_dlib/train/0_yuzuko\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/0_yuzuko\n",
"100 train samples\n",
"0 100\n",
"dtype: int64\n",
"100 test samples\n",
"0 100\n",
"dtype: int64\n",
"1\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/1_yukari\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/1_yukari\n",
"100 train samples\n",
"1 100\n",
"dtype: int64\n",
"95 test samples\n",
"1 95\n",
"dtype: int64\n",
"2\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/2_yui\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/2_yui\n",
"100 train samples\n",
"2 100\n",
"dtype: int64\n",
"100 test samples\n",
"2 100\n",
"dtype: int64\n",
"3\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/3_yoriko\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/3_yoriko\n",
"100 train samples\n",
"3 100\n",
"dtype: int64\n",
"12 test samples\n",
"3 12\n",
"dtype: int64\n",
"4\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/4_chiho\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/4_chiho\n",
"100 train samples\n",
"4 100\n",
"dtype: int64\n",
"13 test samples\n",
"4 13\n",
"dtype: int64\n",
"5\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/5_kei\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/5_kei\n",
"90 train samples\n",
"5 90\n",
"dtype: int64\n",
"10 test samples\n",
"5 10\n",
"dtype: int64\n",
"6\n",
"/Users/esuji/image/yuyu_bunrui_dlib/train/6_fumi\n",
"/Users/esuji/image/yuyu_bunrui_dlib/test/6_fumi\n",
"70 train samples\n",
"6 70\n",
"dtype: int64\n",
"7 test samples\n",
"6 7\n",
"dtype: int64\n",
"Train on 594 samples, validate on 66 samples\n",
"Epoch 1/30\n",
"594/594 [==============================] - 1s - loss: 1.8373 - acc: 0.2222 - val_loss: 3.9059 - val_acc: 0.0000e+00\n",
"Epoch 2/30\n",
"594/594 [==============================] - 0s - loss: 1.7079 - acc: 0.3434 - val_loss: 4.8465 - val_acc: 0.0000e+00\n",
"Epoch 3/30\n",
"594/594 [==============================] - 0s - loss: 1.5680 - acc: 0.3670 - val_loss: 4.7247 - val_acc: 0.0000e+00\n",
"Epoch 4/30\n",
"594/594 [==============================] - 0s - loss: 1.3214 - acc: 0.5387 - val_loss: 5.6062 - val_acc: 0.0000e+00\n",
"Epoch 5/30\n",
"594/594 [==============================] - 0s - loss: 1.1527 - acc: 0.5724 - val_loss: 4.8112 - val_acc: 0.0000e+00\n",
"Epoch 6/30\n",
"594/594 [==============================] - 0s - loss: 1.0535 - acc: 0.6010 - val_loss: 4.5454 - val_acc: 0.0000e+00\n",
"Epoch 7/30\n",
"594/594 [==============================] - 0s - loss: 0.9346 - acc: 0.6785 - val_loss: 3.7927 - val_acc: 0.0000e+00\n",
"Epoch 8/30\n",
"594/594 [==============================] - 0s - loss: 0.8693 - acc: 0.7037 - val_loss: 3.7791 - val_acc: 0.0000e+00\n",
"Epoch 9/30\n",
"594/594 [==============================] - 0s - loss: 0.7996 - acc: 0.7189 - val_loss: 2.6505 - val_acc: 0.0303\n",
"Epoch 10/30\n",
"594/594 [==============================] - 0s - loss: 0.7541 - acc: 0.7239 - val_loss: 3.1221 - val_acc: 0.0152\n",
"Epoch 11/30\n",
"594/594 [==============================] - 0s - loss: 0.6388 - acc: 0.7879 - val_loss: 3.0831 - val_acc: 0.0455\n",
"Epoch 12/30\n",
"594/594 [==============================] - 0s - loss: 0.5517 - acc: 0.8232 - val_loss: 2.7732 - val_acc: 0.2121\n",
"Epoch 13/30\n",
"594/594 [==============================] - 0s - loss: 0.5006 - acc: 0.8232 - val_loss: 3.2087 - val_acc: 0.1364\n",
"Epoch 14/30\n",
"594/594 [==============================] - 0s - loss: 0.4511 - acc: 0.8586 - val_loss: 3.0697 - val_acc: 0.1667\n",
"Epoch 15/30\n",
"594/594 [==============================] - 0s - loss: 0.4107 - acc: 0.8620 - val_loss: 2.6317 - val_acc: 0.3030\n",
"Epoch 16/30\n",
"594/594 [==============================] - 0s - loss: 0.3487 - acc: 0.8788 - val_loss: 2.8826 - val_acc: 0.2727\n",
"Epoch 17/30\n",
"594/594 [==============================] - 0s - loss: 0.3106 - acc: 0.9125 - val_loss: 3.2262 - val_acc: 0.2273\n",
"Epoch 18/30\n",
"594/594 [==============================] - 0s - loss: 0.3171 - acc: 0.9125 - val_loss: 2.9734 - val_acc: 0.1970\n",
"Epoch 19/30\n",
"594/594 [==============================] - 0s - loss: 0.2227 - acc: 0.9394 - val_loss: 3.8631 - val_acc: 0.1515\n",
"Epoch 20/30\n",
"594/594 [==============================] - 0s - loss: 0.2006 - acc: 0.9444 - val_loss: 3.5998 - val_acc: 0.2121\n",
"Epoch 21/30\n",
"594/594 [==============================] - 0s - loss: 0.1775 - acc: 0.9529 - val_loss: 3.6355 - val_acc: 0.2121\n",
"Epoch 22/30\n",
"594/594 [==============================] - 0s - loss: 0.1611 - acc: 0.9562 - val_loss: 4.4110 - val_acc: 0.1364\n",
"Epoch 23/30\n",
"594/594 [==============================] - 0s - loss: 0.1945 - acc: 0.9343 - val_loss: 4.1410 - val_acc: 0.1667\n",
"Epoch 24/30\n",
"594/594 [==============================] - 0s - loss: 0.1846 - acc: 0.9478 - val_loss: 3.2052 - val_acc: 0.2576\n",
"Epoch 25/30\n",
"594/594 [==============================] - 0s - loss: 0.1362 - acc: 0.9747 - val_loss: 3.9548 - val_acc: 0.1667\n",
"Epoch 26/30\n",
"594/594 [==============================] - 0s - loss: 0.1057 - acc: 0.9832 - val_loss: 4.7045 - val_acc: 0.1515\n",
"Epoch 27/30\n",
"594/594 [==============================] - 0s - loss: 0.1118 - acc: 0.9731 - val_loss: 5.9368 - val_acc: 0.0606\n",
"Epoch 28/30\n",
"594/594 [==============================] - 0s - loss: 0.1348 - acc: 0.9680 - val_loss: 4.0281 - val_acc: 0.1970\n",
"Epoch 29/30\n",
"594/594 [==============================] - 0s - loss: 0.0931 - acc: 0.9865 - val_loss: 3.5148 - val_acc: 0.2576\n",
"Epoch 30/30\n",
"594/594 [==============================] - 0s - loss: 0.0597 - acc: 0.9966 - val_loss: 4.0033 - val_acc: 0.2273\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1c1af0748>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x198a775f8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"224/337 [==================>...........] - ETA: 0s\n",
"label = 7\n",
"[2 0 0 0 3 0 0 0 3 0 3 1 3 0 3 2 0 0 3 3 0 2 2 3 2 4 2 3 0 2 3 1 0 2 2 0 2\n",
" 0 0 2 3 0 0 0 3 4 1 0 4 0 2 3 4 4 0 3 3 2 3 0 0 3 3 4 5 0 3 3 3 4 3 3 4 3\n",
" 4 0 3 3 3 4 3 5 1 5 3 3 3 5 5 3 3 3 5 5 3 3 3 2 3 0 1 1 1 1 1 1 1 1 5 1 1\n",
" 1 4 5 1 1 1 4 1 1 1 1 1 5 5 4 1 1 5 1 1 1 1 1 1 5 1 4 5 5 1 4 5 1 5 1 4 1\n",
" 4 5 5 5 1 4 1 1 1 5 5 5 4 5 1 5 5 1 5 5 5 5 5 5 4 5 5 5 5 5 5 1 5 5 5 5 5\n",
" 5 5 5 5 5 5 5 1 5 1 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 2 0 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 4 2 2 2 3 2 2 3 3 2 3 2 2 3 2 0 3 5 2 2 2 3 0 2 2 2 3\n",
" 3 3 3 3 4 3 2 3 3 2 3 3 0 3 2 3 4 3 3 3 3 3 0 3 0 3 3 5 3 2 4 2 3 3 3 2 3\n",
" 3 3 0 3 3 0 3 3 3 3 3 3 4 0 4 4 4 4 4 4 4 4 4 1 5 5 5 5 4 5 5 5 5 5 6 2 5\n",
" 5 5 5 5]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
" 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
" 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3\n",
" 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6\n",
" 6 6 6 6]\n",
"224/337 [==================>...........] - ETA: 0s precision recall f1-score support\n",
"\n",
" 0 0.73 0.27 0.39 100\n",
" 1 0.89 0.43 0.58 95\n",
" 2 0.79 0.55 0.65 100\n",
" 3 0.12 0.83 0.22 12\n",
" 4 0.28 0.77 0.41 13\n",
" 5 0.13 0.90 0.23 10\n",
" 6 1.00 0.14 0.25 7\n",
"\n",
"avg / total 0.74 0.45 0.51 337\n",
"\n"
]
}
],
"source": [
"nb_classes = 7\n",
"batch_size = 64\n",
"nb_epoch = 30\n",
"TRAIN_NUM = 100\n",
"size = 32\n",
"filter_size = 32\n",
"\n",
"def redefine_label(label):\n",
"# if label >= 3:\n",
"# label = 3\n",
" return label\n",
"\n",
"temp_res = make_train_test_data(0, nb_classes)\n",
"for ll in range(1, nb_classes):\n",
" print(ll)\n",
" ll = redefine_label(ll)\n",
" res = make_train_test_data(ll, nb_classes)\n",
" temp_res = [np.concatenate([res1, res2]) for res1, res2 in zip(temp_res, res)]\n",
"\n",
"X_train, X_test, Y_train, Y_test, y_test = temp_res\n",
"\n",
"model = model_compile(nb_classes, verbose=0)\n",
"callbacks = []\n",
"# callbacks.append(EarlyStopping(monitor='val_loss', patience=8, verbose=1, mode='auto'))\n",
"history = model.fit(X_train, Y_train, batch_size=batch_size, epochs=nb_epoch, verbose=1, validation_split=0.1\n",
" ,callbacks=callbacks)\n",
"# 学習履歴をプロット\n",
"plot_history(history)\n",
"print('')\n",
"total_score = model_score(model, X_test, y_test, nb_classes, nb_classes)\n",
"model_score_bi(model, X_test, y_test)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment