In [1]:
import pandas as pd
import numpy as np
import cv2 
import matplotlib.pyplot as plt
import os
import sys

sys.path.append('../source/')

from learn import CNN_Classifier
from preprocessing import augment_data_set

%matplotlib inline

In [2]:
path = "../data/"

data_train = pd.read_csv(os.path.join(path, "train.csv"))
data_train = data_train.set_index(["id"], drop=True)

data_test = pd.read_csv(os.path.join(path, "test.csv"))
data_test = data_test.set_index(["id"], drop=True)

dir_path = "../data/images/"
files =  os.listdir(dir_path)

In [3]:
X_images, X_features, y = augment_data_set(files, data_train, 5, 0.9, 0.9, shuffle=True, IMAGE_DIM=200)

In [4]:
structure = [{"type": "conv", "params" : {"patch_x": 10, "patch_y": 10, "depth": 64, "channels": 1}},
                 {"type" : "pool", "params": {"side": 2, "stride": 2, "pad": "SAME"}},
                 {"type" : "conv", "params" : {"patch_x": 6, "patch_y": 6, "depth": 32, "channels": 64}},
                 {"type" : "pool", "params": {"side": 2, "stride": 2, "pad": "SAME"}},
            {"type" : "dense", "params" : {"n_input": 2500*32 , "n_neurons": 500}}]

classifier = CNN_Classifier(structure=structure, nb_classes=99, img_rows=200, img_cols=200, nb_hidden=(1024,), 
                           nb_features=192)
classifier.fit({"image": X_images, "features": X_features}, y, batch_size=64, nb_epochs=1000, logging_info=20)


Minibatch loss value at step 1: 75.90
Minibatch accuracy: 1.6%
Minibatch loss value at step 21: 4.78
Minibatch accuracy: 1.6%
Minibatch loss value at step 41: 4.67
Minibatch accuracy: 1.6%
Minibatch loss value at step 61: 4.63
Minibatch accuracy: 0.0%
Minibatch loss value at step 81: 4.53
Minibatch accuracy: 6.2%
Minibatch loss value at step 101: 4.50
Minibatch accuracy: 7.8%
Minibatch loss value at step 121: 4.53
Minibatch accuracy: 9.4%
Minibatch loss value at step 141: 4.46
Minibatch accuracy: 18.8%
Minibatch loss value at step 161: 4.42
Minibatch accuracy: 20.3%
Minibatch loss value at step 181: 4.45
Minibatch accuracy: 10.9%
Minibatch loss value at step 201: 4.40
Minibatch accuracy: 29.7%
Minibatch loss value at step 221: 4.44
Minibatch accuracy: 18.8%
Minibatch loss value at step 241: 4.39
Minibatch accuracy: 28.1%
Minibatch loss value at step 261: 4.31
Minibatch accuracy: 32.8%
Minibatch loss value at step 281: 4.26
Minibatch accuracy: 34.4%
Minibatch loss value at step 301: 4.40
Minibatch accuracy: 26.6%
Minibatch loss value at step 321: 4.27
Minibatch accuracy: 23.4%
Minibatch loss value at step 341: 4.21
Minibatch accuracy: 39.1%
Minibatch loss value at step 361: 4.26
Minibatch accuracy: 37.5%
Minibatch loss value at step 381: 4.28
Minibatch accuracy: 31.2%
Minibatch loss value at step 401: 4.08
Minibatch accuracy: 39.1%
Minibatch loss value at step 421: 4.15
Minibatch accuracy: 35.9%
Minibatch loss value at step 441: 4.10
Minibatch accuracy: 42.2%
Minibatch loss value at step 461: 4.23
Minibatch accuracy: 35.9%
Minibatch loss value at step 481: 4.12
Minibatch accuracy: 45.3%
Minibatch loss value at step 501: 4.10
Minibatch accuracy: 48.4%
Minibatch loss value at step 521: 4.03
Minibatch accuracy: 54.7%
Minibatch loss value at step 541: 4.06
Minibatch accuracy: 39.1%
Minibatch loss value at step 561: 4.07
Minibatch accuracy: 53.1%
Minibatch loss value at step 581: 3.93
Minibatch accuracy: 45.3%
Minibatch loss value at step 601: 4.07
Minibatch accuracy: 34.4%
Minibatch loss value at step 621: 3.93
Minibatch accuracy: 57.8%
Minibatch loss value at step 641: 3.96
Minibatch accuracy: 50.0%
Minibatch loss value at step 661: 3.83
Minibatch accuracy: 59.4%
Minibatch loss value at step 681: 4.02
Minibatch accuracy: 46.9%
Minibatch loss value at step 701: 3.86
Minibatch accuracy: 54.7%
Minibatch loss value at step 721: 3.82
Minibatch accuracy: 60.9%
Minibatch loss value at step 741: 3.85
Minibatch accuracy: 53.1%
Minibatch loss value at step 761: 3.82
Minibatch accuracy: 35.9%
Minibatch loss value at step 781: 3.74
Minibatch accuracy: 53.1%
Minibatch loss value at step 801: 3.86
Minibatch accuracy: 46.9%
Minibatch loss value at step 821: 3.69
Minibatch accuracy: 56.2%
Minibatch loss value at step 841: 3.74
Minibatch accuracy: 53.1%
Minibatch loss value at step 861: 3.76
Minibatch accuracy: 60.9%
Minibatch loss value at step 881: 3.50
Minibatch accuracy: 62.5%
Minibatch loss value at step 901: 3.60
Minibatch accuracy: 60.9%
Minibatch loss value at step 921: 3.45
Minibatch accuracy: 53.1%
Minibatch loss value at step 941: 3.53
Minibatch accuracy: 75.0%
Minibatch loss value at step 961: 3.59
Minibatch accuracy: 71.9%
Minibatch loss value at step 981: 3.41
Minibatch accuracy: 57.8%

In [11]:
type(y[0][1])


Out[11]:
numpy.int64

In [ ]: