Skip to content

Commit

Permalink
datasets
Browse files Browse the repository at this point in the history
  • Loading branch information
Ragav Venkatesan (Student) authored and Ragav Venkatesan (Student) committed Mar 17, 2017
1 parent 8a6618b commit 5f51387
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 46 deletions.
6 changes: 3 additions & 3 deletions pantry/tutorials/gan.py
Original file line number Diff line number Diff line change
Expand Up @@ -1121,7 +1121,7 @@ def deep_deconvolutional_lsgan(dataset,
# from yann.utils.graph import draw_network
# draw_network(net.graph, filename = 'gan.png')
net.pretty_print()

net.cook ( objective_layers = ["classifier_obj", "discriminator_obj", "generator_obj"],
optimizer_params = optimizer_params,
discriminator_layers = ["D1-x", "D2-x","D3-x","D4-x"],
Expand All @@ -1131,11 +1131,11 @@ def deep_deconvolutional_lsgan(dataset,
game_layers = ("D(x)", "D(G(z))"),
verbose = verbose )

learning_rates = (0.04, 0.0001 )
learning_rates = (0.04, 0.01 )

net.train( epochs = (20),
k = 2,
pre_train_discriminator = 1,
pre_train_discriminator = 0,
validate_after_epochs = 1,
visualize_after_epochs = 1,
training_accuracy = True,
Expand Down
60 changes: 17 additions & 43 deletions yann/special/datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ def _mat2yann (self, verbose = 1):
if verbose >= 2:
print ( ".. creating data " + type )

batches = self.batches2train *self.mini_batches_per_batch
batches = self.batches2train
new = True
for batch in xrange(batches): # for each batch_i file....
if verbose >= 3:
Expand Down Expand Up @@ -464,19 +464,13 @@ def _mat2yann (self, verbose = 1):
args = self.preprocessor )

training_sample_size = data_x.shape[0]
training_batches_available = int(numpy.floor(training_sample_size / self.mini_batch_size))
training_mini_batches_available = int(numpy.floor(training_sample_size / self.mini_batch_size))

if training_batches_available < self.batches2train * self.mini_batches_per_batch[0]:
self.mini_batches_per_batch = ( training_batches_available/self.batches2train,
self.mini_batches_per_batch [1],
self.mini_batches_per_batch [2] )

if self.batches2train * self.mini_batches_per_batch[0] < self.cache_images[0]:
self.cache_images = (self.mini_batches_per_batch[0] * self.mini_batch_size, \
self.cache_images[1], self.cache_images[2])

data_x = data_x[:self.cache_images[0]]
data_y = data_y[:self.cache_images[0]]
if training_mini_batches_available < self.batches2train * self.mini_batches_per_batch[0]:
#self.mini_batches_per_batch = ( training_batches_available/self.batches2train,
# self.mini_batches_per_batch [1],
# self.mini_batches_per_batch [2] )
self.batches2train = int(numpy.floor(training_mini_batches_available / self.mini_batches_per_batch[0]))

loc = self.root + "/train/"
data_x = check_type(data_x, theano.config.floatX)
Expand All @@ -489,12 +483,10 @@ def _mat2yann (self, verbose = 1):
pickle_dataset(loc = loc, data = data2save, batch=batch)


batches = self.batches2validate
type = 'valid'
if verbose >= 2:
print ( ".. creating data " + type )

batches = self.batches2validate * self.mini_batches_per_batch
batches = self.batches2validate
new = True
del(data_x)
del(data_y)
Expand Down Expand Up @@ -527,21 +519,12 @@ def _mat2yann (self, verbose = 1):


validation_sample_size = data_x.shape[0]
validation_batches_available = int(numpy.floor(
validation_mini_batches_available = int(numpy.floor(
validation_sample_size / self.mini_batch_size))

if validation_batches_available < self.batches2validate * self.mini_batches_per_batch[1]:
self.mini_batches_per_batch = ( self.mini_batches_per_batch [0],
validation_batches_available/self.batches2validate,
self.mini_batches_per_batch [2] )

if self.batches2validate * self.mini_batches_per_batch[1] < self.cache_images[1]:
self.cache_images = ( self.cache_images[0],\
self.mini_batches_per_batch[1] * self.mini_batch_size, \
self.cache_images[2])

data_x = data_x[:self.cache_images[1]]
data_y = data_y[:self.cache_images[1]]
if validation_mini_batches_available < self.batches2validate * self.mini_batches_per_batch[1]:
self.batches2validate = int(numpy.floor(validation_mini_batches_available \
/ self.mini_batches_per_batch[1]))

loc = self.root + "/valid/"
data_x = check_type(data_x, theano.config.floatX)
Expand All @@ -556,7 +539,7 @@ def _mat2yann (self, verbose = 1):
type = 'train'
if verbose >= 2:
print ( ".. creating data " + type )
batches = self.batches2test * self.mini_batches_per_batch
batches = self.batches2test
new = True
del(data_x)
del(data_y)
Expand Down Expand Up @@ -587,20 +570,11 @@ def _mat2yann (self, verbose = 1):
args = self.preprocessor )

testing_sample_size = data_x.shape[0]
testing_batches_available = int(numpy.floor(testing_sample_size / self.mini_batch_size))

if testing_batches_available < self.batches2test * self.mini_batches_per_batch[2]:
self.mini_batches_per_batch = ( self.mini_batches_per_batch [0],
self.mini_batches_per_batch [1],
testing_batches_available/self.batches2test )

if self.batches2test * self.mini_batches_per_batch[2] < self.cache_images[2]:
self.cache_images = ( self.cache_images[0],\
self.cache_images[1], \
self.mini_batches_per_batch[2] * self.mini_batch_size )
testing_mini_batches_available = int(numpy.floor(testing_sample_size / self.mini_batch_size))

data_x = data_x[:self.cache_images[2]]
data_y = data_y[:self.cache_images[2]]
if testing_mini_batches_available < self.batches2test * self.mini_batches_per_batch[2]:
self.batches2test = int(numpy.floor(testing_mini_batches_available \
/ self.mini_batches_per_batch[2]))

loc = self.root + "/test/"
data_x = check_type(data_x, theano.config.floatX)
Expand Down

0 comments on commit 5f51387

Please sign in to comment.