Exemplo n.º 1
0
    def generate(self, num_samples):
        """Grabs input/label pairs from MNIST"""
        ctx = mxnet.cpu()
        # Load a random image from the test dataset
        sample_data = mxnet.gluon.data.DataLoader(
            mxnet.gluon.data.vision.CIFAR10(train=False),
            1,
            shuffle=self.config.get('shuffle', True))

        samples = []
        for i, (data, label) in zip(range(num_samples), sample_data):
            if i == num_samples:
                break

            data_np = numpy.copy(data.as_in_context(ctx).asnumpy())
            # gluon data is in NHWC format
            shape = util.LabelledShape(dim_iter=zip('NHWC', data_np.shape),
                                       dtype='uint8')
            data_nt = util.LabelledTensor(data_np,
                                          shape).with_layout(self.DATA_LAYOUT)

            label = int(label.asnumpy()[0])
            samples.append(
                DatasetSample(inputs={'data': data_nt},
                              outputs={'label': label}))

        return samples
Exemplo n.º 2
0
def _load_cmsis_params(mod, param_file, param_shapes):
    with open(param_file) as f:
        cmsis_params = json.load(f)

    params = {}
    for formal_param in mod['main'].params[1:]:  # exclude data
        name = formal_param.name_hint
        _LOG.debug('name %r %r %r', name, _CMSIS_PARAM_SHAPES[name].dtype,
                   len(cmsis_params[name]))
        cmsis_tensor = util.LabelledTensor(data=np.array(
            cmsis_params[name],
            dtype=_CMSIS_PARAM_SHAPES[name].dtype,
            copy=True).reshape(_CMSIS_PARAM_SHAPES[name].shape),
                                           shape=_CMSIS_PARAM_SHAPES[name])
        if name == 'conv0_bias':
            cmsis_tensor = _CMSIS_PARAM_SHAPES[name].gen_zero_tensor()

        param_shape = param_shapes[name]
        relay_shape = util.LabelledShape(
            zip(param_shape.layout,
                [x.value for x in formal_param.checked_type.shape]),
            dtype=param_shape.dtype)

        assert param_shape.dims == relay_shape.dims
        param = cmsis_tensor.resize(param_shape)
        data = param.data
        if name == 'mean_data':
            data = relay_shape.gen_zero_tensor().data
        params[name] = tvm.nd.array(data, tvm.cpu(0))

    return params
Exemplo n.º 3
0
def get_sample_points(n, data_layout='NHWC'):
    """Grabs a single input/label pair from MNIST"""
    ctx = mxnet.cpu()
    # Load a random image from the test dataset
    sample_data = mxnet.gluon.data.DataLoader(
            mxnet.gluon.data.vision.CIFAR10(train=False),
            1)#,
#            shuffle=True)

    samples = []
    for i, (data, label) in zip(range(n), sample_data):
        if i == n:
            break
        data_np = numpy.copy(data.as_in_context(ctx).asnumpy())
        # gluon data is in NHWC format
        shape = util.LabelledShape(dim_iter=zip('NHWC', data_np.shape), dtype='uint8')
        data_nt = util.LabelledTensor(data_np, shape).with_layout(data_layout)

        label = int(label.asnumpy()[0])
        samples.append({'data': data_nt, 'label': label})
    return samples