pytorch_lightning框架ValueError: empty range for randrange() (0, -3016, -3016)

pytorch_lightning
问题:


root@7128c9029a5b:~/AI-lab/power_dekor_danyang# python train.py
<class 'list'> [0]
fold_i:  0
soft_labels is None
soft_labels is None
/opt/conda/lib/python3.8/site-packages/pytorch_lightning/utilities/warnings.py:18: RuntimeWarning: Displayed epoch numbers in the progress bar start from "1" until v0.6.x, but will start from "0" in v0.8.0.
  warnings.warn(*args, **kwargs)
/opt/conda/lib/python3.8/site-packages/pytorch_lightning/utilities/warnings.py:18: UserWarning: The dataloader, train dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` in the `DataLoader` init to improve performance.
  warnings.warn(*args, **kwargs)
/opt/conda/lib/python3.8/site-packages/pytorch_lightning/utilities/warnings.py:18: UserWarning: The dataloader, val dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` in the `DataLoader` init to improve performance.
  warnings.warn(*args, **kwargs)
Traceback (most recent call last):
  File "train.py", line 179, in <module>
    trainer.fit(model, train_dataloader, val_dataloader)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 704, in fit
    self.single_gpu_train(model)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/distrib_parts.py", line 477, in single_gpu_train
    self.run_pretrain_routine(model)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 864, in run_pretrain_routine
    self.train()
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 363, in train
    self.run_training_epoch()
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 421, in run_training_epoch
    for batch_idx, (batch, is_last_batch) in self.profiler.profile_iterable(
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/profiler/profilers.py", line 64, in profile_iterable
    value = next(iterator)
  File "/opt/conda/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 799, in _with_is_last
    last = next(it)
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 530, in __next__
    data = self._next_data()
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 570, in _next_data
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 49, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/root/AI-lab/power_dekor_danyang/dataset.py", line 62, in __getitem__
    top = round(random.randint(0, fill_h))
  File "/opt/conda/lib/python3.8/random.py", line 248, in randint
    return self.randrange(a, b+1)
  File "/opt/conda/lib/python3.8/random.py", line 226, in randrange
    raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (0, -3016, -3016)

问题出在图片大小上
解释:
这个网络是先填充再缩小
所以我们需要找到自己手里训练的图片中,宽和高的最大值,把其他图片都先填充到这个最大值
遍历了一下自己的图片
宽和高的最大值,取整后为1500和6000

datesets.py
修改代码:

h, w = image.shape[:2]
fill_h = 6000 - h
top = round(random.randint(0, fill_h))
fill_w = 1500 - w
left = round(random.randint(0, fill_w))

utility.py

parser.add_argument("--image_size", nargs="+", default=[150, 600])   # [200, 50]

修改为150,600
相当于缩小十倍

猜你喜欢

转载自blog.csdn.net/Qingyou__/article/details/125182789