def __init__(self, N, D, sketch_size=0.20): self.N = N self.D = D self.blk_size = math.ceil(D // 32) * 32 self.range = int(N * sketch_size) self.kernel = cupyKernel(kernel, "cms_hash_update_retrieve") self.cms = torch.cuda.FloatTensor(self.range, D).fill_(0) print(N, "CMS Flat", self.cms.size())
def __init__(self, N, D, sketch_size=0.20): self.N = N self.D = D self.blk_size = 32 self.range = max(int(D * sketch_size), 1) self.kernel = cupyKernel(kernel, "dense_cms_update") self.cms = torch.cuda.FloatTensor(N, self.range).fill_(0) print(N, "Dense CMS", self.cms.size())
def __init__(self, N, D, sketch_size=0.20): self.N = N self.D = D self.blk_size = math.ceil(D // 32) * 32 self.range = int(N * sketch_size / 3.) self.width = self.range * D self.kernel = cupyKernel(kernel, "hash_update_retrieve") self.cms = torch.zeros(3, self.range, D).float().cuda() print(N, "CMS", self.cms.size())
def __init__(self, N, D, sketch_size=0.20): self.N = N self.D = D self.blk_size = math.ceil(D // 32) * 32 self.range = int(N * sketch_size / 3.) self.width = self.range * D self.kernel = cupyKernel(kernel, "hash_update_retrieve") self.sketch = torch.cuda.FloatTensor(3, self.range, D).fill_(0) print(N, "Count Sketch", self.sketch.size())
def __init__(self, d_, k_, L_, weights=None, seed_=8191): self.d = d_ self.k = k_ self.L = L_ self.fp = cupyKernel(kernel, "fingerprint") if weights is None: self.rp = SimHash.generate(d_, k_, L_, seed_) else: self.rp = SimHash.generate_from_weight(weights)
def __init__(self, d_, k_, L_, seed_=8191, srp_list=None): self.d = d_ self.k = k_ self.L = L_ self.fp = cupyKernel(kernel, "fingerprint") if srp_list is None: self.rp = SimHash.generate(d_, k_, L_, seed_) else: self.rp = SimHash.generate_from_list(srp_list)
def initialize(self): if self.kernel is None: self.kernel = cupyKernel(kernel, "cs_hash_update_retrieve")
def initialize(self): if self.kernel is None: if self.D == self.range: self.kernel = cupyKernel(kernel, "dense_update") else: self.kernel = cupyKernel(kernel, "dense_cms_update")
def __init__(self, d_, k_, L_, seed_=8192, srp_list=None): self.d = d_ self.k = k_ self.L = L_ self.fp = cupyKernel(kernel, "fingerprint") self.rp = SimHash.generate(d_, k_, L_, seed_)