def test_dropout_seed(self): # initialize Dropoutstates with the same seed states2 = cudnn.DropoutStates(None, self.seed) rspace, y = self.states.forward(None, self.x, self.ratio) rspace2, y2 = states2.forward(None, self.x, self.ratio) # forward results must be the same self.assertTrue(cupy.all(y == y2)) gx = self.states.backward(None, self.gy, self.ratio, rspace) gx2 = states2.backward(None, self.gy, self.ratio, rspace2) # backward results must be the same self.assertTrue(cupy.all(gx == gx2))
def get_cudnn_dropout_states_core(thread_id): states_id = next(_dropout_states_count) seed = os.getenv('CHAINER_SEED') if seed is None: try: seed_str = binascii.hexlify(os.urandom(8)) seed = numpy.uint64(int(seed_str, 16)) except NotImplementedError: seed = numpy.uint64(time.clock() * 1000000) else: seed = numpy.uint64(seed) seed += numpy.uint64(states_id) return cudnn.DropoutStates(None, seed)
def setUp(self): self.x = testing.shaped_arange((3, 4), cupy, self.dtype) self.gy = testing.shaped_arange((3, 4), cupy, self.dtype) self.states = cudnn.DropoutStates(None, self.seed)