KAIR icon indicating copy to clipboard operation
KAIR copied to clipboard

ValueError: At least one stride in the given numpy array is negative, and tensors with negative strides are not currently supported.

Open mw66 opened this issue 3 weeks ago • 1 comments

reported also here:

https://github.com/JingyunLiang/SwinIR/issues/181

The stack trace is in KAIR, so it's a KAIR bug?

 F:\Projects\KAIR>F:\miniconda3\envs\jit\python.exe main_train_psnr.py --opt options/swinir/train_swinir_sr_lightweight.json

....

Traceback (most recent call last):
  File "F:\Projects\KAIR\main_train_psnr.py", line 252, in <module>
    main()
  File "F:\Projects\KAIR\main_train_psnr.py", line 172, in main
    for i, train_data in enumerate(train_loader):
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\dataloader.py", line 732, in __next__
    data = self._next_data()
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\dataloader.py", line 1506, in _next_data
    return self._process_data(data, worker_id)
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\dataloader.py", line 1541, in _process_data
    data.reraise()
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\_utils.py", line 769, in reraise
    raise exception
ValueError: Caught ValueError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\worker.py", line 349, in _worker_loop
    data = fetcher.fetch(index)  # type: ignore[possibly-undefined]
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\fetch.py", line 52, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\fetch.py", line 52, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "F:\Projects\KAIR\data\dataset_sr.py", line 97, in __getitem__
    img_H, img_L = util.single2tensor3(img_H), util.single2tensor3(img_L)
  File "F:\Projects\KAIR\utils\utils_image.py", line 307, in single2tensor3
    return torch.from_numpy(np.ascontiguousarray(img)).permute(2, 0, 1).float()
ValueError: At least one stride in the given numpy array is negative, and tensors with negative strides are not currently supported. (You can probably work around this by making a copy of your array  with array.copy().)

mw66 avatar Dec 07 '25 14:12 mw66

if options/swinir/train_swinir_sr_lightweight.json, change:

"H_size": 256

then, got the following error:

Traceback (most recent call last):
  File "F:\Projects\KAIR\main_train_psnr.py", line 252, in <module>
    main()
  File "F:\Projects\KAIR\main_train_psnr.py", line 172, in main
    for i, train_data in enumerate(train_loader):
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\dataloader.py", line 732, in __next__
    data = self._next_data()
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\dataloader.py", line 1506, in _next_data
    return self._process_data(data, worker_id)
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\dataloader.py", line 1541, in _process_data
    data.reraise()
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\_utils.py", line 769, in reraise
    raise exception
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\worker.py", line 349, in _worker_loop
    data = fetcher.fetch(index)  # type: ignore[possibly-undefined]
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\fetch.py", line 55, in fetch
    return self.collate_fn(data)
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\collate.py", line 398, in default_collate
    return collate(batch, collate_fn_map=default_collate_fn_map)
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\collate.py", line 171, in collate
    {
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\collate.py", line 172, in <dictcomp>
    key: collate(
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\collate.py", line 155, in collate
    return collate_fn_map[elem_type](batch, collate_fn_map=collate_fn_map)
  File "F:\miniconda3\envs\jit\lib\site-packages\torch\utils\data\_utils\collate.py", line 272, in collate_tensor_fn
    return torch.stack(batch, 0, out=out)
RuntimeError: stack expects each tensor to be equal size, but got [3, 12, 66] at entry 0 and [3, 232, 80] at entry 1

Are there something (data shape) in the model is hard coded?

mw66 avatar Dec 07 '25 14:12 mw66