perslev / U-Time

U-Time: A Fully Convolutional Network for Time Series Segmentation
MIT License
259 stars 68 forks source link

Unexpected channel loading error #3

Closed aluquecerp closed 4 years ago

aluquecerp commented 4 years ago

I tried to run the code following the instructions on Google Colab using Python 3 and GPU.
When I tried to run:

ut train --num_GPUs=1 --channels 'EEG Fpz-Cz'

I got the following error:

utime.errors.ChannelNotFoundError: Unexpected channel loading error. Should have loaded 1 channels (['EEG Fpz-Cz']), but the PSG array has shape (8406000, 2). There might be an error in the code. Please rais an issue on GitHub.

The previous steps were good. This is the whole message:

2020-04-07 00:58:08.072685: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1

Logged by: 'run' in 'train.py' Args dump: {'num_GPUs': 1, 'force_GPU': '', 'continue_training': False, 'initialize_from': None, 'log_file_prefix': '', 'overwrite': False, 'just_one': False, 'no_val': False, 'max_train_samples_per_epoch': 500000.0, 'val_samples_per_epoch': 50000.0, 'n_epochs': None, 'channels': ['EEG Fpz-Cz'], 'final_weights_file_name': 'model_weights.h5', 'train_on_val': False}

Logged by: 'init' in 'hparams.py' YAML path: /content/my_utime_project/hparams.yaml

Logged by: 'log_version' in 'version_controller.py' utime version: 0.0.1 (master, f4038e8)

Logged by: 'set_value' in 'hparams.py' Setting value '0.0.1' (type <class 'str'>) in subdir 'None' with name 'VERSION' Setting value 'master' (type <class 'str'>) in subdir 'None' with name 'BRANCH' Setting value 'f4038e8' (type <class 'str'>) in subdir 'None' with name 'COMMIT'

Logged by: 'save_current' in 'hparams.py' Saving current YAML configuration to file: /content/my_utime_project/hparams.yaml Setting value '['EEG Fpz-Cz']' (type <class 'list'>) in subdir 'None' with name 'select_channels' Saving current YAML configuration to file: /content/my_utime_project/hparams.yaml

Logged by: 'log' in 'sleep_study_dataset.py' [Dataset: dataset_1/TRAIN] SleepStudyDataset(identifier: dataset_1/TRAIN, N pairs: 91, N loaded: 0) [Dataset: dataset_1/VAL] SleepStudyDataset(identifier: dataset_1/VAL, N pairs: 32, N loaded: 0) [Dataset: dataset_1/TRAIN] Setting select channels: ['EEG Fpz-Cz'] [Dataset: dataset_1/VAL] Setting select channels: ['EEG Fpz-Cz'] [Dataset: dataset_1/TRAIN] Setting sample rate of 100 Hz [Dataset: dataset_1/VAL] Setting sample rate of 100 Hz [Dataset: dataset_1/TRAIN] Setting 'drop_class' strip function with parameters {'class_int': 5}... [Dataset: dataset_1/VAL] Setting 'drop_class' strip function with parameters {'class_int': 5}... [Dataset: dataset_1/TRAIN] Setting 'zero_out_noisy_epochs' quality control function with parameters {'max_times_global_iqr': 20}... [Dataset: dataset_1/VAL] Setting 'zero_out_noisy_epochs' quality control function with parameters {'max_times_global_iqr': 20}... [Dataset: dataset_1/TRAIN] Setting 'RobustScaler' scaler... [Dataset: dataset_1/VAL] Setting 'RobustScaler' scaler... [Dataset: dataset_1/TRAIN] Loading 91/91 SleepStudy objects... Traceback (most recent call last): File "/content/U-Time/utime/dataset/sleep_study.py", line 503, in _load_with_any_in load_channels=channel_set or None) File "/content/U-Time/utime/io/high_level_file_loaders.py", line 44, in load_psg data_dir=os.path.split(psg_file_path)[0]) File "/content/U-Time/utime/io/extractors/psg_extractors.py", line 105, in extract_psg_data len(load_channels), load_channels, psg_data.shape utime.errors.ChannelNotFoundError: Unexpected channel loading error. Should have loaded 1 channels (['EEG Fpz-Cz']), but the PSG array has shape (8406000, 2). There might be an error in the code. Please rais an issue on GitHub.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/content/U-Time/utime/dataset/sleep_study.py", line 595, in load self._load() File "/content/U-Time/utime/dataset/sleep_study.py", line 535, in _load self._psg, header, loaded_chanls = self._load_with_any_in(try_channels) File "/content/U-Time/utime/dataset/sleep_study.py", line 517, in _load_with_any_in raise err from e utime.errors.ChannelNotFoundError: Could not load select_channels ['EEG Fpz-Cz'] or alternative_select_channels [[]]

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/content/U-Time/utime/dataset/sleep_study_dataset.py", line 158, in load for i, ss in enumerate(res): File "/usr/lib/python3.6/concurrent/futures/_base.py", line 586, in result_iterator yield fs.pop().result() File "/usr/lib/python3.6/concurrent/futures/_base.py", line 432, in result return self.get_result() File "/usr/lib/python3.6/concurrent/futures/_base.py", line 384, in get_result raise self._exception File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run result = self.fn(*self.args, **self.kwargs) File "/content/U-Time/utime/dataset/sleep_study_dataset.py", line 156, in res = pool.map(lambda x: x.load(), to_load) File "/content/U-Time/utime/dataset/sleep_study.py", line 600, in load study_id=self.identifier) from e utime.errors.CouldNotLoadError: Unexpected load error for sleep study SC4011E0. Please refer to the above traceback.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/usr/local/bin/ut", line 11, in load_entry_point('utime', 'console_scripts', 'ut')() File "/content/U-Time/utime/bin/ut.py", line 55, in entry_func mod.entry_func(parsed.args) File "/content/U-Time/utime/bin/train.py", line 209, in entry_func raise e File "/content/U-Time/utime/bin/train.py", line 206, in entry_func run(args=args, gpu_mon=gpu_mon) File "/content/U-Time/utime/bin/train.py", line 142, in run d.load(1 if args.just_one else None) File "/content/U-Time/utime/dataset/sleep_study_dataset.py", line 163, in load "traceback.".format(e.study_id)) from e utime.errors.CouldNotLoadError: Could not load sleep study SC4011E0. Please refer to the above traceback.

