def test_TensorTest_CheckCopyValidToNew(self): for dev in TensorTest.devices: print(dev) tmp = tF.raw_input(Shape([2], 3), [1, 2, 3, 4, 5, 6], dev) x = Tensor(tmp) self.assertTrue(x.valid()) self.assertTrue(tmp.valid()) self.assertEqual(Shape([2], 3), x.shape()) self.assertEqual(Shape([2], 3), tmp.shape()) self.assertEqual([1, 2, 3, 4, 5, 6], x.to_list()) self.assertEqual([1, 2, 3, 4, 5, 6], tmp.to_list())
def test_TesnorTest_CheckResetValuesByConstant(self): for dev in TensorTest.devices: x = tF.raw_input(Shape([2, 2], 2), [42] * 8, dev) self.assertEqual([42] * 8, x.to_list()) x = tF.raw_input(Shape([2, 2], 2), [0] * 8, dev) x.reset(42) self.assertEqual([42] * 8, x.to_list()) x = tF.raw_input(Shape([2, 2], 2), [123] * 8, dev) copied = Tensor(x) x.reset(42) self.assertEqual([42] * 8, x.to_list()) self.assertEqual([123] * 8, copied.to_list())
def test_tensor_instance(self): param = Parameter([], I.Constant(1)) t_origin = param.gradient t = param.gradient self.assertIs(t, t_origin) t = Tensor(t_origin) self.assertEqual(t.to_list(), t.to_list()) self.assertIsNot(t, t_origin) t = t_origin t *= 2 self.assertIs(t, t_origin) t = t * 2 self.assertIsNot(t, t_origin)
def test_TensorTest_CheckInplaceSubtract(self): for dev in TensorTest.devices: a_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] b_data = [0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9] y_data = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3] a = tF.raw_input(Shape([2, 2], 3), a_data, dev) b = tF.raw_input(Shape([2, 2], 3), b_data, dev) copied = Tensor(a) ref_a = a a -= b self.assertEqual(y_data, a.to_list()) self.assertEqual(y_data, a.to_list()) self.assertEqual(a_data, copied.to_list()) self.assertIs(ref_a, a)
def test_TensorTest_CheckResetValuesByVector(self): for dev in TensorTest.devices: data = [1, 2, 3, 4, 5, 6, 7, 8] x = tF.raw_input(Shape([2, 2], 2), data, dev) self.assertEqual(data, x.to_list()) data = [1, 2, 3, 4, 5, 6, 7, 8] x = tF.raw_input(Shape([2, 2], 2), [0] * 8, dev) x.reset_by_vector(data) self.assertEqual(data, x.to_list()) data = [1, 2, 3, 4, 5, 6, 7, 8] x = tF.raw_input(Shape([2, 2], 2), [123] * 8, dev) copied = Tensor(x) x.reset_by_vector(data) self.assertEqual(data, x.to_list()) self.assertEqual([123] * 8, copied.to_list())
def test_TensorTest_CheckInvalid(self): x = Tensor() self.assertFalse(x.valid()) with self.assertRaises(RuntimeError): x.shape() with self.assertRaises(RuntimeError): x.device() with self.assertRaises(RuntimeError): x.to_float() with self.assertRaises(RuntimeError): x.to_list() with self.assertRaises(RuntimeError): x.to_ndarrays()
def test_TensorTest_CheckCopyInvalidToNew(self): for dev in TensorTest.devices: tmp = Tensor() x = Tensor(tmp) self.assertFalse(x.valid()) self.assertFalse(tmp.valid())