In [1]:
import os
from ordereddict import OrderedDict
os.environ['THEANO_FLAGS']="device=cpu"

from utils import tile_raster_images
from pylearn2.utils import serial
import theano
import theano.tensor as T

try:
    import PIL.Image as Image
except ImportError:
    import Image
import IPython.display as I

In [2]:
DIR_DATA = '/Users/vmisra/data/'
dir_model_AE = os.path.join(DIR_DATA,'AE_experiments/models')
dir_model_CAN = os.path.join(DIR_DATA,'CAN_experiments/models')
dir_fuel = os.path.join(DIR_DATA,'fuel')

Load models and data


In [3]:
test_data = serial.load(os.path.join(dir_fuel,'mnist_test_X.pkl'))

In [21]:
model_names = ['CAN_C1','D17']
def model_pathmapper(model_name):
    if model_name.startswith('CAN'):
        testpath = os.path.join(dir_model_CAN,model_name+'.pkl.cmp')
        return testpath
    else:
        testpath_1 = os.path.join(dir_model_AE,model_name+'finetune.pkl')
        testpath_2 = os.path.join(dir_model_AE,model_name+'solotrain.pkl')
        if os.path.exists(testpath_1):
            return testpath_1
        else:
            return testpath_2

In [ ]:
models = OrderedDict()
xhats = OrderedDict()
for model_path,model_name in zip(map(model_pathmapper,model_names),model_name):
    model = serial.load(model_path)
    models[model_name] = model 
    X = model.get_input_space().make_theano_batch()
    Y = model.fprop(X)
    xhats[model_name] = Y.eval({X:test_data})

visualize outputs


In [30]:
original_img = Image.fromarray(tile_raster_images(X=test_data,
                                                  img_shape=(28,28),
                                                  tile_shape=(10,10),
                                                  tile_spacing=(1,1)))
original_img.save('delete_me.png')
print 'original'
I.display(I.Image('delete_me.png'))


original

In [24]:
#model_folders = ['B17','B20']
for model_name in model_names:
    reconstructed = Image.fromarray(tile_raster_images(X=xhats[model_folder][model_name],
                                                  img_shape=(28,28),
                                                  tile_shape=(10,10),
                                                  tile_spacing=(1,1)))
    reconstructed.save('/Users/vmisra/delete_me.png')
    print model_folder, model_name
    I.display(I.Image('/Users/vmisra/delete_me.png'))


B11 finetune.pkl
D17 solotrain.pkl
D16 solotrain.pkl
D13 solotrain.pkl

In [ ]:
import cPickle as pickle
params = [pickle.load(open(os.path.join(dir_model,model_folder,'params.pkl'),'r')) for model_folder in model_folders]

In [ ]:
params