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
相当于缩小十倍