def test_shapes(self): # test shape tuple shape1 = dc.lvec([2, 3, 4, 5]) shape2 = dc.lvec([5, 4, 3, 2]) a = dc.random(2, 3, 4, 5).astype('int') assert a.rank() == 4 assert a.shape() == (2, 3, 4, 5) # reshape to new dimensions a.reshape(shape2) assert a.shape() == (5, 4, 3, 2) # return a new tensor with flattened dimensions. b = a.flatten() assert a.shape() == (5, 4, 3, 2) assert b.shape() == (120, ) # flatten the same tensor a.flatteninplace() assert a.shape() == (120, ) shape3 = dc.lvec([8, 15, 1, 1]) # new shape a.reshape(shape3) # confirm new shape assert a.shape() == (8, 15, 1, 1) # dnnc method to reshape. a = dc.random(2, 3, 4, 5) dc.reshape(a, (8, 15, 1, 1)) assert a.shape() == (8, 15, 1, 1) dc.reshape(a, (120, )) assert a.shape() == (120, )
def test_dtypes(self): a = dc.random(2, 3) assert a.dtype() == 'float' # transform datatype to int. aint = a.asTypeInt() assert aint.dtype() == 'int32_t' # transform datatype to double. adbl = a.asTypeDouble() assert adbl.dtype() == 'double' # transform datatype to double. abool = a.asTypeBool() assert abool.dtype() == 'bool'
def test_create(self): # null tensor test a = dc.array(0) assert a.isnull() == True assert a.empty() == True # test assignment is shallow copy of memory b = a assert a.sameas(b) == True assert a.identifier() == b.identifier() # tensor without initiliaztion a = dc.array(2, 3, 4, 5) assert a.length() == 120 # tensor random initiliaztion a = dc.random(2, 3, 4, 5) assert a.length() == 120 # tensor without initiliaztion a = dc.empty(2, 3, 4, 5) assert a.length() == 120 # zero tensor a = dc.zeros(2, 3, 4, 5) assert np.array(list(a.data())).sum().astype(np.int) == 0 # one tensor a = dc.ones(2, 3, 4, 5) assert np.array(list(a.data())).sum().astype(np.int) == 120 # tensor from python list l1D = [1, 3, 5] a = dc.array(l1D).astype('int') np.testing.assert_equal(np.array(l1D), np.array(list(a.data()))) # tensor from python list of lists l2D = [[1, 3, 5], [2, 4, 6]] a = dc.array(l2D).astype('int') assert a.rank() == 2 assert a.shape() == (2, 3) np.testing.assert_equal(np.array(l2D).flatten(), \ np.array(list(a.data()))) # copy tensor b = a.copy() assert a.sameas(b) == False assert a.identifier() != b.identifier() # arange a = dc.arange(10) assert a.length() == 10 # add start and step a = dc.arange(10, 5, 3).astype('int') assert a.data() == (5, 8) # swap start and stop. a = dc.arange(5, 10, 3).astype('int') assert a.data() == (5, 8)
t3.reshape(new_shape) #print("new shape", t1.shape()) #t4 = dc.thresholded_relu(t1); #print("relu", t4.to_string()) #replace first few values in tensor with new values. data = dc.fvec([1.0, 2.0, 3.0, 4.0]) t3.load(data) #print(t3.to_string()) arr = dc.array([1, 2]) #print(arr) arr2D = dc.array([[1, 2], [10, 20]]) #print(arr2D) arrRand = dc.random(2, 3); #print(arrRand) empty = dc.empty(3, 2); #print(empty) zeros = dc.zeros(2, 2); #print(zeros); ones = dc.ones(2, 2); #print(ones) ranges = dc.arange(15, 3, 2) #print(ranges) def test_multiply(a,b): c = dc.multiply(a, b) #print(c)
def __init__(self, n): self.N = n self.dc_a = dc.random(n, n) self.dc_b = dc.random(n, n)