我从torch中把DataLoader模块迁移过来,因此重写了Dataset(就是_len_, getitem),然后使用GeneratorDataset替换pytorch中的DataLoader:demo:
set_base_path = Path(r"D:\datasets\test\test_pcap\test_save")
train_sets = FlowFragmentDataset(set_base_path / “train”, category_map=category_map) test_sets = FlowFragmentDataset(set_base_path / “test”, category_map=category_map)
collate_fn = FlowFragmentCNNRESCollateFn(mode=“train”, max_packet_length=8, packet_num=72, max_seq_num=512)
train_batch = 32
test_batch = 32
train_loader = (GeneratorDataset(train_sets, column_names=[“flow”], shuffle=True, num_parallel_workers=4) .batch(train_batch, per_batch_map=collate_fn, output_columns=[“flow”, “seq”, “seq_attention_mask”, “labels”]))
test_loader = GeneratorDataset(test_sets, column_names=[“flow”], shuffle=True, num_parallel_workers=4).batch(test_batch, per_batch_map=collate_fn, output_columns=[“flow”, “seq”, “seq_attention_mask”, “labels”])
for it in train_loader:
pass
使用该测试代码测试数据加载模块是否存在问题,但是在运行过程中,就会出现标题的错误,调试信息如下:Fatal Python error: Segmentation fault
Thread 0x0000ffff9d922120 (most recent call first):
Thread 0x0000ffffab9a2120 (most recent call first):
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 978 in asnumpy
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 474 in array
Thread 0x0000ffffae1b2120 (most recent call first):
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 978 in asnumpy
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 474 in array
Thread 0x0000ffffb09c2120 (most recent call first):
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 978 in asnumpy
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 474 in array
Thread 0x0000ffffb31d2120 (most recent call first):
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 978 in asnumpy
File “/usr/local/lib/python3.11/site-packages/mindspore/common/tensor.py”, line 474 in array
Thread 0x0000ffff03283120 (most recent call first):
File “/usr/local/lib/python3.11/threading.py”, line 327 in wait
File “/usr/local/lib/python3.11/multiprocessing/queues.py”, line 231 in _feed
File “/usr/local/lib/python3.11/threading.py”, line 982 in run
File “/usr/local/lib/python3.11/threading.py”, line 1045 in _bootstrap_inner
File “/usr/local/lib/python3.11/threading.py”, line 1002 in _bootstrap
Thread 0x0000ffffa1962120 (most recent call first):
File “/usr/local/lib/python3.11/threading.py”, line 327 in wait
File “/usr/local/lib/python3.11/multiprocessing/queues.py”, line 231 in _feed
File “/usr/local/lib/python3.11/threading.py”, line 982 in run
File “/usr/local/lib/python3.11/threading.py”, line 1045 in _bootstrap_inner
File “/usr/local/lib/python3.11/threading.py”, line 1002 in _bootstrap
Thread 0x0000ffffa4172120 (most recent call first):
File “/usr/local/lib/python3.11/threading.py”, line 327 in wait
File “/usr/local/lib/python3.11/multiprocessing/queues.py”, line 231 in _feed
File “/usr/local/lib/python3.11/threading.py”, line 982 in run
File “/usr/local/lib/python3.11/threading.py”, line 1045 in _bootstrap_inner
File “/usr/local/lib/python3.11/threading.py”, line 1002 in _bootstrap
Thread 0x0000ffffa6982120 (most recent call first):
File “/usr/local/lib/python3.11/threading.py”, line 327 in wait
File “/usr/local/lib/python3.11/multiprocessing/queues.py”, line 231 in _feed
File “/usr/local/lib/python3.11/threading.py”, line 982 in run
File “/usr/local/lib/python3.11/threading.py”, line 1045 in _bootstrap_inner
File “/usr/local/lib/python3.11/threading.py”, line 1002 in _bootstrap
Thread 0x0000ffffbbf62020 (most recent call first):
File “/usr/local/lib/python3.11/site-packages/mindspore/dataset/engine/iterators.py”, line 513 in _get_next
File “/usr/local/lib/python3.11/site-packages/mindspore/dataset/engine/iterators.py”, line 341 in serial_conversion_iteration
File “/usr/local/lib/python3.11/site-packages/mindspore/dataset/engine/iterators.py”, line 360 in next
File “/home/jy/programs/./test_error.py”, line 35 in