perslev commented 4 years ago

Hi, thank you for raising this issue! I will look into it as soon as possible, but it might be a few days from now.

waves-lee commented 4 years ago

Hi, thank you for raising this issue! I will look into it as soon as possible, but it might be a few days from now.

Hello, I am very interested in your project, I want to be an entry project for me to learn brain signals, but I have the same problem when I run it(windows+python3.7+tensorflow-gpu2.0.0). Like this: `utime.errors.ChannelNotFoundError: Unexpected channel loading error. Should have loaded 1 channels (['EEG Fpz-Cz']), but the PSG array ha s shape (8220000, 2). There might be an error in the code. Please rais an issue on GitHub.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study.py", line 595, in load self._load() File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study.py", line 535, in _load self._psg, header, loaded_chanls = self._load_with_any_in(try_channels) File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study.py", line 517, in _load_with_any_in raise err from e utime.errors.ChannelNotFoundError: Could not load select_channels ['EEG Fpz-Cz'] or alternative_select_channels [[]]

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study_dataset.py", line 158, in load for i, ss in enumerate(res): File "D:\Program Files\Anaconda3\lib\concurrent\futures_base.py", line 598, in result_iterator yield fs.pop().result() File "D:\Program Files\Anaconda3\lib\concurrent\futures_base.py", line 435, in result return self.get_result() File "D:\Program Files\Anaconda3\lib\concurrent\futures_base.py", line 384, in get_result raise self._exception File "D:\Program Files\Anaconda3\lib\concurrent\futures\thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study_dataset.py", line 156, in res = pool.map(lambda x: x.load(), to_load) File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study.py", line 600, in load study_id=self.identifier) from e utime.errors.CouldNotLoadError: Unexpected load error for sleep study SC4471F0. Please refer to the above traceback.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "D:\Program Files\Anaconda3\Scripts\ut-script.py", line 11, in load_entry_point('utime', 'console_scripts', 'ut')() File "d:\workspace\pythonspace\u-time\utime\bin\ut.py", line 55, in entry_func mod.entry_func(parsed.args) File "d:\workspace\pythonspace\u-time\utime\bin\train.py", line 209, in entry_func raise e File "d:\workspace\pythonspace\u-time\utime\bin\train.py", line 206, in entry_func run(args=args, gpu_mon=gpu_mon) File "d:\workspace\pythonspace\u-time\utime\bin\train.py", line 142, in run d.load(1 if args.just_one else None) File "d:\workspace\pythonspace\u-time\utime\dataset\sleep_study_dataset.py", line 163, in load "traceback.".format(e.study_id)) from e utime.errors.CouldNotLoadError: Could not load sleep study SC4471F0. Please refer to the above traceback. `

