3 from __future__
import absolute_import
4 from __future__
import division
5 from __future__
import print_function
6 from __future__
import unicode_literals
10 from caffe2.python
import core, schema
11 from caffe2.python.layers.layers
import LayerParameter, ModelLayer
16 Uniform sampling `num_samples - len(input_record)` unique elements from the 17 range [0, num_elements). `samples` is the concatenation of input_record and 18 the samples. input_record is expected to be unique. 27 name='uniform_sampling',
30 super(UniformSampling, self).__init__(
31 model, name, input_record, **kwargs
34 assert num_elements > 0
39 self.
num_samples = model.net.NextScopedBlob(name +
"_num_samples")
44 "GivenTensorInt64Fill",
50 optimizer=model.NoOptim,
62 shape=(num_samples, ),
63 value=float(num_samples) / num_elements,
64 dtype=core.DataType.FLOAT
66 optimizer=model.NoOptim,
73 np.int32, model.net.NextScopedBlob(name +
"_samples")
79 def add_ops(self, net):
82 shape = net.Shape([self.input_record()], net.NextScopedBlob(
"shape"))
84 samples = net.UniqueUniformFill(
85 [shape, self.input_record()],
86 net.NextScopedBlob(
"samples"),
93 [self.input_record(), samples],
94 [self.
output_schema.samples(), net.NextScopedBlob(
"split_info")],
def CreateOperator(operator_type, inputs, outputs, name='', control_input=None, device_option=None, arg=None, engine=None, kwargs)