text: Title: Flaky test: `tests/chainer_tests/links_tests/loss_tests/test_crf1d.py::TestCRF1d`
  Body: https://jenkins.preferred.jp/job/chainer/job/chainer_pr/1816/TEST=chainer-py2,label=mn1-p100/console
  
  >`FAIL tests/chainer_tests/links_tests/loss_tests/test_crf1d.py::TestCRF1d_param_1_{initial_cost='random', dtype=float16, transpose=False}::test_forward_cpu`
  
  ```
  00:10:59 _ TestCRF1d_param_1_{initial_cost='random', dtype=float16, transpose=False}.test_forward_cpu _
  00:10:59 
  00:10:59 self = <chainer.testing._bundle.TestCRF1d_param_1_{initial_cost='random', dtype=float16, transpose=False} testMethod=test_forward_cpu>
  00:10:59 args = (), kwargs = {}
  00:10:59 e = AssertionError('\nNot equal to tolerance rtol=0.0001, atol=0.005\n\n(mismatch ...5\n  total tolerance: 0.00544704666138\nx: 4.4765625\ny: 4.470466613769531\n',)
  00:10:59 s = <StringIO.StringIO instance at 0x7fe9161c9b00>, k = 'transpose', v = False
  00:10:59 
  00:10:59     @functools.wraps(base_method)
  00:10:59     def new_method(self, *args, **kwargs):
  00:10:59         try:
  00:10:59             return base_method(self, *args, **kwargs)
  00:10:59         except unittest.SkipTest:
  00:10:59             raise
  00:10:59         except Exception as e:
  00:10:59             s = six.StringIO()
  00:10:59             s.write('Parameterized test failed.\n\n')
  00:10:59             s.write('Base test method: {}.{}\n'.format(
  00:10:59                 base.__name__, base_method.__name__))
  00:10:59             s.write('Test parameters:\n')
  00:10:59             for k, v in six.iteritems(param2):
  00:10:59                 s.write('  {}: {}\n'.format(k, v))
  00:10:59 >           utils._raise_from(e.__class__, s.getvalue(), e)
  00:10:59 
  00:10:59 args       = ()
  00:10:59 base       = <class 'chainer_tests.links_tests.loss_tests.test_crf1d.TestCRF1d'>
  00:10:59 base_method = <unbound method TestCRF1d.test_forward_cpu>
  00:10:59 e          = AssertionError('\nNot equal to tolerance rtol=0.0001, atol=0.005\n\n(mismatch ...5\n  total tolerance: 0.00544704666138\nx: 4.4765625\ny: 4.470466613769531\n',)
  00:10:59 k          = 'transpose'
  00:10:59 kwargs     = {}
  00:10:59 param2     = {'dtype': <type 'numpy.float16'>, 'initial_cost': 'random', 'transpose': False}
  00:10:59 s          = <StringIO.StringIO instance at 0x7fe9161c9b00>
  00:10:59 self       = <chainer.testing._bundle.TestCRF1d_param_1_{initial_cost='random', dtype=float16, transpose=False} testMethod=test_forward_cpu>
  00:10:59 v          = False
  00:10:59 
  00:10:59 chainer/testing/parameterized.py:89: 
  00:10:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  00:10:59 chainer/utils/__init__.py:104: in _raise_from
  00:10:59     six.reraise(exc_type, new_exc, sys.exc_info()[2])
  00:10:59 chainer/testing/parameterized.py:78: in new_method
  00:10:59     return base_method(self, *args, **kwargs)
  00:10:59 tests/chainer_tests/links_tests/loss_tests/test_crf1d.py:86: in test_forward_cpu
  00:10:59     self.check_forward(self.xs, self.ys)
  00:10:59 tests/chainer_tests/links_tests/loss_tests/test_crf1d.py:83: in check_forward
  00:10:59     **self.check_forward_options)
  00:10:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
  00:10:59 
  00:10:59 x = array(4.4765625, dtype=float16), y = array(4.470466613769531), atol = 0.005
  00:10:59 rtol = 0.0001, verbose = True
  00:10:59 
  00:10:59     def assert_allclose(x, y, atol=1e-5, rtol=1e-4, verbose=True):
  00:10:59         """Asserts if some corresponding element of x and y differs too much.
  00:10:59     
  00:10:59         This function can handle both CPU and GPU arrays simultaneously.
  00:10:59     
  00:10:59         Args:
  00:10:59             x: Left-hand-side array.
  00:10:59             y: Right-hand-side array.
  00:10:59             atol (float): Absolute tolerance.
  00:10:59             rtol (float): Relative tolerance.
  00:10:59             verbose (bool): If ``True``, it outputs verbose messages on error.
  00:10:59     
  00:10:59         """
  00:10:59         x = backend.CpuDevice().send(utils.force_array(x))
  00:10:59         y = backend.CpuDevice().send(utils.force_array(y))
  00:10:59         try:
  00:10:59             numpy.testing.assert_allclose(
  00:10:59                 x, y, atol=atol, rtol=rtol, verbose=verbose)
  00:10:59         except AssertionError as e:
  00:10:59             f = six.StringIO()
  00:10:59             f.write(str(e) + '\n\n')
  00:10:59             f.write(
  00:10:59                 'assert_allclose failed: \n' +
  00:10:59                 '  shape: {} {}\n'.format(x.shape, y.shape) +
  00:10:59                 '  dtype: {} {}\n'.format(x.dtype, y.dtype))
  00:10:59             if x.shape == y.shape:
  00:10:59                 xx = numpy.atleast_1d(x)
  00:10:59                 yy = numpy.atleast_1d(y)
  00:10:59                 err = numpy.abs(xx - yy)
  00:10:59     
  00:10:59                 tol_rtol = rtol * numpy.abs(yy).astype(numpy.float64)
  00:10:59                 tol_err = atol + tol_rtol
  00:10:59     
  00:10:59                 i = numpy.unravel_index(
  00:10:59                     numpy.argmax(err.astype(numpy.float64) - tol_err), err.shape)
  00:10:59     
  00:10:59                 if yy[i] == 0:
  00:10:59                     rel_err = 'inf'
  00:10:59                 else:
  00:10:59                     rel_err = err[i] / numpy.abs(yy[i])
  00:10:59     
  00:10:59                 f.write(
  00:10:59                     '  i: {}\n'.format(i) +
  00:10:59                     '  x[i]: {}\n'.format(xx[i]) +
  00:10:59                     '  y[i]: {}\n'.format(yy[i]) +
  00:10:59                     '  relative error[i]: {}\n'.format(rel_err) +
  00:10:59                     '  absolute error[i]: {}\n'.format(err[i]) +
  00:10:59                     '  relative tolerance * |y[i]|: {}\n'.format(tol_rtol[i]) +
  00:10:59                     '  absolute tolerance: {}\n'.format(atol) +
  00:10:59                     '  total tolerance: {}\n'.format(tol_err[i]))
  00:10:59     
  00:10:59             opts = numpy.get_printoptions()
  00:10:59             try:
  00:10:59                 numpy.set_printoptions(threshold=10000)
  00:10:59                 f.write('x: ' + numpy.array2string(x, prefix='x: ') + '\n')
  00:10:59                 f.write('y: ' + numpy.array2string(y, prefix='y: ') + '\n')
  00:10:59             finally:
  00:10:59                 numpy.set_printoptions(**opts)
  00:10:59 >           raise AssertionError(f.getvalue())
  00:10:59 E           AssertionError: Parameterized test failed.
  00:10:59 E           
  00:10:59 E           Base test method: TestCRF1d.test_forward_cpu
  00:10:59 E           Test parameters:
  00:10:59 E             initial_cost: random
  00:10:59 E             dtype: <type 'numpy.float16'>
  00:10:59 E             transpose: False
  00:10:59 E           
  00:10:59 E           
  00:10:59 E           (caused by)
  00:10:59 E           AssertionError: 
  00:10:59 E           Not equal to tolerance rtol=0.0001, atol=0.005
  00:10:59 E           
  00:10:59 E           (mismatch 100.0%)
  00:10:59 E            x: array(4.4765625, dtype=float16)
  00:10:59 E            y: array(4.470466613769531)
  00:10:59 E           
  00:10:59 E           assert_allclose failed: 
  00:10:59 E             shape: () ()
  00:10:59 E             dtype: float16 float64
  00:10:59 E             i: (0,)
  00:10:59 E             x[i]: 4.4765625
  00:10:59 E             y[i]: 4.47046661377
  00:10:59 E             relative error[i]: 0.00136359059515
  00:10:59 E             absolute error[i]: 0.00609588623047
  00:10:59 E             relative tolerance * |y[i]|: 0.000447046661377
  00:10:59 E             absolute tolerance: 0.005
  00:10:59 E             total tolerance: 0.00544704666138
  00:10:59 E           x: 4.4765625
  00:10:59 E           y: 4.470466613769531
  00:10:59 
  00:10:59 atol       = 0.005
  00:10:59 e          = AssertionError('\nNot equal to tolerance rtol=0.0001, atol=0.005\n\n(mismatch 100.0%)\n x: array(4.4765625, dtype=float16)\n y: array(4.470466613769531)',)
  00:10:59 err        = array([ 0.00609589])
  00:10:59 f          = <StringIO.StringIO instance at 0x7fe9161c9a28>
  00:10:59 i          = (0,)
  00:10:59 opts       = {'edgeitems': 3, 'formatter': None, 'infstr': 'inf', 'linewidth': 75, ...}
  00:10:59 rel_err    = 0.001363590595150123
  00:10:59 rtol       = 0.0001
  00:10:59 tol_err    = array([ 0.00544705])
  00:10:59 tol_rtol   = array([ 0.00044705])
  00:10:59 verbose    = True
  00:10:59 x          = array(4.4765625, dtype=float16)
  00:10:59 xx         = array([ 4.4765625], dtype=float16)
  00:10:59 y          = array(4.470466613769531)
  00:10:59 yy         = array([ 4.47046661])
  00:10:59 
  00:10:59 chainer/testing/array.py:68: AssertionError
  ```