It is difficult for a beginner like me ,to solve this problem. , I hope to get your help, thank you!

aluquecerp commented 4 years ago

Hi, @waves-lee

I made a fork of the repository and modified a bit of the code. It works on the example (I work usually on Google Colab) and at some cases. I am also a begginer, and I don't trust so much my code to work on every case. I would wait until @perslev develops a coherent and trustful solution, but you could try my code meanwhile.

https://github.com/aluquecerp/U-Time

waves-lee commented 4 years ago

Hi, @aluquecerp

I just tried the changes you made,it worked! Thank you soooooo much, you helped a lot. Also thanks @perslev for sharing your code. Now I can start to learn about it, hope you two have a nice day~

perslev commented 4 years ago

Thanks @aluquecerp for sharing your working version. Would one of you mind sharing your environment details so that I can try and reproduce this bug on my side?

E.g. output of pip freeze or conda env export.

Thanks!

aluquecerp commented 4 years ago

Hi, @perslev . I used a Google Colab Notebook. After using these two lines:

!git clone https://github.com/perslev/U-Time
!pip3 install -e U-Time

The pip freeze output is:

absl-py==0.9.0
alabaster==0.7.12
albumentations==0.1.12
altair==4.1.0
asgiref==3.2.7
astor==0.8.1
astropy==4.0.1.post1
astunparse==1.6.3
atari-py==0.2.6
atomicwrites==1.4.0
attrs==19.3.0
audioread==2.1.8
autograd==1.3
Babel==2.8.0
backcall==0.1.0
beautifulsoup4==4.6.3
bleach==3.1.5
blis==0.4.1
bokeh==1.4.0
boto==2.49.0
boto3==1.13.1
botocore==1.16.1
Bottleneck==1.3.2
branca==0.4.0
bs4==0.0.1
CacheControl==0.12.6
cachetools==3.1.1
catalogue==1.0.0
certifi==2020.4.5.1
cffi==1.14.0
chainer==6.5.0
chardet==3.0.4
click==7.1.2
cloudpickle==1.3.0
cmake==3.12.0
cmdstanpy==0.4.0
colorlover==0.3.0
community==1.0.0b1
contextlib2==0.5.5
convertdate==2.2.0
coverage==3.7.1
coveralls==0.5
crcmod==1.7
cufflinks==0.17.3
cvxopt==1.2.5
cvxpy==1.0.31
cycler==0.10.0
cymem==2.0.3
Cython==0.29.17
daft==0.0.4
dask==2.12.0
dataclasses==0.7
datascience==0.10.6
decorator==4.4.2
defusedxml==0.6.0
descartes==1.1.0
dill==0.3.1.1
distributed==1.25.3
Django==3.0.5
dlib==19.18.0
docopt==0.6.2
docutils==0.15.2
dopamine-rl==1.0.5
earthengine-api==0.1.220
easydict==1.9
ecos==2.0.7.post1
editdistance==0.5.3
en-core-web-sm==2.2.5
entrypoints==0.3
ephem==3.7.7.1
et-xmlfile==1.0.1
fa2==0.3.5
fancyimpute==0.4.3
fastai==1.0.61
fastdtw==0.3.4
fastprogress==0.2.3
fastrlock==0.4
fbprophet==0.6
feather-format==0.4.1
featuretools==0.4.1
filelock==3.0.12
firebase-admin==4.1.0
fix-yahoo-finance==0.0.22
Flask==1.1.2
folium==0.8.3
fsspec==0.7.3
future==0.16.0
gast==0.3.3
GDAL==2.2.2
gdown==3.6.4
gensim==3.6.0
geographiclib==1.50
geopy==1.17.0
gin-config==0.3.0
glob2==0.7
google==2.0.3
google-api-core==1.16.0
google-api-python-client==1.7.12
google-auth==1.7.2
google-auth-httplib2==0.0.3
google-auth-oauthlib==0.4.1
google-cloud-bigquery==1.21.0
google-cloud-core==1.0.3
google-cloud-datastore==1.8.0
google-cloud-firestore==1.6.2
google-cloud-language==1.2.0
google-cloud-storage==1.18.1
google-cloud-translate==1.5.0
google-colab==1.0.0
google-pasta==0.2.0
google-resumable-media==0.4.1
googleapis-common-protos==1.51.0
googledrivedownloader==0.4
graphviz==0.10.1
grpcio==1.28.1
gspread==3.0.1
gspread-dataframe==3.0.6
gym==0.17.1
h5py==2.10.0
HeapDict==1.0.1
holidays==0.9.12
html5lib==1.0.1
httpimport==0.5.18
httplib2==0.17.3
httplib2shim==0.0.3
humanize==0.5.1
hyperopt==0.1.2
ideep4py==2.0.0.post3
idna==2.9
image==1.5.31
imageio==2.4.1
imagesize==1.2.0
imbalanced-learn==0.4.3
imblearn==0.0
imgaug==0.2.9
importlib-metadata==1.6.0
imutils==0.5.3
inflect==2.1.0
intel-openmp==2020.0.133
intervaltree==2.1.0
ipykernel==4.10.1
ipython==5.5.0
ipython-genutils==0.2.0
ipython-sql==0.3.9
ipywidgets==7.5.1
itsdangerous==1.1.0
jax==0.1.64
jaxlib==0.1.45
jdcal==1.4.1
jedi==0.17.0
jieba==0.42.1
Jinja2==2.11.2
jmespath==0.9.5
joblib==0.14.1
jpeg4py==0.1.4
jsonschema==2.6.0
jupyter==1.0.0
jupyter-client==5.3.4
jupyter-console==5.2.0
jupyter-core==4.6.3
kaggle==1.5.6
kapre==0.1.3.1
Keras==2.3.1
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
keras-vis==0.4.1
kiwisolver==1.2.0
knnimpute==0.1.0
librosa==0.6.3
lightgbm==2.2.3
llvmlite==0.31.0
lmdb==0.98
lucid==0.3.8
LunarCalendar==0.0.9
lxml==4.2.6
Markdown==3.2.1
MarkupSafe==1.1.1
matplotlib==3.2.1
matplotlib-venn==0.11.5
missingno==0.4.2
mistune==0.8.4
mizani==0.6.0
mkl==2019.0
mlxtend==0.14.0
mne==0.20.3
more-itertools==8.2.0
moviepy==0.2.3.5
mpmath==1.1.0
msgpack==1.0.0
MultiPlanarUNet==0.2.3
multiprocess==0.70.9
multitasking==0.0.9
murmurhash==1.0.2
music21==5.5.0
natsort==5.5.0
nbconvert==5.6.1
nbformat==5.0.6
networkx==2.4
nibabel==3.0.2
nltk==3.2.5
notebook==5.2.2
np-utils==0.5.12.1
numba==0.48.0
numexpr==2.7.1
numpy==1.18.3
nvidia-ml-py3==7.352.0
oauth2client==4.1.3
oauthlib==3.1.0
okgrade==0.4.3
opencv-contrib-python==4.1.2.30
opencv-python==4.1.2.30
openpyxl==2.5.9
opt-einsum==3.2.1
osqp==0.6.1
packaging==20.3
palettable==3.3.0
pandas==1.0.3
pandas-datareader==0.8.1
pandas-gbq==0.11.0
pandas-profiling==1.4.1
pandocfilters==1.4.2
parso==0.7.0
pathlib==1.0.1
patsy==0.5.1
pexpect==4.8.0
pickleshare==0.7.5
Pillow==7.0.0
pip-tools==4.5.1
plac==1.1.3
plotly==4.4.1
plotnine==0.6.0
pluggy==0.7.1
portpicker==1.3.1
prefetch-generator==1.0.1
preshed==3.0.2
prettytable==0.7.2
progressbar2==3.38.0
prometheus-client==0.7.1
promise==2.3
prompt-toolkit==1.0.18
protobuf==3.10.0
psutil==5.7.0
psycopg2==2.7.6.1
ptvsd==5.0.0a12
ptyprocess==0.6.0
py==1.8.1
pyarrow==0.14.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycocotools==2.0.0
pycparser==2.20
pydata-google-auth==1.1.0
pydot==1.3.0
pydot-ng==2.0.0
pydotplus==2.0.2
PyDrive==1.3.1
pyemd==0.5.1
pyglet==1.5.0
Pygments==2.1.3
pygobject==3.26.1
pymc3==3.7
PyMeeus==0.3.7
pymongo==3.10.1
pymystem3==0.2.0
PyOpenGL==3.1.5
pyparsing==2.4.7
pyrsistent==0.16.0
pysndfile==1.3.8
PySocks==1.7.1
pystan==2.19.1.1
pytest==3.6.4
python-apt==1.6.5+ubuntu0.2
python-chess==0.23.11
python-dateutil==2.8.1
python-louvain==0.14
python-slugify==4.0.0
python-utils==2.4.0
pytz==2018.9
PyWavelets==1.1.1
PyYAML==3.13
pyzmq==19.0.0
qtconsole==4.7.3
QtPy==1.9.0
regex==2019.12.20
requests==2.23.0
requests-oauthlib==1.3.0
resampy==0.2.2
retrying==1.3.3
rpy2==3.2.7
rsa==4.0
ruamel.base==1.0.0
ruamel.yaml==0.16.10
ruamel.yaml.clib==0.2.0
s3fs==0.4.2
s3transfer==0.3.3
scikit-image==0.16.2
scikit-learn==0.22.2.post1
scipy==1.4.1
screen-resolution-extra==0.0.0
scs==2.1.2
seaborn==0.10.1
Send2Trash==1.5.0
setuptools-git==1.2
Shapely==1.7.0
simplegeneric==0.8.1
six==1.12.0
sklearn==0.0
sklearn-pandas==1.8.0
smart-open==2.0.0
snowballstemmer==2.0.0
sortedcontainers==2.1.0
spacy==2.2.4
Sphinx==1.8.5
sphinxcontrib-websupport==1.2.2
SQLAlchemy==1.3.16
sqlparse==0.3.1
srsly==1.0.2
statsmodels==0.10.2
sympy==1.1.1
tables==3.4.4
tabulate==0.8.7
tbb==2020.0.133
tblib==1.6.0
tensorboard==2.2.1
tensorboard-plugin-wit==1.6.0.post3
tensorboardcolab==0.0.22
tensorflow==2.2.0rc4
tensorflow-addons==0.8.3
tensorflow-datasets==2.1.0
tensorflow-estimator==2.2.0
tensorflow-gcs-config==2.1.8
tensorflow-hub==0.8.0
tensorflow-metadata==0.21.2
tensorflow-privacy==0.2.2
tensorflow-probability==0.10.0rc0
termcolor==1.1.0
terminado==0.8.3
testpath==0.4.4
text-unidecode==1.3
textblob==0.15.3
textgenrnn==1.4.1
Theano==1.0.4
thinc==7.4.0
toolz==0.10.0
torch==1.5.0+cu101
torchsummary==1.5.1
torchtext==0.3.1
torchvision==0.6.0+cu101
tornado==4.5.3
tqdm==4.38.0
traitlets==4.3.3
tweepy==3.6.0
typeguard==2.7.1
typing==3.6.6
typing-extensions==3.6.6
tzlocal==1.5.1
umap-learn==0.4.2
uritemplate==3.0.1
urllib3==1.24.3
-e git+https://github.com/perslev/U-Time@f4038e8d385254e8223fb05edb158417c0f9212f#egg=utime
vega-datasets==0.8.0
wasabi==0.6.0
wcwidth==0.1.9
webencodings==0.5.1
Werkzeug==1.0.1
widgetsnbextension==3.5.1
wordcloud==1.5.0
wrapt==1.12.1
xarray==0.15.1
xgboost==0.90
xkit==0.0.0
xlrd==1.1.0
xlwt==1.3.0
yellowbrick==0.9.1
zict==2.0.0
zipp==3.1.0
nengwp commented 4 years ago

My code also has errors. I have found a solution. mne==0.16.0 is enough, the higher version of mne uses a different api specifically to_data_frame() located in U-Time\utime\io\extractors\psg_extractors.py extract_from_mne_raw function _df = edf_obj.to_dataframe() Help you

nengwp commented 4 years ago

感谢@aluquecerp分享您的工作版本。你们中的一个人介意共享您的环境详细信息,以便我可以尝试并重现此错误吗?

例如pip freeze或的输出conda env export

谢谢!

My code also has errors. I have found a solution. mne==0.16.0 is enough, the higher version of mne uses a different api specifically to_data_frame() located in U-Time\utime\io\extractors\psg_extractors.py extract_from_mne_raw function df = edf_obj.to_data_frame() Help you

acrarshin commented 4 years ago

My code also has errors. I have found a solution. mne==0.16.0 is enough, the higher version of mne uses a different api specifically to_data_frame() located in U-Time\utime\io\extractors\psg_extractors.py extract_from_mne_raw function _df = edf_obj.to_dataframe() Help you

This worked for me. Thank you.