Bug#1026539: theano: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.10 returned exit code 13
Lucas Nussbaum
lucas at debian.org
Tue Dec 20 17:03:20 GMT 2022
Source: theano
Version: 1.0.5+dfsg-8
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20221220 ftbfs-bookworm
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> =================================== FAILURES ===================================
> ____________ TestDownsampleFactorMax.test_DownsampleFactorMaxStride ____________
>
> self = <theano.tensor.signal.tests.test_pool.TestDownsampleFactorMax object at 0x7f9a14696d10>
>
> def test_DownsampleFactorMaxStride(self):
> rng = np.random.RandomState(utt.fetch_seed())
> # maxpool, stride, ignore_border, input, output sizes
> examples = (
> ((1, 1), (1, 1), True, (4, 10, 16, 16), (4, 10, 16, 16)),
> ((1, 1), (5, 7), True, (4, 10, 16, 16), (4, 10, 4, 3)),
> ((1, 1), (1, 1), False, (4, 10, 16, 16), (4, 10, 16, 16)),
> ((1, 1), (5, 7), False, (4, 10, 16, 16), (4, 10, 4, 3)),
> ((3, 3), (1, 1), True, (4, 10, 16, 16), (4, 10, 14, 14)),
> ((3, 3), (3, 3), True, (4, 10, 16, 16), (4, 10, 5, 5)),
> ((3, 3), (5, 7), True, (4, 10, 16, 16), (4, 10, 3, 2)),
> ((3, 3), (1, 1), False, (4, 10, 16, 16), (4, 10, 14, 14)),
> ((3, 3), (3, 3), False, (4, 10, 16, 16), (4, 10, 6, 6)),
> ((3, 3), (5, 7), False, (4, 10, 16, 16), (4, 10, 4, 3)),
> ((5, 3), (1, 1), True, (4, 10, 16, 16), (4, 10, 12, 14)),
> ((5, 3), (3, 3), True, (4, 10, 16, 16), (4, 10, 4, 5)),
> ((5, 3), (5, 7), True, (4, 10, 16, 16), (4, 10, 3, 2)),
> ((5, 3), (1, 1), False, (4, 10, 16, 16), (4, 10, 12, 14)),
> ((5, 3), (3, 3), False, (4, 10, 16, 16), (4, 10, 5, 6)),
> ((5, 3), (5, 7), False, (4, 10, 16, 16), (4, 10, 4, 3)),
> ((16, 16), (1, 1), True, (4, 10, 16, 16), (4, 10, 1, 1)),
> ((16, 16), (5, 7), True, (4, 10, 16, 16), (4, 10, 1, 1)),
> ((16, 16), (1, 1), False, (4, 10, 16, 16), (4, 10, 1, 1)),
> ((16, 16), (5, 7), False, (4, 10, 16, 16), (4, 10, 1, 1)),
> ((3,), (5,), True, (16,), (3,)),
> ((3,), (5,), True, (2, 16,), (2, 3,)),
> ((5,), (3,), True, (2, 3, 16,), (2, 3, 4,)),
> ((5, 1, 3), (3, 3, 3), True, (2, 16, 16, 16), (2, 4, 6, 5)),
> ((5, 1, 3), (3, 3, 3), True, (4, 2, 16, 16, 16), (4, 2, 4, 6, 5)),
> )
>
> for example, mode in product(examples, ['max',
> 'sum',
> 'average_inc_pad',
> 'average_exc_pad']):
> (maxpoolshp, stride, ignore_border, inputshp, outputshp) = example
> # generate random images
> imval = rng.rand(*inputshp)
> images = theano.shared(imval)
> # Pool op
> numpy_output_val = \
> > self.numpy_max_pool_nd_stride(imval, maxpoolshp,
> ignore_border, stride,
> mode)
>
> theano/tensor/signal/tests/test_pool.py:406:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = array([[[[7.00437122e-01, 8.44186643e-01, 6.76514336e-01, ...,
> 7.00844752e-01, 2.93228106e-01, 7.74479454e-0... [8.75885705e-01, 9.43403362e-01, 2.46839958e-01, ...,
> 6.39886889e-01, 3.33503280e-01, 3.56632048e-04]]]])
> ws = (1, 1), ignore_border = True, stride = (1, 1), mode = 'max'
>
> @staticmethod
> def numpy_max_pool_nd_stride(input, ws, ignore_border=False, stride=None,
> mode='max'):
> '''Helper function, implementing pooling in pure numpy
> this function provides stride input to indicate the stide size
> for the pooling regions. if not indicated, stride == ws.'''
> nd = len(ws)
> if stride is None:
> stride = ws
> assert len(stride) == len(ws)
>
> out_shp = list(input.shape[:-nd])
> for i in range(nd):
> out = 0
> if input.shape[-nd + i] - ws[i] >= 0:
> out = (input.shape[-nd + i] - ws[i]) // stride[i] + 1
> if not ignore_border:
> if out > 0:
> if input.shape[-nd + i] - ((out - 1) * stride[i] + ws[i]) > 0:
> if input.shape[-nd + i] - out * stride[i] > 0:
> out += 1
> else:
> if input.shape[-nd + i] > 0:
> out += 1
> out_shp.append(out)
>
> func = np.max
> if mode == 'sum':
> func = np.sum
> elif mode != 'max':
> func = np.average
>
> output_val = np.zeros(out_shp)
> for l in np.ndindex(*input.shape[:-nd]):
> for r in np.ndindex(*output_val.shape[-nd:]):
> region = []
> for i in range(nd):
> r_stride = r[i] * stride[i]
> r_end = builtins.min(r_stride + ws[i], input.shape[-nd + i])
> region.append(slice(r_stride, r_end))
> > patch = input[l][region]
> E IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
>
> theano/tensor/signal/tests/test_pool.py:304: IndexError
> ________ TestDownsampleFactorMax.test_DownsampleFactorMaxPaddingStride _________
>
> self = <theano.tensor.signal.tests.test_pool.TestDownsampleFactorMax object at 0x7f9a14696980>
>
> def test_DownsampleFactorMaxPaddingStride(self):
> ignore_border = True # padding does not support ignore_border=False
> rng = np.random.RandomState(utt.fetch_seed())
> # maxpool, stride, pad, input sizes
> examples = (
> ((3,), (2,), (2,), (5,)),
> ((3,), (2,), (2,), (4, 5)),
> ((3,), (2,), (2,), (4, 2, 5, 5)),
> ((3, 3), (2, 2), (2, 2), (4, 2, 5, 5)),
> ((4, 4), (2, 2), (1, 2), (4, 2, 5, 5)),
> ((3, 4), (1, 1), (2, 1), (4, 2, 5, 6)),
> ((4, 3), (1, 2), (0, 0), (4, 2, 6, 5)),
> ((2, 2), (2, 2), (1, 1), (4, 2, 5, 5)),
> ((4, 3, 2), (1, 2, 2), (0, 2, 1), (4, 6, 6, 5)),
> ((4, 3, 2), (1, 2, 2), (0, 2, 1), (4, 2, 6, 5, 5)),
> )
> for example, mode in product(examples,
> ['max', 'sum', 'average_inc_pad',
> 'average_exc_pad']):
> (maxpoolshp, stridesize, padsize, inputsize) = example
> imval = rng.rand(*inputsize) - 0.5
> images = theano.shared(imval)
>
> > numpy_output_val = self.numpy_max_pool_nd_stride_pad(
> imval, maxpoolshp, ignore_border,
> stridesize, padsize, mode)
>
> theano/tensor/signal/tests/test_pool.py:484:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> input = array([0.20043712, 0.34418664, 0.17651434, 0.22785806, 0.45145796])
> ws = (3,), ignore_border = True, stride = (2,), pad = (2,), mode = 'max'
>
> @staticmethod
> def numpy_max_pool_nd_stride_pad(
> input, ws, ignore_border=True, stride=None, pad=None, mode='max'):
> assert ignore_border
> nd = len(ws)
> if pad is None:
> pad = (0,) * nd
> if stride is None:
> stride = (0,) * nd
> assert len(pad) == len(ws) == len(stride)
> assert all(ws[i] > pad[i] for i in range(nd))
>
> def pad_img(x):
> # initialize padded input
> y = np.zeros(
> x.shape[0:-nd] +
> tuple(x.shape[-nd + i] + pad[i] * 2 for i in range(nd)),
> dtype=x.dtype)
> # place the unpadded input in the center
> block = ((slice(None),) * (len(x.shape) - nd) +
> tuple(slice(pad[i], x.shape[-nd + i] + pad[i])
> for i in range(nd)))
> y[block] = x
> return y
>
> pad_img_shp = list(input.shape[:-nd])
> out_shp = list(input.shape[:-nd])
> for i in range(nd):
> padded_size = input.shape[-nd + i] + 2 * pad[i]
> pad_img_shp.append(padded_size)
> out_shp.append((padded_size - ws[i]) // stride[i] + 1)
> output_val = np.zeros(out_shp)
> padded_input = pad_img(input)
> func = np.max
> if mode == 'sum':
> func = np.sum
> elif mode != 'max':
> func = np.average
> inc_pad = mode == 'average_inc_pad'
>
> for l in np.ndindex(*input.shape[:-nd]):
> for r in np.ndindex(*output_val.shape[-nd:]):
> region = []
> for i in range(nd):
> r_stride = r[i] * stride[i]
> r_end = builtins.min(r_stride + ws[i], pad_img_shp[-nd + i])
> if not inc_pad:
> r_stride = builtins.max(r_stride, pad[i])
> r_end = builtins.min(r_end, input.shape[-nd + i] + pad[i])
> region.append(slice(r_stride, r_end))
> > patch = padded_input[l][region]
> E IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
>
> theano/tensor/signal/tests/test_pool.py:197: IndexError
> =============================== warnings summary ===============================
> theano/gof/cmodule.py:23
> /<<PKGBUILDDIR>>/theano/gof/cmodule.py:23: DeprecationWarning:
>
> `numpy.distutils` is deprecated since NumPy 1.23.0, as a result
> of the deprecation of `distutils` itself. It will be removed for
> Python >= 3.12. For older Python versions it will remain present.
> It is recommended to use `setuptools < 60.0` for those Python versions.
> For more details, see:
> https://numpy.org/devdocs/reference/distutils_status_migration.html
>
>
> import numpy.distutils
>
> theano/scalar/basic.py:2323
> /<<PKGBUILDDIR>>/theano/scalar/basic.py:2323: DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.
> Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
> self.ctor = getattr(np, o_type.dtype)
>
> theano/tensor/signal/tests/test_conv.py: 3081 warnings
> theano/tensor/signal/tests/test_pool.py: 11605 warnings
> /<<PKGBUILDDIR>>/theano/tensor/basic.py:381: DeprecationWarning: `np.complex` is a deprecated alias for the builtin `complex`. To silence this warning, use `complex` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.complex128` here.
> Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
> np.complex(data) # works for all numeric scalars
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_DownsampleFactorMax_hessian
> /<<PKGBUILDDIR>>/theano/tests/breakpoint.py:3: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
> import imp
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_max_pool_3d_3D_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:911: UserWarning: DEPRECATION: the 'ds' parameter is not going to exist anymore as it is going to be replaced by the parameter 'ws'.
> output = pool_3d(input=images,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_max_pool_3d_3D_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:911: UserWarning: DEPRECATION: the 'st' parameter is not going to exist anymore as it is going to be replaced by the parameter 'stride'.
> output = pool_3d(input=images,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_max_pool_3d_3D_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:911: UserWarning: DEPRECATION: the 'padding' parameter is not going to exist anymore as it is going to be replaced by the parameter 'pad'.
> output = pool_3d(input=images,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_pooling_with_tensor_vars_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:1095: UserWarning: DEPRECATION: the 'ds' parameter is not going to exist anymore as it is going to be replaced by the parameter 'ws'.
> y = pool_2d(input=x,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_pooling_with_tensor_vars_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:1095: UserWarning: DEPRECATION: the 'st' parameter is not going to exist anymore as it is going to be replaced by the parameter 'stride'.
> y = pool_2d(input=x,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_pooling_with_tensor_vars_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:1095: UserWarning: DEPRECATION: the 'padding' parameter is not going to exist anymore as it is going to be replaced by the parameter 'pad'.
> y = pool_2d(input=x,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_pooling_with_tensor_vars_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:1111: UserWarning: DEPRECATION: the 'ds' parameter is not going to exist anymore as it is going to be replaced by the parameter 'ws'.
> y = pool_2d(input=x,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_pooling_with_tensor_vars_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:1111: UserWarning: DEPRECATION: the 'st' parameter is not going to exist anymore as it is going to be replaced by the parameter 'stride'.
> y = pool_2d(input=x,
>
> theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_pooling_with_tensor_vars_deprecated_interface
> /<<PKGBUILDDIR>>/theano/tensor/signal/tests/test_pool.py:1111: UserWarning: DEPRECATION: the 'padding' parameter is not going to exist anymore as it is going to be replaced by the parameter 'pad'.
> y = pool_2d(input=x,
>
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_DownsampleFactorMaxStride
> FAILED theano/tensor/signal/tests/test_pool.py::TestDownsampleFactorMax::test_DownsampleFactorMaxPaddingStride
> ========== 2 failed, 424 passed, 14698 warnings in 259.23s (0:04:19) ===========
The full build log is available from:
http://qa-logs.debian.net/2022/12/20/theano_1.0.5+dfsg-8_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20221220;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20221220&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
More information about the debian-science-maintainers
mailing list