def inject_backend_tests():
    decorator = backend.inject_backend_tests(
        None,
        # CPU tests
        testing.product({
            'use_cuda': [False],
            'use_ideep': ['never', 'always'],
        })
        # GPU tests
        + [{
            'use_cuda': True
        }]
        # ChainerX tests
        + [
            {
                'use_chainerx': True,
                'chainerx_device': 'native:0'
            },
            {
                'use_chainerx': True,
                'chainerx_device': 'cuda:0'
            },
            {
                'use_chainerx': True,
                'chainerx_device': 'cuda:1'
            },
        ])
    return decorator
Example #2
0
def inject_backend_tests(method_names):
    decorator = backend.inject_backend_tests(
        method_names,
        # CPU tests
        [{'use_cuda': False}]
        # GPU tests
        + [{'use_cuda': True}])
    return decorator
Example #3
0
def inject_backend_tests(method_names):
    decorator = backend.inject_backend_tests(
        method_names,
        # CPU tests
        testing.product({
            'use_cuda': [False],
            'use_ideep': ['never', 'always'],
        }) +
        # GPU tests
        [{'use_cuda': True}])
    return decorator
Example #4
0
def inject_backend_tests(method_names):
    decorator = backend.inject_backend_tests(
        method_names,
        # CPU tests
        testing.product({
            'use_cuda': [False],
            'use_ideep': ['never', 'always'],
        })
        # GPU tests
        + [{'use_cuda': True}])
    return decorator
Example #5
0
def inject_backend_tests(method_names):
    decorator = backend.inject_backend_tests(
        method_names,
        # CPU tests
        testing.product({
            'use_cuda': [False],
            'use_ideep': ['never', 'always'],
        })
        # GPU tests
        + [{'use_cuda': True}]
        # ChainerX tests
        + [
            {'use_chainerx': True, 'chainerx_device': 'native:0'},
            {'use_chainerx': True, 'chainerx_device': 'cuda:0'},
        ])
    return decorator
        msg = 'loss_scaling must be False, \'dynamic\' or \'static\'.'
        raise ValueError(msg)
    if loss_scaling == 'dynamic':
        optimizer.loss_scaling()
    elif loss_scaling == 'static':
        optimizer.loss_scaling(scale=10.0)


_inject_backend_tests = (
    backend.inject_backend_tests(
        ['test_linear_model'],
        # CPU tests
        testing.product({
            'use_cuda': [False],
            'use_ideep': ['never', 'always'],
        })
        # GPU tests
        + [{'use_cuda': True}]
        # ChainerX tests
        + [
            {'use_chainerx': True, 'chainerx_device': 'native:0'},
            {'use_chainerx': True, 'chainerx_device': 'cuda:0'},
        ]))


class OptimizerTestBase(object):

    loss_scaling = False

    def create(self):
        raise NotImplementedError()
    elif loss_scaling is 'static':
        optimizer.loss_scaling(scale=10.0)


_inject_backend_tests = (
    backend.inject_backend_tests(
        ['test_linear_model'],
        # CPU tests
        testing.product({
            'use_cuda': [False],
            'use_ideep': ['never', 'always'],
        })
        # GPU tests
        + [{
            'use_cuda': True
        }]
        # ChainerX tests
        + [
            {
                'use_chainerx': True,
                'chainerx_device': 'native:0'
            },
            {
                'use_chainerx': True,
                'chainerx_device': 'cuda:0'
            },
        ]))


class OptimizerTestBase(object):

    loss_scaling = False
Example #8
0
from chainer.backends import cuda
from chainer import functions
from chainer import testing
from chainer.testing import attr
from chainer.testing import backend


_inject_backend_tests = backend.inject_backend_tests(
    None,
    # CPU tests
    testing.product({
        'use_cuda': [False],
        'use_ideep': ['never', 'always'],
    })
    # GPU tests
    + testing.product({
        'use_cuda': [True],
        'use_cudnn': ['never', 'always'],
    })
    # ChainerX tests
    + testing.product({
        'use_chainerx': [True],
        'chainerx_device': ['native:0', 'cuda:0'],
    })
)


@_inject_backend_tests
@testing.parameterize(*testing.product({
    'cover_all': [True, False],
    'dtype': [numpy.float16, numpy.float32, numpy.float64],
    'contiguous': [None, 'C'],