DBNet.pytorch icon indicating copy to clipboard operation
DBNet.pytorch copied to clipboard

DBNet.pytorch/base/base_dataset.py中load_data(self, data_path: str) -> list方法返回空列表

Open Cavaradossi opened this issue 5 years ago • 23 comments

配置文件写的绝对路径, train.txt和test.txt按repo组织的

dataset:  
  train:  
    dataset:
      args:
        data_path:
          - /home/my_name/DBNet.pytorch/datasets/train.txt
        img_mode: RGB
    loader:
      batch_size: 1
      shuffle: true
      pin_memory: true
      num_workers: 6
      collate_fn: ''
  validate:
    dataset:
      args:
        data_path:
          - /home/my_name/DBNet.pytorch/datasets/test.txt

运行bash singlel_gpu_train.sh ,报错

Traceback (most recent call last):
  File "tools/train.py", line 78, in <module>
    main(config)
  File "tools/train.py", line 36, in main
    train_loader = get_dataloader(config['dataset']['train'], config['distributed'])
  File "/home/my_name/DBNet.pytorch/data_loader/__init__.py", line 87, in get_dataloader
    _dataset = get_dataset(data_path=data_path, module_name=dataset_name, transform=img_transfroms, dataset_args=dataset_args)
  File "/home/my_name/DBNet.pytorch/data_loader/__init__.py", line 24, in get_dataset
    **dataset_args)
  File "/home/my_name/DBNet.pytorch/data_loader/dataset.py", line 17, in __init__
    super().__init__(data_path, img_mode, pre_processes, filter_keys, ignore_tags, transform)
  File "/home/my_name/DBNet.pytorch/base/base_dataset.py", line 19, in __init__
    assert item in self.data_list[0], 'data_list from load_data must contains {}'.format(item_keys)
IndexError: list index out of range

打印出config_file为: config/icdar2015_resnet18_FPN_DBhead_polyLR.yaml 打印出data_path为: /home/my_name/DBNet.pytorch/datasets/train.txt self.data_list为空列表

Cavaradossi avatar Sep 04 '20 03:09 Cavaradossi

同样问题,请问解决了吗

northwill avatar Sep 15 '20 12:09 northwill

检查一下图片路径对不

WenmuZhou avatar Sep 15 '20 14:09 WenmuZhou

在data_loader/init.py中的 data_path 输出为 ['./datasets/train.txt'],这正常吗

northwill avatar Sep 16 '20 03:09 northwill

这是你的文件吗

WenmuZhou avatar Sep 16 '20 04:09 WenmuZhou

对阿,照着说明放的训练数据,路径应该不可能错阿

northwill avatar Sep 16 '20 07:09 northwill

config the dataset['train']['dataset'['data_path']',dataset['validate']['dataset'['data_path']in config/icdar2015_resnet18_fpn_DBhead_polyLR.yaml 这个配置文件里面的内容不需要改吧,你不都给了,我一点没动它

northwill avatar Sep 16 '20 07:09 northwill

如果能正常run起来的话self.data_list是什么样子?

Cavaradossi avatar Sep 16 '20 08:09 Cavaradossi

遇到同样问题,有解决吗?

karagg avatar Sep 25 '20 11:09 karagg

同样报错,owner能否看一下什么问题呢 @WenmuZhou

Frank1412 avatar Sep 27 '20 07:09 Frank1412

我觉得是你们路径出现了问题,建议debug一下

WenmuZhou avatar Sep 28 '20 03:09 WenmuZhou

@WenmuZhou 你的base/base_dataset.py文件的load_data函数有问题,直接抛出异常了,应该返回一个dict,你可能不小心删了?

Frank1412 avatar Sep 28 '20 03:09 Frank1412

遇到同样的问题,但是解决了,是在数据制作的时候出现问题了:train.txt 里面图片的路径指定到test文件夹了。类似这样./datasets/test/img/1039_test_l.jpg ./datasets/test/gt/1039_test_l.txt 。注意检查txt文件里面的图片路径即可。

younglalala avatar Sep 28 '20 07:09 younglalala

以解决,路径问题。

northwill avatar Sep 28 '20 07:09 northwill

@WenmuZhou 用单个gpu的时候还是这个问题,BaseDataset这个类的构造函数直接报错了。。。调用的load_data函数是不是有问题

Frank1412 avatar Sep 28 '20 09:09 Frank1412

遇到同样的问题,但是解决了,是在数据制作的时候出现问题了:train.txt 里面图片的路径指定到test文件夹了。类似这样./datasets/test/img/1039_test_l.jpg ./datasets/test/gt/1039_test_l.txt 。注意检查txt文件里面的图片路径即可。

我检查了还是一样报错

Breezewrf avatar Oct 03 '20 04:10 Breezewrf

def load_data(self, data_path: str) -> list: """ 把数据加载为一个list: :params data_path: 存储数据的文件夹或者文件 return a dict ,包含了,'img_path','img_name','text_polys','texts','ignore_tags' """ raise NotImplementedError 就这个代码,给他什么path都得引发异常的吧?

Breezewrf avatar Oct 03 '20 04:10 Breezewrf

同遇到这个问题,检查后确实是文件路径的问题

lightis-tian avatar Dec 11 '20 10:12 lightis-tian

@WenmuZhou 用单个gpu的时候还是这个问题,BaseDataset这个类的构造函数直接报错了。。。调用的load_data函数是不是有问题

请问你解决了吗

whgao97 avatar Mar 05 '21 12:03 whgao97

同遇到这个问题,检查后确实是文件路径的问题

请问检查过两个txt文件,路径都没有问题,self.data_list有数据,但还是报IndexError: list index out of range这个错,可能是哪里的问题呢?

BigWhit avatar Mar 31 '21 02:03 BigWhit

def load_data(self, data_path: str) -> list: """ 把数据加载为一个list: :params data_path: 存储数据的文件夹或者文件 return a dict ,包含了,'img_path','img_name','text_polys','texts','ignore_tags' """ raise NotImplementedError 就这个代码,给他什么path都得引发异常的吧?

请问你解决了吗@Breezewrf

summer-1010 avatar Jun 18 '21 09:06 summer-1010

真的是資料格式問題诶... 改了以後就可以往下跑了

ekils avatar Sep 17 '21 01:09 ekils

同问题,已解决。最后处在txt文件的路径上,默认是./datasets/XXX,改为带盘符的绝对路径比如D:XXX/dataset/XXX就好了,不太清楚为啥,其他的路径都没有用这种形式,但是不该就跑不通

asd494961038 avatar Nov 04 '21 05:11 asd494961038