In [1]:
# import modules
%matplotlib inline
import os
import random
import pylab
import pandas as pd
import numpy as np
import cPickle as pkl
from skimage import transform
from lasagne import layers, updates
from scipy.misc import imread, imresize
from lasagne.nonlinearities import softmax
from nolearn.lasagne import NeuralNet, BatchIterator
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import MinMaxScaler
project_root = 'workspace/.project/project'
script_root = os.path.join(os.path.expanduser('~'), project_root, 'scripts')
model_root = os.path.join(os.path.expanduser('~'), project_root, 'models')
data_root = os.path.join(os.path.expanduser('~'), project_root, 'datasets')
chars74k_root = os.path.join(data_root, 'English')
In [9]:
def shiftup(dataset):
return shifted_dataset
In [42]:
# load train_test set
#TODO see why they get distorted
data = pd.read_csv(os.path.join(script_root, 'LISTFILE.txt'), sep = ' ', header = None)
data_x = np.zeros((data.shape[0], 1, 32, 32))
data_y = np.ones((data.shape[0], )).astype('int32')
mms = MinMaxScaler()
for idx, path in enumerate(data[0]):
img = imread(os.path.join(chars74k_root, path))
img = imresize(img, (32, 32))
if len(img.shape) == 3:
data_x[idx, ...] = mms.fit_transform(img.dot([0.299, 0.587, 0.144]))
else:
data_x[idx, ...] = mms.fit_transform(img.astype(float))
data_x = data_x.astype('float32')
train1_x, test1_x, train1_y, test1_y = train_test_split(data_x, data_y, test_size = 0.2)
In [80]:
i = random.randrange(0, train1_x.shape[0])
img = np.reshape(train1_x[i, ...], ( train1_x.shape[2], train1_x.shape[3] ))
pylab.imshow(img)
pylab.gray()
pylab.show()
In [19]:
train1_x.shape
Out[19]:
In [111]:
i = random.randrange(0, train1_x.shape[0])
img = np.reshape(train1_x[i, ...], ( train1_x.shape[2], train1_x.shape[3] ))
tform = transform.SimilarityTransform(translation = (4, 0))
new_img = transform.warp(img, tform)
pylab.imshow(new_img)
pylab.gray()
pylab.show()
In [115]:
train1_x[i, 0, ...].shape
Out[115]:
In [ ]: