예제 #1
0
 def testBasicSub(self):
   for dtype in [dtypes.float32, dtypes.int32, dtypes.int64]:
     with self.test_session(use_gpu=True):
       x = array_ops.ones([7, 3], dtype)
       y = np.ones([7, 3], dtype.as_numpy_dtype)
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, [3], array_ops.ones([1, 3], dtype))
       y[3, :] -= 1
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, [-1], array_ops.ones([1, 3], dtype) * 2)
       y[-1, :] -= 2
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, 5, array_ops.ones([3], dtype) * 7)
       y[5, :] -= 7
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, None, array_ops.ones([7, 3], dtype) * 99)
       y[:, :] -= 99
       self.assertAllClose(x.eval(), y)
예제 #2
0
 def testBasicSub(self):
   for dtype in [dtypes.float32, dtypes.int32, dtypes.int64]:
     with self.cached_session(use_gpu=True):
       x = array_ops.ones([7, 3], dtype)
       y = np.ones([7, 3], dtype.as_numpy_dtype)
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, [3], array_ops.ones([1, 3], dtype))
       y[3, :] -= 1
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, [-1], array_ops.ones([1, 3], dtype) * 2)
       y[-1, :] -= 2
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, 5, array_ops.ones([3], dtype) * 7)
       y[5, :] -= 7
       self.assertAllClose(x.eval(), y)
       x = inplace_ops.inplace_sub(x, None, array_ops.ones([7, 3], dtype) * 99)
       y[:, :] -= 99
       self.assertAllClose(x.eval(), y)
예제 #3
0
 def testRandom1D(self):
     with self.test_session(use_gpu=True):
         d0 = 100
         x = array_ops.zeros([d0])
         y = np.zeros([d0])
         for _ in xrange(20):
             idx = np.random.choice(d0, d0 // 10, replace=False)
             val = np.random.randint(10, size=(d0 // 10))
             op = np.random.randint(3)
             if op == 0:
                 x = inplace_ops.inplace_update(x, idx, val)
                 y[idx] = val
             elif op == 1:
                 x = inplace_ops.inplace_add(x, idx, val)
                 y[idx] += val
             elif op == 2:
                 x = inplace_ops.inplace_sub(x, idx, val)
                 y[idx] -= val
             self.assertAllClose(x.eval(), y)
예제 #4
0
 def testRandom(self):
     with test_util.use_gpu():
         d0, d1, d2 = 100, 3, 5
         x = array_ops.zeros([d0, d1, d2])
         y = np.zeros([d0, d1, d2])
         for _ in range(20):
             idx = np.random.choice(d0, d0 // 10, replace=False)
             val = np.random.randint(10, size=(d0 // 10, d1, d2))
             op = np.random.randint(3)
             if op == 0:
                 x = inplace_ops.inplace_update(x, idx, val)
                 y[idx, :] = val
             elif op == 1:
                 x = inplace_ops.inplace_add(x, idx, val)
                 y[idx, :] += val
             elif op == 2:
                 x = inplace_ops.inplace_sub(x, idx, val)
                 y[idx, :] -= val
             self.assertAllClose(x, y)
예제 #5
0
 def testRandom1D(self):
   with self.test_session(use_gpu=True):
     d0 = 100
     x = array_ops.zeros([d0])
     y = np.zeros([d0])
     for _ in xrange(20):
       idx = np.random.choice(d0, d0 // 10, replace=False)
       val = np.random.randint(10, size=(d0 // 10))
       op = np.random.randint(3)
       if op == 0:
         x = inplace_ops.inplace_update(x, idx, val)
         y[idx] = val
       elif op == 1:
         x = inplace_ops.inplace_add(x, idx, val)
         y[idx] += val
       elif op == 2:
         x = inplace_ops.inplace_sub(x, idx, val)
         y[idx] -= val
       self.assertAllClose(x.eval(), y)