Prepare data


In [2]:
from __future__ import print_function
import numpy as np
from matplotlib import pyplot as plt

In [8]:
with open("../../../basic-neural-network-notebook/mnist_dataset/mnist_test_10.csv#", "r") as data_file:
    data_list = data_file.readlines()

count = 1
for row in data_list:
    values = row.split(",")
    label = values[0]
    image_array = np.asfarray(values[1:]).reshape((28, 28))
    
    plt.imshow(image_array, cmap="Greys", interpolation="None")
    plt.savefig("data/mnist_digits/sample/valid/" + label + "/" + str(count) + ".jpg")
    count = count + 1

Vgg16 for basic image recognition


In [9]:
from __future__ import division, print_function
##import utils; reload(utils)
##from utils import plots
import vgg16; reload(vgg16)
from vgg16 import Vgg16


Using Theano backend.
WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10).  Please switch to the gpuarray backend. You can get more information about how to switch at this URL:
 https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29

Using gpu device 0: Tesla K80 (CNMeM is disabled, cuDNN 5103)

In [31]:
vgg = Vgg16()

In [32]:
batch_size = 64
path = "data/mnist_digits/sample/"

In [33]:
batches = vgg.get_batches(path + "train", batch_size=batch_size)
val_batches = vgg.get_batches(path + "valid", batch_size=batch_size)


Found 101 images belonging to 10 classes.
Found 10 images belonging to 10 classes.

In [34]:
vgg.finetune(batches)

In [36]:
vgg.model.optimizer.lr = 0.01
vgg.fit(batches, val_batches, nb_epoch=10)


Epoch 1/10
101/101 [==============================] - 4s - loss: 7.9990 - acc: 0.4455 - val_loss: 6.4609 - val_acc: 0.6000
Epoch 2/10
101/101 [==============================] - 4s - loss: 8.0895 - acc: 0.3960 - val_loss: 6.6159 - val_acc: 0.5000
Epoch 3/10
101/101 [==============================] - 4s - loss: 8.1155 - acc: 0.4455 - val_loss: 6.4580 - val_acc: 0.6000
Epoch 4/10
101/101 [==============================] - 4s - loss: 7.5789 - acc: 0.4950 - val_loss: 7.6657 - val_acc: 0.4000
Epoch 5/10
101/101 [==============================] - 4s - loss: 8.2343 - acc: 0.3861 - val_loss: 7.2692 - val_acc: 0.4000
Epoch 6/10
101/101 [==============================] - 4s - loss: 7.8978 - acc: 0.4653 - val_loss: 6.5097 - val_acc: 0.6000
Epoch 7/10
101/101 [==============================] - 4s - loss: 7.3871 - acc: 0.5149 - val_loss: 6.4544 - val_acc: 0.6000
Epoch 8/10
101/101 [==============================] - 4s - loss: 7.6164 - acc: 0.4455 - val_loss: 6.4477 - val_acc: 0.6000
Epoch 9/10
101/101 [==============================] - 4s - loss: 7.7473 - acc: 0.4752 - val_loss: 6.4480 - val_acc: 0.6000
Epoch 10/10
101/101 [==============================] - 4s - loss: 7.6395 - acc: 0.4950 - val_loss: 6.4491 - val_acc: 0.6000

In [ ]: