view _test_dataset.py @ 7:6f8f338686db

Moved iterating counter into a FiniteDataSetIterator to allow embedded iterations and multiple threads iterating at the same time on a dataset.
author bengioy@bengiomac.local
date Mon, 24 Mar 2008 13:20:15 -0400
parents d5738b79089a
children d1c394486037
line wrap: on
line source

from dataset import *
from math import *
import unittest

def _sum_all(a):
    s=a
    while isinstance(s,numpy.ndarray):
        s=sum(s)
    return s
    
class T_arraydataset(unittest.TestCase):
    def setUp(self):
        numpy.random.seed(123456)

    def test0(self):
        a=ArrayDataSet(data=numpy.random.rand(8,3),fields={"x":slice(2),"y":slice(1,3)},minibatch_size=1)
        s=0
        for example in a:
            print len(example), example.x
            s+=_sum_all(example.x)
        print s
        self.failUnless(abs(s-7.25967597)<1e-6)

    def test1(self):
        a=ArrayDataSet(data=numpy.random.rand(10,4),fields={"x":slice(2),"y":slice(1,4)},minibatch_size=1)
        a.minibatch_size=2
        print a.asarray()
        for mb in a:
            print mb,mb.asarray()
        print "a.y=",a.y
        for mb in ArrayDataSet(data=a.y,minibatch_size=2):
            print mb
            for e in mb:
                print e
        self.failUnless(True)
        
if __name__ == '__main__':
    unittest.main()