def __init__(self, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, seed=0, reduction='none'): super(SampledSoftmaxLoss, self).__init__() self.num_sampled = num_sampled self.num_classes = num_classes self.num_true = num_true self.sampled_values = sampled_values self.remove_accidental_hits = remove_accidental_hits self.seed = seed self.sampler = P.UniformCandidateSampler(num_true, num_sampled, True, num_classes, seed, remove_accidental_hits) self.cast = P.Cast() self.reshape = P.Reshape() self.shape = P.Shape() self.exp = P.Exp() self.log = P.Log() self.slice_op = P.Slice() self.matmul = P.MatMul(False, True) self.gather_v2 = P.GatherV2() self.reduce_max_true = P.ReduceMax(True) self.reduce_sum = P.ReduceSum() self.reduce_sum_true = P.ReduceSum(True) self.concat_dim0 = P.Concat(0) self.concat_dim1 = P.Concat(1) self.ones_like = P.OnesLike() self.zeros_like = P.ZerosLike() self.mul = P.Mul() self.expand_dims = P.ExpandDims()
def __init__(self, num_sampled, num_classes, num_true=1, sampled_values=None, remove_accidental_hits=True, seed=0, reduction='none'): super(SampledSoftmaxLoss, self).__init__(reduction) if num_true < 1: raise ValueError(f"num_true {num_true} is less than 1.") if seed < 0: raise ValueError(f"seed {seed} is less than 0.") if num_sampled > num_classes: raise ValueError( f"num_sampled {num_sampled} is great than num_classes {num_classes}." ) if num_true > num_classes: raise ValueError( f"num_true {num_true} is great than num_classes {num_classes}." ) if sampled_values is not None: if not isinstance(sampled_values, (list, tuple)): raise TypeError( f"sampled_values {sampled_values} is not a list or tuple.") if len(sampled_values) != 3: raise ValueError( f"sampled_values size {len(sampled_values)} is not 3.") self.num_sampled = num_sampled self.num_classes = num_classes self.num_true = num_true self.sampled_values = sampled_values self.remove_accidental_hits = remove_accidental_hits self.seed = seed self.sampler = P.UniformCandidateSampler(num_true, num_sampled, True, num_classes, seed, remove_accidental_hits) self.cast = P.Cast() self.reshape = P.Reshape() self.shape = P.Shape() self.exp = P.Exp() self.log = P.Log() self.slice_op = P.Slice() self.matmul = P.MatMul(False, True) self.gather_v2 = P.Gather() self.reduce_max_true = P.ReduceMax(True) self.reduce_sum = P.ReduceSum() self.reduce_sum_true = P.ReduceSum(True) self.concat_dim0 = P.Concat(0) self.concat_dim1 = P.Concat(1) self.ones_like = P.OnesLike() self.zeros_like = P.ZerosLike() self.mul = P.Mul() self.expand_dims = P.ExpandDims() self.dtype = P.DType()
def __init__(self, num_true, num_sampled, unique, range_max, seed, remove_accidental_hits): super(UniformCandidateSamplerHitNet, self).__init__() self.sampler = P.UniformCandidateSampler( num_true, num_sampled, unique, range_max, seed=seed, remove_accidental_hits=remove_accidental_hits)
def __init__(self, mul_weight, num_true, num_sampled, unique, range_max, seed, remove_accidential, strategy1=None): super(Net2, self).__init__() self.sampler = P.UniformCandidateSampler(num_true, num_sampled, unique, range_max, seed, remove_accidential) self.cast = P.Cast() self.weight = Parameter(mul_weight, "w1") self.mul = P.Mul() if strategy1: self.sampler.shard(strategy1)
def __init__(self, embedding_weight, num_true, num_sampled, unique, range_max, seed, remove_accidential, strategy1=None): super(Net, self).__init__() self.sampler = P.UniformCandidateSampler(num_true, num_sampled, unique, range_max, seed, remove_accidential) if strategy1: self.sampler.shard(strategy1) self.embedding_table = Parameter(embedding_weight, "embedding_weight") self.gatherv2 = P.Gather() self.reduce_sum = P.ReduceSum() self.reduce_sum2 = P.ReduceSum() self.reduce_sum3 = P.ReduceSum()
def __init__(self, num_true, num_sampled, unique, range_max): super(UniformCandidateSamplerNet, self).__init__() self.sampler = P.UniformCandidateSampler(num_true, num_sampled, unique, range_max)