Mercurial > pylearn
diff dataset.py @ 270:1cafd495098c
code cleanup and small optimisation
author | Frederic Bastien <bastienf@iro.umontreal.ca> |
---|---|
date | Tue, 03 Jun 2008 16:11:59 -0400 |
parents | 8ec867d12428 |
children | 38e7d90a1218 |
line wrap: on
line diff
--- a/dataset.py Tue Jun 03 13:25:40 2008 -0400 +++ b/dataset.py Tue Jun 03 16:11:59 2008 -0400 @@ -1046,32 +1046,31 @@ return self.__dict__[key] def __iter__(self): - class ArrayDataSetIterator2(object): - def __init__(self,dataset,fieldnames,minibatch_size,n_batches,offset): + class ArrayDataSetIteratorIter(object): + def __init__(self,dataset,fieldnames): if fieldnames is None: fieldnames = dataset.fieldNames() # store the resulting minibatch in a lookup-list of values self.minibatch = LookupList(fieldnames,[0]*len(fieldnames)) self.dataset=dataset - self.minibatch_size=minibatch_size - assert offset>=0 and offset<len(dataset.data) - assert offset+minibatch_size<=len(dataset.data) - self.current=offset + assert 1<=len(dataset.data) + self.current=0 self.columns = [self.dataset.fields_columns[f] for f in self.minibatch._names] + self.l = self.dataset.data.shape[0] def __iter__(self): return self def next(self): #@todo: we suppose that we need to stop only when minibatch_size == 1. # Otherwise, MinibatchWrapAroundIterator do it. - if self.current>=self.dataset.data.shape[0]: + if self.current>=self.l: raise StopIteration sub_data = self.dataset.data[self.current] self.minibatch._values = [sub_data[c] for c in self.columns] - self.current+=self.minibatch_size + self.current+=1 return self.minibatch - return ArrayDataSetIterator2(self,self.fieldNames(),1,0,0) + return ArrayDataSetIteratorIter(self,self.fieldNames()) def minibatches_nowrap(self,fieldnames,minibatch_size,n_batches,offset): class ArrayDataSetIterator(object):