<s> from __future__ import absolute_import , print_function , division <EOL> import time , copy , sys , unittest <EOL> from nose . plugins . skip import SkipTest <EOL> import numpy <EOL> from six . moves import xrange <EOL> import theano <EOL> import theano . sandbox . cuda as cuda_ndarray <EOL> from theano . tensor . basic import _allclose <EOL> from theano . tests import unittest_tools as utt <EOL> if not cuda_ndarray . cuda_available : <EOL> raise SkipTest ( '<STR_LIT>' ) <EOL> def advantage ( cpu_dt , gpu_dt ) : <EOL> """<STR_LIT>""" <EOL> assert gpu_dt >= <NUM_LIT:0> and cpu_dt >= <NUM_LIT:0> <EOL> if gpu_dt == <NUM_LIT:0> and cpu_dt == <NUM_LIT:0> : <EOL> return numpy . nan <EOL> elif gpu_dt == <NUM_LIT:0> : <EOL> return numpy . inf <EOL> else : <EOL> return cpu_dt / gpu_dt <EOL> def test_host_to_device ( ) : <EOL> for shape in ( ( ) , ( <NUM_LIT:3> , ) , ( <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> ) ) : <EOL> a = theano . _asarray ( numpy . random . rand ( * shape ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> c = numpy . asarray ( b ) <EOL> assert numpy . all ( a == c ) <EOL> d = numpy . asarray ( b , dtype = '<STR_LIT>' ) <EOL> assert numpy . all ( a == d ) <EOL> try : <EOL> numpy . asarray ( b , dtype = '<STR_LIT>' ) <EOL> assert False <EOL> except TypeError : <EOL> pass <EOL> def test_add_iadd_idiv ( ) : <EOL> for shapes in ( <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:5> ) , ( <NUM_LIT:5> , <NUM_LIT:1> ) ] , <EOL> [ ( <NUM_LIT:5> , <NUM_LIT:5> ) , ( <NUM_LIT:1> , <NUM_LIT:5> ) ] , <EOL> ( ) , ( <NUM_LIT:0> , ) , ( <NUM_LIT:3> , ) , ( <NUM_LIT:2> , <NUM_LIT:3> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT> ) , ( <NUM_LIT> , <NUM_LIT:1000> ) , ( <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:6> ) , ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:6> ) , ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:6> ) , ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:6> , <NUM_LIT> ) , <EOL> ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:6> ) , ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:6> ) , ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:6> ) , ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:6> , <NUM_LIT> ) , <EOL> ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT> ) , ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> ) , ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT> , <NUM_LIT> ) , ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:3> ) , <EOL> ( <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:2> ) , <EOL> ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:2> ) , <EOL> ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT> , <NUM_LIT:7> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT> , <NUM_LIT:6> , <NUM_LIT:7> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ) , <EOL> ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ) , <EOL> ) : <EOL> if isinstance ( shapes , tuple ) : <EOL> shape = shapes <EOL> shape2 = shapes <EOL> a0 = theano . _asarray ( numpy . random . rand ( * shape ) , dtype = '<STR_LIT>' ) <EOL> a0_orig = a0 . copy ( ) <EOL> a1 = a0 . copy ( ) <EOL> assert numpy . allclose ( a0 , a1 ) <EOL> else : <EOL> shape = shapes [ <NUM_LIT:0> ] <EOL> shape2 = shapes [ <NUM_LIT:1> ] <EOL> a0 = theano . _asarray ( numpy . random . rand ( * shape ) , dtype = '<STR_LIT>' ) <EOL> a0_orig = a0 . copy ( ) <EOL> a1 = theano . _asarray ( numpy . random . rand ( * shape2 ) , dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> b1 = cuda_ndarray . CudaNdarray ( a1 ) <EOL> assert numpy . allclose ( a0 , numpy . asarray ( b0 ) ) <EOL> assert numpy . allclose ( a1 , numpy . asarray ( b1 ) ) <EOL> if shape == shape2 : <EOL> t0 = time . time ( ) <EOL> bsum = b0 + b1 <EOL> bsum = b0 + b1 <EOL> t1 = time . time ( ) <EOL> gpu_dt = t1 - t0 <EOL> t0 = time . time ( ) <EOL> asum = a0 + a1 <EOL> asum = a0 + a1 <EOL> t1 = time . time ( ) <EOL> cpu_dt = t1 - t0 <EOL> assert numpy . allclose ( asum , numpy . asarray ( bsum ) ) <EOL> a0 = a0_orig . copy ( ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> if len ( shape ) == <NUM_LIT:0> : <EOL> continue <EOL> elif len ( shape ) == <NUM_LIT:1> : <EOL> _b = b1 [ : : - <NUM_LIT:1> ] <EOL> elif len ( shape ) == <NUM_LIT:2> : <EOL> _b = b1 [ : : , : : - <NUM_LIT:1> ] <EOL> elif len ( shape ) == <NUM_LIT:3> : <EOL> _b = b1 [ : : , : : , : : - <NUM_LIT:1> ] <EOL> elif len ( shape ) == <NUM_LIT:4> : <EOL> _b = b1 [ : : , : : , : : , : : - <NUM_LIT:1> ] <EOL> elif len ( shape ) == <NUM_LIT:5> : <EOL> _b = b1 [ : : , : : , : : , : : , : : - <NUM_LIT:1> ] <EOL> elif len ( shape ) == <NUM_LIT:6> : <EOL> _b = b1 [ : : , : : , : : , : : , : : , : : - <NUM_LIT:1> ] <EOL> else : <EOL> raise Exception ( "<STR_LIT>" ) <EOL> if shape == shape2 : <EOL> t = False <EOL> try : <EOL> _c = _b + b1 <EOL> except TypeError : <EOL> t = True <EOL> assert t <EOL> t0 = time . time ( ) <EOL> b0 += b1 <EOL> t1 = time . time ( ) <EOL> gpu_dt = t1 - t0 <EOL> t0 = time . time ( ) <EOL> a0 += a1 <EOL> t1 = time . time ( ) <EOL> cpu_dt = t1 - t0 <EOL> assert numpy . allclose ( a0 , numpy . asarray ( b0 ) ) <EOL> assert numpy . allclose ( a0 , a0_orig + a1 ) <EOL> b0 /= b1 <EOL> a0 /= a1 <EOL> assert numpy . allclose ( a0 , numpy . asarray ( b0 ) ) <EOL> assert numpy . allclose ( a0 , ( a0_orig + a1 ) / a1 ) <EOL> b0 += _b <EOL> a0 += a1 [ ... , : : - <NUM_LIT:1> ] <EOL> assert numpy . allclose ( a0 , numpy . asarray ( b0 ) ) <EOL> assert numpy . allclose ( a0 , ( a0_orig + a1 ) / a1 + a1 [ ... , : : - <NUM_LIT:1> ] ) <EOL> b0 /= _b <EOL> a0 /= a1 [ ... , : : - <NUM_LIT:1> ] <EOL> assert numpy . allclose ( a0 , numpy . asarray ( b0 ) ) <EOL> assert numpy . allclose ( a0 , ( ( a0_orig + a1 ) / a1 + <EOL> a1 [ ... , : : - <NUM_LIT:1> ] ) / a1 [ ... , : : - <NUM_LIT:1> ] ) <EOL> def test_exp ( ) : <EOL> for shape in ( ( ) , ( <NUM_LIT:3> , ) , ( <NUM_LIT:2> , <NUM_LIT:3> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT> ) , ( <NUM_LIT:10> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:100> , <NUM_LIT> ) , ( <NUM_LIT:1000> , <NUM_LIT> ) , ( <NUM_LIT> , <NUM_LIT:1000> ) ) : <EOL> a0 = theano . _asarray ( numpy . random . rand ( * shape ) , dtype = '<STR_LIT>' ) <EOL> a1 = a0 . copy ( ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> b1 = cuda_ndarray . CudaNdarray ( a1 ) <EOL> t0 = time . time ( ) <EOL> bsum = b0 . exp ( ) <EOL> t1 = time . time ( ) <EOL> gpu_dt = t1 - t0 <EOL> t0 = time . time ( ) <EOL> asum = numpy . exp ( a1 ) <EOL> t1 = time . time ( ) <EOL> cpu_dt = t1 - t0 <EOL> if asum . shape : <EOL> assert numpy . allclose ( asum , numpy . asarray ( bsum ) ) <EOL> def test_copy ( ) : <EOL> shape = ( <NUM_LIT> , <NUM_LIT> ) <EOL> a = theano . _asarray ( numpy . random . rand ( * shape ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> c = copy . copy ( b ) <EOL> d = copy . deepcopy ( b ) <EOL> assert numpy . allclose ( a , numpy . asarray ( b ) ) <EOL> assert numpy . allclose ( a , numpy . asarray ( c ) ) <EOL> assert numpy . allclose ( a , numpy . asarray ( d ) ) <EOL> b += b <EOL> assert numpy . allclose ( a + a , numpy . asarray ( b ) ) <EOL> assert numpy . allclose ( a + a , numpy . asarray ( c ) ) <EOL> assert numpy . allclose ( a , numpy . asarray ( d ) ) <EOL> def test_nvcc_bug ( ) : <EOL> """<STR_LIT>""" <EOL> shape = ( <NUM_LIT:5> , <NUM_LIT:4> ) <EOL> aa = theano . _asarray ( numpy . random . rand ( * shape ) , dtype = '<STR_LIT>' ) <EOL> a = aa [ : : , : : - <NUM_LIT:1> ] <EOL> b = cuda_ndarray . CudaNdarray ( aa ) [ : : , : : - <NUM_LIT:1> ] <EOL> c = copy . copy ( b ) <EOL> d = copy . deepcopy ( b ) <EOL> assert numpy . allclose ( a , numpy . asarray ( b ) ) <EOL> assert numpy . allclose ( a , numpy . asarray ( c ) ) <EOL> assert numpy . allclose ( a , numpy . asarray ( d ) ) <EOL> b += b <EOL> assert numpy . allclose ( a + a , numpy . asarray ( b ) ) <EOL> assert numpy . allclose ( a + a , numpy . asarray ( c ) ) <EOL> assert numpy . allclose ( a , numpy . asarray ( d ) ) <EOL> class test_DimShuffle ( unittest . TestCase ) : <EOL> def test_dimshuffle ( self ) : <EOL> utt . seed_rng ( ) <EOL> rng = numpy . random . RandomState ( utt . fetch_seed ( ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:1> , <NUM_LIT:1> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( numpy . transpose ( a ) , <EOL> cuda_ndarray . dimshuffle ( b , ( ) ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:2> , <NUM_LIT:1> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> self . assertRaises ( ValueError , cuda_ndarray . dimshuffle , b , ( ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:2> , <NUM_LIT:1> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> self . assertRaises ( ValueError , cuda_ndarray . dimshuffle , b , ( <NUM_LIT:1> , <NUM_LIT:1> ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:3> , ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( numpy . transpose ( a ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:0> , ) ) ) <EOL> assert numpy . allclose ( a [ None , : , None ] , <EOL> cuda_ndarray . dimshuffle ( b , ( - <NUM_LIT:1> , <NUM_LIT:0> , - <NUM_LIT:1> ) ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:3> , <NUM_LIT:11> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( numpy . transpose ( a ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:1> , <NUM_LIT:0> ) ) ) <EOL> assert numpy . allclose ( numpy . transpose ( a ) [ None , : , None , : , None ] , <EOL> cuda_ndarray . dimshuffle ( b , ( - <NUM_LIT:1> , <NUM_LIT:1> , - <NUM_LIT:1> , <NUM_LIT:0> , - <NUM_LIT:1> ) ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:1> , <NUM_LIT:11> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( a [ : ] , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:1> , ) ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:11> , <NUM_LIT:1> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( a . reshape ( ( <NUM_LIT:11> , ) ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:0> , ) ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( a , cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:1> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:2> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:2> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:2> , <NUM_LIT:1> , <NUM_LIT:0> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:1> , <NUM_LIT:2> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:1> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:1> , <NUM_LIT:2> ) [ None , : , None , : , : , None ] , <EOL> cuda_ndarray . dimshuffle ( b , ( - <NUM_LIT:1> , <NUM_LIT:0> , - <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:1> , - <NUM_LIT:1> ) ) ) <EOL> a = theano . _asarray ( rng . randn ( <NUM_LIT:3> , <NUM_LIT:11> , <NUM_LIT:4> , <NUM_LIT:5> ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:1> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:2> , <NUM_LIT:3> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:2> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:2> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:3> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:3> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:3> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:3> ) , <EOL> cuda_ndarray . dimshuffle ( b , ( <NUM_LIT:3> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> ) ) ) <EOL> assert numpy . allclose ( numpy . swapaxes ( a , <NUM_LIT:0> , <NUM_LIT:3> ) [ None , : , None , : , : , : ] , <EOL> cuda_ndarray . dimshuffle ( b , ( - <NUM_LIT:1> , <NUM_LIT:3> , - <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> ) ) ) <EOL> def test_dot ( ) : <EOL> utt . seed_rng ( ) <EOL> rng = numpy . random . RandomState ( utt . fetch_seed ( ) ) <EOL> a0 = theano . _asarray ( rng . randn ( <NUM_LIT:4> , <NUM_LIT:7> ) , dtype = '<STR_LIT>' ) <EOL> a1 = theano . _asarray ( rng . randn ( <NUM_LIT:7> , <NUM_LIT:6> ) , dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> b1 = cuda_ndarray . CudaNdarray ( a1 ) <EOL> assert _allclose ( numpy . dot ( a0 , a1 ) , cuda_ndarray . dot ( b0 , b1 ) ) <EOL> a1 = theano . _asarray ( rng . randn ( <NUM_LIT:6> , <NUM_LIT:7> ) , dtype = '<STR_LIT>' ) <EOL> b1 = cuda_ndarray . CudaNdarray ( a1 ) <EOL> numpy_version = numpy . dot ( a0 , a1 . T ) <EOL> transposed = cuda_ndarray . dimshuffle ( b1 , ( <NUM_LIT:1> , <NUM_LIT:0> ) ) <EOL> cuda_version = cuda_ndarray . dot ( b0 , transposed ) <EOL> assert _allclose ( numpy_version , cuda_version ) <EOL> a1 = theano . _asarray ( rng . randn ( <NUM_LIT:7> , <NUM_LIT:6> ) , dtype = '<STR_LIT>' ) <EOL> b1 = cuda_ndarray . CudaNdarray ( a1 ) <EOL> a0 = theano . _asarray ( rng . randn ( <NUM_LIT:7> , <NUM_LIT:4> ) , dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> assert _allclose ( numpy . dot ( a0 . T , a1 ) , <EOL> cuda_ndarray . dot ( cuda_ndarray . dimshuffle ( b0 , ( <NUM_LIT:1> , <NUM_LIT:0> ) ) , b1 ) ) <EOL> a1 = theano . _asarray ( rng . randn ( <NUM_LIT:6> , <NUM_LIT:7> ) , dtype = '<STR_LIT>' ) <EOL> b1 = cuda_ndarray . CudaNdarray ( a1 ) <EOL> assert _allclose ( numpy . dot ( a0 . T , a1 . T ) , <EOL> cuda_ndarray . dot ( cuda_ndarray . dimshuffle ( b0 , ( <NUM_LIT:1> , <NUM_LIT:0> ) ) , <EOL> cuda_ndarray . dimshuffle ( b1 , ( <NUM_LIT:1> , <NUM_LIT:0> ) ) ) ) <EOL> def test_sum ( ) : <EOL> shape = ( <NUM_LIT:2> , <NUM_LIT:3> ) <EOL> a0 = theano . _asarray ( numpy . arange ( shape [ <NUM_LIT:0> ] * shape [ <NUM_LIT:1> ] ) . reshape ( shape ) , <EOL> dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> assert numpy . allclose ( a0 . sum ( ) , <EOL> numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:1> , <NUM_LIT:1> ] ) ) ) <EOL> a0sum = a0 . sum ( axis = <NUM_LIT:0> ) <EOL> b0sum = b0 . reduce_sum ( [ <NUM_LIT:1> , <NUM_LIT:0> ] ) <EOL> assert numpy . allclose ( a0 . sum ( axis = <NUM_LIT:0> ) , <EOL> numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:1> , <NUM_LIT:0> ] ) ) ) <EOL> assert numpy . allclose ( a0 . sum ( axis = <NUM_LIT:1> ) , <EOL> numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:0> , <NUM_LIT:1> ] ) ) ) <EOL> assert numpy . allclose ( a0 , numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:0> , <NUM_LIT:0> ] ) ) ) <EOL> shape = ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> ) <EOL> a0 = theano . _asarray ( numpy . arange ( <NUM_LIT:3> * <NUM_LIT:4> * <NUM_LIT:5> * <NUM_LIT:6> * <NUM_LIT:7> * <NUM_LIT:8> ) . reshape ( shape ) , <EOL> dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> assert numpy . allclose ( a0 . sum ( axis = <NUM_LIT:5> ) . sum ( axis = <NUM_LIT:3> ) . sum ( axis = <NUM_LIT:0> ) , <EOL> numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:1> ] ) ) ) <EOL> shape = ( <NUM_LIT:16> , <NUM_LIT> ) <EOL> a0 = theano . _asarray ( numpy . arange ( <NUM_LIT:16> * <NUM_LIT> ) . reshape ( shape ) , <EOL> dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> assert numpy . allclose ( a0 . sum ( axis = <NUM_LIT:0> ) , numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:1> , <NUM_LIT:0> ] ) ) ) <EOL> shape = ( <NUM_LIT:16> , <NUM_LIT:10> ) <EOL> a0 = theano . _asarray ( numpy . arange ( <NUM_LIT> ) . reshape ( shape ) , dtype = '<STR_LIT>' ) <EOL> b0 = cuda_ndarray . CudaNdarray ( a0 ) <EOL> assert numpy . allclose ( a0 . sum ( ) , numpy . asarray ( b0 . reduce_sum ( [ <NUM_LIT:1> , <NUM_LIT:1> ] ) ) ) <EOL> def test_reshape ( ) : <EOL> shapelist = [ <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) ) , <EOL> ( ( <NUM_LIT:1> , ) , ( <NUM_LIT:1> , ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:1> ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:6> , ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:6> , <NUM_LIT:2> ) ) , <EOL> ( ( <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:6> , <NUM_LIT:2> ) ) , <EOL> ( ( <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:12> , ) ) <EOL> ] <EOL> bad_shapelist = [ <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:4> ) ) , <EOL> ( ( <NUM_LIT:1> , ) , ( <NUM_LIT:2> , ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:1> ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:5> , ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:6> , <NUM_LIT:3> ) ) , <EOL> ( ( <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:5> , <NUM_LIT:2> ) ) , <EOL> ( ( <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:11> , ) ) <EOL> ] <EOL> utt . seed_rng ( ) <EOL> rng = numpy . random . RandomState ( utt . fetch_seed ( ) ) <EOL> def subtest ( shape_1 , shape_2 , rng ) : <EOL> a = theano . _asarray ( rng . randn ( * shape_1 ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> aa = a . reshape ( shape_2 ) <EOL> bb = b . reshape ( shape_2 ) <EOL> n_bb = numpy . asarray ( bb ) <EOL> assert numpy . all ( aa == n_bb ) <EOL> assert aa . shape == n_bb . shape <EOL> shape_1_2x = ( shape_1 [ <NUM_LIT:0> ] * <NUM_LIT:2> , ) + shape_1 [ <NUM_LIT:1> : ] <EOL> a = theano . _asarray ( rng . randn ( * shape_1_2x ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> a = a [ : : <NUM_LIT:2> ] <EOL> b = b [ : : <NUM_LIT:2> ] <EOL> aa = a . reshape ( shape_2 ) <EOL> bb = b . reshape ( shape_2 ) <EOL> n_bb = numpy . asarray ( bb ) <EOL> assert numpy . all ( aa == n_bb ) <EOL> assert aa . shape == n_bb . shape <EOL> def bad_subtest ( shape_1 , shape_2 , rng ) : <EOL> a = theano . _asarray ( rng . randn ( * shape_1 ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> try : <EOL> bb = b . reshape ( shape_2 ) <EOL> except Exception as ValueError : <EOL> return <EOL> assert False <EOL> for shape_1 , shape_2 in shapelist : <EOL> subtest ( shape_1 , shape_2 , rng ) <EOL> subtest ( shape_2 , shape_1 , rng ) <EOL> for shape_1 , shape_2 in bad_shapelist : <EOL> bad_subtest ( shape_1 , shape_2 , rng ) <EOL> bad_subtest ( shape_2 , shape_1 , rng ) <EOL> def test_getshape ( ) : <EOL> shapelist = [ <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) ) , <EOL> ( ( <NUM_LIT:1> , ) , ( <NUM_LIT:1> , ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:1> ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ) , ( <NUM_LIT:6> , ) ) , <EOL> ( ( <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:6> , <NUM_LIT:2> ) ) , <EOL> ( ( <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:6> , <NUM_LIT:2> ) ) <EOL> ] <EOL> def subtest ( shape ) : <EOL> a = theano . _asarray ( numpy . random . rand ( * shape_1 ) , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> assert b . shape == a . shape <EOL> for shape_1 , shape_2 in shapelist : <EOL> subtest ( shape_1 ) <EOL> subtest ( shape_2 ) <EOL> def test_stride_manipulation ( ) : <EOL> a = theano . _asarray ( [ [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] , [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] ] , dtype = '<STR_LIT>' ) <EOL> b = cuda_ndarray . CudaNdarray ( a ) <EOL> v = b . view ( ) <EOL> v . _dev_data += <NUM_LIT:0> <EOL> c = numpy . asarray ( v ) <EOL> assert numpy . all ( a == c ) <EOL> sizeof_float = <NUM_LIT:4> <EOL> offset = <NUM_LIT:0> <EOL> b_strides = b . _strides <EOL> for i in xrange ( len ( b . shape ) ) : <EOL> offset += ( b . shape [ i ] - <NUM_LIT:1> ) * b_strides [ i ] <EOL> v . _set_stride ( i , - b_strides [ i ] ) <EOL> v . _dev_data += offset * sizeof_float <EOL> c = numpy . asarray ( v ) <EOL> assert numpy . all ( c == [ [ <NUM_LIT:5> , <NUM_LIT:4> , <NUM_LIT:3> ] , [ <NUM_LIT:2> , <NUM_LIT:1> , <NUM_LIT:0> ] ] ) <EOL> def test_subtensor_broadcastable ( ) : <EOL> a = numpy . zeros ( ( <NUM_LIT:2> , <NUM_LIT:7> ) , dtype = '<STR_LIT>' ) <EOL> cuda_a = cuda_ndarray . CudaNdarray ( a ) <EOL> sub_a = cuda_a [ <NUM_LIT:1> : ] <EOL> assert sub_a . shape == ( <NUM_LIT:1> , <NUM_LIT:7> ) <EOL> assert sub_a . _strides [ <NUM_LIT:0> ] == <NUM_LIT:0> <EOL> def test_copy_subtensor0 ( ) : <EOL> sizeof_float = <NUM_LIT:4> <EOL> a = theano . _asarray ( numpy . random . rand ( <NUM_LIT:30> , <NUM_LIT:20> , <NUM_LIT:5> , <NUM_LIT:5> ) , dtype = '<STR_LIT>' ) <EOL> cuda_a = cuda_ndarray . CudaNdarray ( a ) <EOL> a_view = cuda_a . view ( ) <EOL> a_view_strides = a_view . _strides <EOL> a_view . _set_stride ( <NUM_LIT:2> , - a_view_strides [ <NUM_LIT:2> ] ) <EOL> a_view . _set_stride ( <NUM_LIT:3> , - a_view_strides [ <NUM_LIT:3> ] ) <EOL> a_view . _dev_data += <NUM_LIT> * sizeof_float <EOL> a_view_copy = copy . deepcopy ( a_view ) <EOL> assert numpy . all ( a [ : , : , : : - <NUM_LIT:1> , : : - <NUM_LIT:1> ] == numpy . asarray ( a_view_copy ) ) <EOL> def test_mapping_getitem_ellipsis ( ) : <EOL> a = theano . _asarray ( numpy . random . rand ( <NUM_LIT:5> , <NUM_LIT:4> , <NUM_LIT:3> , <NUM_LIT:2> ) , dtype = '<STR_LIT>' ) <EOL> a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = a [ ... ] <EOL> assert b . _dev_data == a . _dev_data <EOL> assert b . _strides == a . _strides <EOL> assert b . shape == a . shape <EOL> def test_mapping_getitem_reverse_some_dims ( ) : <EOL> dim = ( <NUM_LIT:5> , <NUM_LIT:4> , <NUM_LIT:3> , <NUM_LIT:2> ) <EOL> a = theano . _asarray ( numpy . random . rand ( * dim ) , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> _b = _a [ : , : , : : - <NUM_LIT:1> , : : - <NUM_LIT:1> ] <EOL> b = numpy . asarray ( _b ) <EOL> assert numpy . all ( b == a [ : , : , : : - <NUM_LIT:1> , : : - <NUM_LIT:1> ] ) <EOL> def test_mapping_getitem_w_int ( ) : <EOL> def _cmp ( x , y ) : <EOL> assert x . shape == y . shape <EOL> if not numpy . all ( x == y ) : <EOL> print ( x ) <EOL> print ( y ) <EOL> assert numpy . all ( x == y ) <EOL> def _cmpf ( x , * y ) : <EOL> try : <EOL> x . __getitem__ ( y ) <EOL> except IndexError : <EOL> pass <EOL> else : <EOL> raise Exception ( "<STR_LIT>" ) <EOL> def _cmpfV ( x , * y ) : <EOL> try : <EOL> if len ( y ) == <NUM_LIT:1> : <EOL> x . __getitem__ ( * y ) <EOL> else : <EOL> x . __getitem__ ( y ) <EOL> except ValueError : <EOL> pass <EOL> else : <EOL> raise Exception ( "<STR_LIT>" ) <EOL> dim = ( <NUM_LIT:2> , ) <EOL> a = theano . _asarray ( numpy . random . rand ( * dim ) , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> _cmp ( numpy . asarray ( _a [ <NUM_LIT:1> ] ) , a [ <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ - <NUM_LIT:1> ] ) , a [ - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ <NUM_LIT:0> ] ) , a [ <NUM_LIT:0> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : : <NUM_LIT:1> ] ) , a [ : : <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : : - <NUM_LIT:1> ] ) , a [ : : - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ ... ] ) , a [ ... ] ) <EOL> _cmpf ( _a , <NUM_LIT:2> ) <EOL> dim = ( ) <EOL> a = theano . _asarray ( numpy . random . rand ( * dim ) , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> _cmp ( numpy . asarray ( _a [ ... ] ) , a [ ... ] ) <EOL> _cmpf ( _a , <NUM_LIT:0> ) <EOL> _cmpfV ( _a , slice ( <NUM_LIT:1> ) ) <EOL> dim = ( <NUM_LIT:5> , <NUM_LIT:4> , <NUM_LIT:3> , <NUM_LIT:2> ) <EOL> a = theano . _asarray ( numpy . random . rand ( * dim ) , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> _cmpf ( _a , slice ( - <NUM_LIT:1> ) , slice ( - <NUM_LIT:1> ) , <NUM_LIT:10> , - <NUM_LIT:10> ) <EOL> _cmpf ( _a , slice ( - <NUM_LIT:1> ) , slice ( - <NUM_LIT:1> ) , - <NUM_LIT:10> , slice ( - <NUM_LIT:1> ) ) <EOL> _cmpf ( _a , <NUM_LIT:0> , slice ( <NUM_LIT:0> , - <NUM_LIT:1> , - <NUM_LIT:20> ) , - <NUM_LIT:10> ) <EOL> _cmpf ( _a , <NUM_LIT:10> ) <EOL> _cmpf ( _a , ( <NUM_LIT:10> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ) ) <EOL> _cmpf ( _a , - <NUM_LIT:10> ) <EOL> _cmp ( numpy . asarray ( _a [ <NUM_LIT:1> ] ) , a [ <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ - <NUM_LIT:1> ] ) , a [ - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ numpy . int64 ( <NUM_LIT:1> ) ] ) , a [ numpy . int64 ( <NUM_LIT:1> ) ] ) <EOL> _cmp ( numpy . asarray ( _a [ numpy . int64 ( - <NUM_LIT:1> ) ] ) , a [ numpy . int64 ( - <NUM_LIT:1> ) ] ) <EOL> _cmp ( numpy . asarray ( _a [ <NUM_LIT:1> : ] ) , a [ <NUM_LIT:1> : ] ) <EOL> _cmp ( numpy . asarray ( _a [ <NUM_LIT:1> : <NUM_LIT:2> ] ) , a [ <NUM_LIT:1> : <NUM_LIT:2> ] ) <EOL> _cmp ( numpy . asarray ( _a [ - <NUM_LIT:1> : <NUM_LIT:1> ] ) , a [ - <NUM_LIT:1> : <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : , : : numpy . int64 ( - <NUM_LIT:1> ) , : : - <NUM_LIT:1> ] ) , a [ : , : , : : - <NUM_LIT:1> , : : - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : , numpy . int64 ( <NUM_LIT:1> ) , - <NUM_LIT:1> ] ) , a [ : , : , <NUM_LIT:1> , - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : , : : - <NUM_LIT:1> , : : - <NUM_LIT:1> ] ) , a [ : , : , : : - <NUM_LIT:1> , : : - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : , : : - <NUM_LIT:10> , : : - <NUM_LIT:10> ] ) , a [ : , : , : : - <NUM_LIT:10> , : : - <NUM_LIT:10> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : , <NUM_LIT:1> , - <NUM_LIT:1> ] ) , a [ : , : , <NUM_LIT:1> , - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : , - <NUM_LIT:1> , : ] ) , a [ : , : , - <NUM_LIT:1> , : ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : : - <NUM_LIT:2> , - <NUM_LIT:1> , : ] ) , a [ : , : : - <NUM_LIT:2> , - <NUM_LIT:1> , : ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : : - <NUM_LIT:20> , - <NUM_LIT:1> , : ] ) , a [ : , : : - <NUM_LIT:20> , - <NUM_LIT:1> , : ] ) <EOL> _cmp ( numpy . asarray ( _a [ : , : : - <NUM_LIT:2> , - <NUM_LIT:1> ] ) , a [ : , : : - <NUM_LIT:2> , - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ <NUM_LIT:0> , : : - <NUM_LIT:2> , - <NUM_LIT:1> ] ) , a [ <NUM_LIT:0> , : : - <NUM_LIT:2> , - <NUM_LIT:1> ] ) <EOL> _cmp ( numpy . asarray ( _a [ - <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:2> ] ) , a [ - <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:1> , - <NUM_LIT:2> ] ) <EOL> _cmp ( numpy . asarray ( _a [ ... ] ) , a [ ... ] ) <EOL> def test_gemm_vector_vector ( ) : <EOL> a = theano . _asarray ( numpy . random . rand ( <NUM_LIT:5> , <NUM_LIT:1> ) , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( numpy . random . rand ( <NUM_LIT:1> , <NUM_LIT:5> ) , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _c = cuda_ndarray . dot ( _a , _b ) <EOL> assert _c . shape == ( <NUM_LIT:5> , <NUM_LIT:5> ) <EOL> assert numpy . allclose ( _c , numpy . dot ( a , b ) ) <EOL> _c = cuda_ndarray . dot ( _b , _a ) <EOL> assert _c . shape == ( <NUM_LIT:1> , <NUM_LIT:1> ) <EOL> assert numpy . allclose ( _c , numpy . dot ( b , a ) ) <EOL> def test_setitem_matrixscalar0 ( ) : <EOL> a = theano . _asarray ( [ [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] , [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] ] , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( <NUM_LIT:8> , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _a [ <NUM_LIT:1> , <NUM_LIT:1> ] = _b <EOL> a [ <NUM_LIT:1> , <NUM_LIT:1> ] = b <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> _a [ <NUM_LIT:1> , <NUM_LIT:1> ] = theano . _asarray ( <NUM_LIT> , dtype = '<STR_LIT>' ) <EOL> a [ <NUM_LIT:1> , <NUM_LIT:1> ] = theano . _asarray ( <NUM_LIT> , dtype = '<STR_LIT>' ) <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> _a [ <NUM_LIT:1> , <NUM_LIT:1> ] = <NUM_LIT:0> <EOL> _a [ <NUM_LIT:0> : <NUM_LIT:2> ] = <NUM_LIT:0> <EOL> _a [ <NUM_LIT:1> : ] = <NUM_LIT:0> <EOL> def test_setitem_matrixvector1 ( ) : <EOL> a = theano . _asarray ( [ [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] , [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] ] , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:8> , <NUM_LIT:9> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _a [ : , <NUM_LIT:1> ] = _b <EOL> a [ : , <NUM_LIT:1> ] = b <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> _a [ : , <NUM_LIT:1> ] = b * <NUM_LIT:100> <EOL> a [ : , <NUM_LIT:1> ] = b * <NUM_LIT:100> <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> row = theano . _asarray ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , dtype = '<STR_LIT>' ) <EOL> _a [ <NUM_LIT:1> , : ] = row <EOL> a [ <NUM_LIT:1> , : ] = row <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> def test_setitem_matrix_tensor3 ( ) : <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _a [ : , <NUM_LIT:1> , <NUM_LIT:1> ] = _b <EOL> a [ : , <NUM_LIT:1> , <NUM_LIT:1> ] = b <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> _a [ : , <NUM_LIT:1> , <NUM_LIT:1> ] = b * <NUM_LIT:100> <EOL> a [ : , <NUM_LIT:1> , <NUM_LIT:1> ] = b * <NUM_LIT:100> <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> row = theano . _asarray ( [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , dtype = '<STR_LIT>' ) <EOL> _a [ <NUM_LIT:1> , <NUM_LIT:1> , : ] = row <EOL> a [ <NUM_LIT:1> , <NUM_LIT:1> , : ] = row <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> def test_setitem_from_numpy_error ( ) : <EOL> pass <EOL> def test_setitem_matrix_bad_shape ( ) : <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> try : <EOL> _a [ : , <NUM_LIT:1> , <NUM_LIT:1> ] = _b <EOL> assert False <EOL> except ValueError as e : <EOL> assert True <EOL> try : <EOL> _a [ <NUM_LIT:1> , <NUM_LIT:1> , : ] = b <EOL> assert False <EOL> except ValueError as e : <EOL> assert True <EOL> def test_setitem_matrix_bad_ndim ( ) : <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> try : <EOL> _a [ : , : , <NUM_LIT:1> ] = _b <EOL> assert False <EOL> except ValueError as e : <EOL> assert True <EOL> try : <EOL> _a [ <NUM_LIT:1> , : , : ] = b <EOL> assert False <EOL> except ValueError as e : <EOL> assert True <EOL> def test_setitem_matrix_bad_type ( ) : <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> ] , dtype = '<STR_LIT>' ) <EOL> try : <EOL> _a [ <NUM_LIT:1> , : , : ] = b <EOL> assert False <EOL> except TypeError as e : <EOL> assert True <EOL> def test_setitem_assign_to_slice ( ) : <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _c = _a [ : , : , <NUM_LIT:1> ] <EOL> _c [ : , <NUM_LIT:1> ] = _b <EOL> a [ : , : , <NUM_LIT:1> ] [ : , <NUM_LIT:1> ] = b <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> _d = _a [ <NUM_LIT:1> , : , : ] <EOL> _d [ <NUM_LIT:1> , : ] = b * <NUM_LIT:10> <EOL> a [ <NUM_LIT:1> , : , : ] [ <NUM_LIT:1> , : ] = b * <NUM_LIT:10> <EOL> assert numpy . allclose ( a , numpy . asarray ( _a ) ) <EOL> def test_setitem_broadcast ( ) : <EOL> a = numpy . arange ( <NUM_LIT:3> ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( <NUM_LIT:9> , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _a [ : ] = _b . reshape ( ( <NUM_LIT:1> , ) ) <EOL> a [ : ] = b . reshape ( ( <NUM_LIT:1> , ) ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> a = numpy . arange ( <NUM_LIT:9> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> _a [ : , : ] = _b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> a [ : , : ] = b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> ] ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) [ <NUM_LIT:0> ] <EOL> b = b [ <NUM_LIT:0> ] <EOL> _a [ : , : , <NUM_LIT:1> ] = _b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> a [ : , : , <NUM_LIT:1> ] = b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> def test_setitem_broadcast_numpy ( ) : <EOL> a = numpy . arange ( <NUM_LIT:3> ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( <NUM_LIT:9> , dtype = '<STR_LIT>' ) <EOL> _a [ : ] = b . reshape ( ( <NUM_LIT:1> , ) ) <EOL> a [ : ] = b . reshape ( ( <NUM_LIT:1> , ) ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> a = numpy . arange ( <NUM_LIT:9> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , dtype = '<STR_LIT>' ) <EOL> _a [ : , : ] = b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> a [ : , : ] = b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> a = numpy . arange ( <NUM_LIT> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> ] ] , dtype = '<STR_LIT>' ) <EOL> b = b [ <NUM_LIT:0> ] <EOL> _a [ <NUM_LIT:1> , : , : ] = b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> a [ <NUM_LIT:1> , : , : ] = b . reshape ( ( <NUM_LIT:1> , <NUM_LIT:3> ) ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> def test_setitem_rightvalue_ndarray_fails ( ) : <EOL> """<STR_LIT>""" <EOL> a = numpy . arange ( <NUM_LIT:3> * <NUM_LIT:4> * <NUM_LIT:5> ) <EOL> a . resize ( ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ) ) <EOL> a = theano . _asarray ( a , dtype = '<STR_LIT>' ) <EOL> _a = cuda_ndarray . CudaNdarray ( a ) <EOL> b = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> ] , dtype = '<STR_LIT>' ) <EOL> _b = cuda_ndarray . CudaNdarray ( b ) <EOL> b5 = theano . _asarray ( [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> ] , dtype = '<STR_LIT>' ) <EOL> _b5 = cuda_ndarray . CudaNdarray ( b ) <EOL> _a [ : , : , <NUM_LIT:1> ] = _b <EOL> a [ : , : , <NUM_LIT:1> ] = b <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> mat = numpy . random . rand ( <NUM_LIT:4> , <NUM_LIT:5> ) . astype ( '<STR_LIT>' ) <EOL> _a [ <NUM_LIT:2> , : , : ] = mat <EOL> a [ <NUM_LIT:2> , : , : ] = mat <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> try : <EOL> _a [ <NUM_LIT:0> , : , : ] = mat <EOL> except ValueError as e : <EOL> pass <EOL> _a [ <NUM_LIT:0> , : , : ] = b5 <EOL> a [ <NUM_LIT:0> , : , : ] = b5 <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> _a [ : , : , <NUM_LIT:2> ] = b <EOL> a [ : , : , <NUM_LIT:2> ] = b <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , a ) <EOL> def test_zeros_basic ( ) : <EOL> for shp in [ ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ) , ( <NUM_LIT> , ) , ( ) , ( <NUM_LIT:0> , <NUM_LIT:7> ) ] : <EOL> _a = cuda_ndarray . CudaNdarray . zeros ( shp ) <EOL> _n = numpy . zeros ( shp , dtype = "<STR_LIT>" ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , _n ) <EOL> assert _a . shape == _n . shape <EOL> assert all ( _a . _strides == numpy . asarray ( _n . strides ) / <NUM_LIT:4> ) <EOL> for shp in [ ( <NUM_LIT:3> , <NUM_LIT:0> ) , ( <NUM_LIT:4> , <NUM_LIT:1> , <NUM_LIT:5> ) ] : <EOL> _a = cuda_ndarray . CudaNdarray . zeros ( shp ) <EOL> _n = numpy . zeros ( shp , dtype = "<STR_LIT>" ) <EOL> assert numpy . allclose ( numpy . asarray ( _a ) , _n ) <EOL> assert _a . shape == _n . shape <EOL> try : <EOL> _n = numpy . zeros ( ) <EOL> except TypeError : <EOL> pass <EOL> else : <EOL> raise Exception ( "<STR_LIT>" ) <EOL> try : <EOL> _a = cuda_ndarray . CudaNdarray . zeros ( ) <EOL> except TypeError : <EOL> pass <EOL> else : <EOL> raise Exception ( "<STR_LIT>" ) <EOL> def test_base ( ) : <EOL> a = cuda_ndarray . CudaNdarray . zeros ( ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ) ) <EOL> for i in xrange ( <NUM_LIT:5> ) : <EOL> b = a [ : ] <EOL> assert b . base is a <EOL> c = a [ <NUM_LIT:0> ] <EOL> d = c [ : , <NUM_LIT:0> ] <EOL> assert c . base is a <EOL> assert d . base is a <EOL> e = b . reshape ( ( <NUM_LIT:5> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> ) ) <EOL> assert e . base is a <EOL> def test_set_strides ( ) : <EOL> a = cuda_ndarray . CudaNdarray . zeros ( ( <NUM_LIT:5> , <NUM_LIT:5> ) ) <EOL> new_strides = ( a . strides [ <NUM_LIT:1> ] , a . strides [ <NUM_LIT:0> ] ) <EOL> a . strides = new_strides <EOL> assert a . strides == new_strides <EOL> new_strides = ( a . strides [ <NUM_LIT:1> ] , a . strides [ <NUM_LIT:0> ] ) <EOL> a . strides = [ a . strides [ <NUM_LIT:1> ] , a . strides [ <NUM_LIT:0> ] ] <EOL> assert a . strides == new_strides <EOL> try : <EOL> a . strides = ( a . strides [ <NUM_LIT:1> ] , ) <EOL> assert False <EOL> except ValueError : <EOL> pass <EOL> try : <EOL> a . strides = ( <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ) <EOL> assert False <EOL> except ValueError : <EOL> pass <EOL> def test_is_c_contiguous ( ) : <EOL> a = cuda_ndarray . CudaNdarray . zeros ( ( <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ) ) <EOL> assert a . is_c_contiguous ( ) <EOL> assert a [ <NUM_LIT:1> ] . is_c_contiguous ( ) <EOL> assert not a [ : : <NUM_LIT:2> ] . is_c_contiguous ( ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> test_zeros_basic_3d_tensor ( ) <EOL> test_zeros_basic_vector ( ) <EOL> test_setitem_matrixvector1 ( ) <EOL> test_setitem_matrix_tensor3 ( ) <EOL> test_setitem_broadcast_must_fail ( ) <EOL> test_setitem_assign_to_slice ( ) <EOL> test_setitem_rightvalue_ndarray_fails ( ) </s>
