HanHan55/Graph2plan

When I ran the train.py file, I encountered a problem, I hope you can answer it. Thank you.

Closed this issue · 1 comments

Create dir...
Create dataloader...
Traceback (most recent call last):
File "train.py", line 604, in
main(args)
File "train.py", line 235, in main
train_loader,valid_loader,test_loader = get_data_loaders(args)
File "train.py", line 135, in get_data_loaders
valid_dataset = get_dataset(args,'valid')
File "train.py", line 120, in get_dataset
return FloorPlanDataset(f'{args.dataset_dir}/data_{split}.mat')
File "/home/zhaoliuqing/wry/Graph2plan-master/Network/model/floorplan.py", line 211, in init
self.data = sio.loadmat(data_path, squeeze_me=True, struct_as_record=False)['data']
File "/home/zhaoliuqing/anaconda3/lib/python3.7/site-packages/scipy/io/matlab/mio.py", line 208, in loadmat
matfile_dict = MR.get_variables(variable_names)
File "/home/zhaoliuqing/anaconda3/lib/python3.7/site-packages/scipy/io/matlab/mio5.py", line 292, in get_variables
res = self.read_var_array(hdr, process)
File "/home/zhaoliuqing/anaconda3/lib/python3.7/site-packages/scipy/io/matlab/mio5.py", line 252, in read_var_array
return self._matrix_reader.array_from_header(header, process)
File "mio5_utils.pyx", line 675, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
File "mio5_utils.pyx", line 721, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
File "mio5_utils.pyx", line 894, in scipy.io.matlab.mio5_utils.VarReader5.read_cells
File "mio5_utils.pyx", line 673, in scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
File "mio5_utils.pyx", line 723, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
File "mio5_utils.pyx", line 978, in scipy.io.matlab.mio5_utils.VarReader5.read_struct
File "mio5_utils.pyx", line 673, in scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
File "mio5_utils.pyx", line 721, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
File "mio5_utils.pyx", line 894, in scipy.io.matlab.mio5_utils.VarReader5.read_cells
File "mio5_utils.pyx", line 672, in scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
File "mio5_utils.pyx", line 617, in scipy.io.matlab.mio5_utils.VarReader5.read_header
File "mio5_utils.pyx", line 487, in scipy.io.matlab.mio5_utils.VarReader5.read_int8_string
File "mio5_utils.pyx", line 349, in scipy.io.matlab.mio5_utils.VarReader5.read_element
File "mio5_utils.pyx", line 286, in scipy.io.matlab.mio5_utils.VarReader5.cread_tag
File "streams.pyx", line 86, in scipy.io.matlab.streams.GenericStream.read_into
OSError: could not read bytes

It seems a problem with scipy or data.
We use scipy==1.4.1. You can try to load the data with the minimal code:

import scipy.io as sio
data = sio.io.loadmat('data.mat', squeeze_me=True, struct_as_record=False)['data']
print(len(data)) # a data list

If it fails, please check if the data are correctly extracted.
For the Network/data/data_train.mat, it has a size of 93,586,704 bytes.