Esempio n. 1
0
    def check_call(self, gpu, label_key, args, kwargs, model_args,
                   model_kwargs, metrics_fun, compute_metrics):
        init_kwargs = {'label_key': label_key}
        if metrics_fun is not None:
            init_kwargs['metrics_fun'] = metrics_fun
        link = Regressor(chainer.Link(), **init_kwargs)

        if gpu:
            xp = cuda.cupy
            link.to_gpu()
        else:
            xp = numpy

        link.compute_metrics = compute_metrics

        y = chainer.Variable(self.y)
        link.predictor = mock.MagicMock(return_value=y)

        loss = link(*args, **kwargs)
        link.predictor.assert_called_with(*model_args, **model_kwargs)

        assert hasattr(link, 'y')
        assert link.y is not None

        assert hasattr(link, 'loss')
        xp.testing.assert_allclose(link.loss.data, loss.data)

        assert hasattr(link, 'metrics')
        if compute_metrics:
            assert link.metrics is not None
        else:
            assert link.metrics is None
Esempio n. 2
0
 def check_invalid_key(self, gpu, label_key):
     link = Regressor(links.Linear(10, 3), label_key=label_key)
     if gpu:
         link.to_gpu()
     x = chainer.Variable(link.xp.asarray(self.x))
     with pytest.raises(ValueError):
         link(x)