jocpae / VesselGraph

MIT License
112 stars 9 forks source link

Process to run the baseline algorithm #2

Closed sleepymalc closed 2 years ago

sleepymalc commented 2 years ago

I'm facing some technical difficulties. I have all the required packages installed, and I follow the instructions as follows.

  1. Run sh ./source/ogb_dataset/link_prediction/update_ogbl_master.sh, Run sh ./source/ogb_dataset/node_classification/update_ogbn_master.sh
  2. Start training. Run cd VesselGraph/source/baseline_models/link_prediction/OGB_Node2Vec/. Run python3 node2vec.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr. Then I have the following.
    ❯ python3 node2vec.py
    Traceback (most recent call last):
    File "node2vec.py", line 85, in <module>
    main()
    File "node2vec.py", line 46, in main
    dataset = PygLinkPropPredDataset(name=args.dataset,
    File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/ogb/linkproppred/dataset_pyg.py", line 39, in __init__
    raise ValueError(error_mssg)
    ValueError: Invalid dataset name ogbl-link_vessap_roi3_spatial_no_edge_attr.
    Available datasets are as follows:
    ogbl-ppa
    ogbl-collab
    ogbl-citation2
    ogbl-wikikg2
    ogbl-ddi
    ogbl-biokg

Am I doing anything wrong? Seems like this should do the job since, in the doc, it says that it'll download the dataset automatically.

jqmcginnis commented 2 years ago

Hi @sleepymalc,

thanks for the interest and sorry for the problems getting our dataset ready for you. It seems that node2vec.py and the ogb package only see the original ogb datasets, and not our extension datasets. Let's check two things:

1) Can you please open the master.csv in VesselGraph/source/ogb/linkproppred and check if the column ogbl-link_vessap_roi3_spatial_no_edge_attr exists. This allows us to verify that indeed the OGB package should know all graphs.

2) Did you directly install ogb as a package as well? If so, please try to use an environment that does not feature the ogb package. My guess would be that this causes the current conflict.

Please provide us with an update regarding your efforts, I am sure we will get it up and running.

sleepymalc commented 2 years ago

Hi @jqmcginnis, I have checked both:

  1. In master.csv, I'm sure that all files are there, including ogbl-link_vessap_roi3_spatial_no_edge_attr.
  2. Yup, I directly install ogb using pip install ogb under my anaconda env. I uninstall it for now, and I'm now trying to run python3 seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature directly. Then I have the following error messages:

    WARNING:root:The OGB package is out of date. Your version is 1.3.1, while the latest version is 1.3.2.
    Results will be saved in results/ogbl-BALBc_no1_spatial_no_edge_attr_20220217135814
    Command line input: python seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature
    is saved.
    Downloading https://syncandshare.lrz.de/dl/fiHHnVwcmQsnZXfkKFLeo4Le/BALBc_no1_spatial_no_edge_attr.zip
    Downloaded 0.16 GB: 100%|█████████████████████████████████████████| 168/168 [06:25<00:00,  2.30s/it]
    Extracting /Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/dataset/BALBc_no1_spatial_no_edge_attr.zip
    Processing...
    Loading necessary files...
    This might take a while.
    Processing graphs...
    100%|██████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 30174.85it/s]
    Converting graphs into PyG objects...
    100%|████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 835.35it/s]
    Saving...
    Done!
    spatial!
    spatial
    spatial
    /Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch_geometric/deprecation.py:13: UserWarning: 'data.DataLoader' is deprecated, use 'loader.DataLoader' instead
    warnings.warn(out)
    /Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py:478: UserWarning: This DataLoader will create 16 worker processes in total. Our suggested max number of worker in current system is 10 (`cpuset` is not taken into account), which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
    warnings.warn(_create_warning_msg(
    /Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/utils.py:108: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
    dist_over_2, dist_mod_2 = dist // 2, dist % 2
    Total number of parameters is 43874
    SortPooling k is set to 10
    0%|                                      | 0/267295 [00:00<?, ?it/s]WARNING:root:The OGB package is out of date. Your version is 1.3.1, while the latest version is 1.3.2.
    Results will be saved in results/ogbl-BALBc_no1_spatial_no_edge_attr_20220217140458
    Command line input: python /Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature
    is saved.
    spatial!
    spatial
    spatial
    /Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch_geometric/deprecation.py:13: UserWarning: 'data.DataLoader' is deprecated, use 'loader.DataLoader' instead
    warnings.warn(out)
    /Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py:478: UserWarning: This DataLoader will create 16 worker processes in total. Our suggested max number of worker in current system is 10 (`cpuset` is not taken into account), which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
    warnings.warn(_create_warning_msg(
    /Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/utils.py:108: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
    dist_over_2, dist_mod_2 = dist // 2, dist % 2
    Total number of parameters is 43874
    SortPooling k is set to 10
    0%|                                      | 0/267295 [00:00<?, ?it/s]
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
    prepare(preparation_data)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
    File "/Users/pbb/opt/anaconda3/lib/python3.8/runpy.py", line 265, in run_path
    return _run_module_code(code, init_globals, run_name,
    File "/Users/pbb/opt/anaconda3/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
    File "/Users/pbb/opt/anaconda3/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
    File "/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/seal_link_pred.py", line 796, in <module>
    loss = train()
    File "/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/seal_link_pred.py", line 199, in train
    for data in pbar:
    File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/tqdm/std.py", line 1180, in __iter__
    for obj in iterable:
    File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 359, in __iter__
    return self._get_iterator()
    File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 305, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 918, in __init__
    w.start()
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
    return Popen(process_obj)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 42, in _launch
    prep_data = spawn.get_preparation_data(process_obj._name)
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
    File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
    RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.
    
        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:
    
            if __name__ == '__main__':
                freeze_support()
                ...
    
        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

    This is exactly what I had before installing ogb directly (before this, I can run some others without issues). Not sure what to do at this point.

I notice that it says something about worker processes, while I'm not sure whether this is relevant, but I'm using 2021 MacBook pro with m1 pro chip.

Hope the above error messages would be useful.

jqmcginnis commented 2 years ago

Hey @sleepymalc,

thanks for the testing! To be fair, we have not tested the pipeline on MacBook Pro (M1) to this date, so sorry for any convenience caused with that. I would like to dig deeper into this - could you export the .yml conda enviornment file and copy paste it here? Perhaps that allows us to infer the problem!

Thanks for the patience!

Best regards, Julian

sleepymalc commented 2 years ago

Hi @jqmcginnis, here is my environment.

name: base
channels:
  - pyg
  - gurobi
  - pytorch
  - conda-forge
  - http://conda.anaconda.org/gurobi
  - defaults
dependencies:
  - _anaconda_depends=2021.11=py38_0
  - _ipyw_jlab_nb_ext_conf=0.1.0=py38_0
  - absl-py=1.0.0=pyhd8ed1ab_0
  - aiohttp=3.8.1=py38hca72f7f_0
  - aiosignal=1.2.0=pyhd3eb1b0_0
  - alabaster=0.7.12=pyhd3eb1b0_0
  - anaconda=custom=py38_1
  - anaconda-client=1.9.0=py38hecd8cb5_0
  - anaconda-navigator=2.1.1=py38_0
  - anaconda-project=0.10.2=pyhd3eb1b0_0
  - anyio=3.5.0=py38hecd8cb5_0
  - applaunchservices=0.2.1=pyhd3eb1b0_0
  - appnope=0.1.2=py38hecd8cb5_1001
  - appscript=1.1.2=py38h9ed2024_0
  - argh=0.26.2=py38_0
  - argon2-cffi=20.1.0=py38h9ed2024_1
  - arrow=0.13.1=py38_0
  - asn1crypto=1.4.0=py_0
  - astroid=2.6.6=py38hecd8cb5_0
  - astropy=5.0=py38h7588534_0
  - async-timeout=4.0.2=pyhd8ed1ab_0
  - async_generator=1.10=pyhd3eb1b0_0
  - atomicwrites=1.4.0=py_0
  - attrs=21.4.0=pyhd3eb1b0_0
  - autopep8=1.6.0=pyhd3eb1b0_0
  - babel=2.9.1=pyhd3eb1b0_0
  - backcall=0.2.0=pyhd3eb1b0_0
  - backports=1.1=pyhd3eb1b0_0
  - backports.functools_lru_cache=1.6.4=pyhd3eb1b0_0
  - backports.shutil_get_terminal_size=1.0.0=pyhd3eb1b0_3
  - backports.tempfile=1.0=pyhd3eb1b0_1
  - backports.weakref=1.0.post1=py_1
  - beautifulsoup4=4.10.0=pyh06a4308_0
  - binaryornot=0.4.4=pyhd3eb1b0_1
  - bitarray=2.3.5=py38hca72f7f_0
  - bkcharts=0.2=py38_0
  - black=19.10b0=py_0
  - blas=1.0=mkl
  - bleach=4.1.0=pyhd3eb1b0_0
  - blinker=1.4=py_1
  - blosc=1.21.0=h2842e9f_0
  - bokeh=2.4.2=py38hecd8cb5_0
  - boto=2.49.0=py38_0
  - bottleneck=1.3.2=py38hf1fa96c_1
  - brotli=1.0.9=hb1e8313_2
  - brotlipy=0.7.0=py38h9ed2024_1003
  - brunsli=0.1=h23ab428_0
  - bzip2=1.0.8=h1de35cc_0
  - c-ares=1.18.1=hca72f7f_0
  - ca-certificates=2021.10.8=h033912b_0
  - cachetools=4.2.4=pyhd8ed1ab_0
  - certifi=2021.10.8=py38h50d1736_1
  - cffi=1.15.0=py38hc55c11b_1
  - cfitsio=3.470=hee0f690_6
  - chardet=4.0.0=py38hecd8cb5_1003
  - charls=2.2.0=h23ab428_0
  - charset-normalizer=2.0.4=pyhd3eb1b0_0
  - click=8.0.3=pyhd3eb1b0_0
  - cloudpickle=2.0.0=pyhd3eb1b0_0
  - clyent=1.2.2=py38_1
  - colorama=0.4.4=pyhd3eb1b0_0
  - conda=4.11.0=py38h50d1736_0
  - conda-build=3.21.6=py38hecd8cb5_0
  - conda-content-trust=0.1.1=pyhd3eb1b0_0
  - conda-env=2.6.0=1
  - conda-pack=0.6.0=pyhd3eb1b0_0
  - conda-package-handling=1.7.3=py38h9ed2024_1
  - conda-repo-cli=1.0.4=pyhd3eb1b0_0
  - conda-token=0.3.0=pyhd3eb1b0_0
  - conda-verify=3.4.2=py_1
  - contextlib2=0.6.0.post1=pyhd3eb1b0_0
  - cookiecutter=1.7.2=pyhd3eb1b0_0
  - cryptography=3.4.8=py38h2fd3fbb_0
  - curl=7.80.0=hca72f7f_0
  - cycler=0.11.0=pyhd3eb1b0_0
  - cython=0.29.25=py38he9d5cce_0
  - cytoolz=0.11.0=py38haf1e3a3_0
  - daal4py=2021.3.0=py38h01d92e1_0
  - dal=2021.3.0=hecd8cb5_555
  - dask=2021.10.0=pyhd3eb1b0_0
  - dask-core=2021.10.0=pyhd3eb1b0_0
  - dataclasses=0.8=pyh6d0b6a4_7
  - dbus=1.13.18=h18a8e69_0
  - debugpy=1.5.1=py38he9d5cce_0
  - decorator=5.1.1=pyhd3eb1b0_0
  - defusedxml=0.7.1=pyhd3eb1b0_0
  - diff-match-patch=20200713=pyhd3eb1b0_0
  - distributed=2021.10.0=py38hecd8cb5_0
  - docutils=0.17.1=py38hecd8cb5_1
  - entrypoints=0.3=py38_0
  - et_xmlfile=1.1.0=py38hecd8cb5_0
  - expat=2.4.4=he9d5cce_0
  - fastcache=1.1.0=py38h1de35cc_0
  - ffmpeg=4.3=h0a44026_0
  - filelock=3.4.2=pyhd3eb1b0_0
  - flake8=3.9.2=pyhd3eb1b0_0
  - flask=1.1.2=pyhd3eb1b0_0
  - fonttools=4.25.0=pyhd3eb1b0_0
  - freetype=2.11.0=hd8bbffd_0
  - frozenlist=1.2.0=py38h96a0964_1
  - fsspec=2022.1.0=pyhd3eb1b0_0
  - future=0.18.2=py38_1
  - get_terminal_size=1.0.0=h7520d66_0
  - gettext=0.21.0=h7535e17_0
  - gevent=21.8.0=py38h9ed2024_1
  - giflib=5.2.1=haf1e3a3_0
  - glib=2.69.1=h8346a28_1
  - glob2=0.7=pyhd3eb1b0_0
  - gmp=6.2.1=h23ab428_2
  - gmpy2=2.0.8=py38h6ef4df4_3
  - gnutls=3.6.15=hed9c0bf_0
  - google-auth=2.3.3=pyh6c4a22f_0
  - google-auth-oauthlib=0.4.6=pyhd8ed1ab_0
  - googledrivedownloader=0.4=pyhd3deb0d_1
  - greenlet=1.1.1=py38h23ab428_0
  - grpcio=1.42.0=py38ha29bfda_0
  - gurobi=9.5.0=py38_0
  - h5py=2.10.0=py38h3134771_0
  - hdf5=1.10.4=hfa1e0ec_0
  - heapdict=1.0.1=pyhd3eb1b0_0
  - html5lib=1.1=pyhd3eb1b0_0
  - icu=58.2=h0a44026_3
  - idna=3.3=pyhd3eb1b0_0
  - imagecodecs=2021.8.26=py38ha952a84_0
  - imageio=2.9.0=pyhd3eb1b0_0
  - imagesize=1.3.0=pyhd3eb1b0_0
  - importlib-metadata=4.8.2=py38hecd8cb5_0
  - importlib_metadata=4.8.2=hd3eb1b0_0
  - inflection=0.5.1=py38hecd8cb5_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - intel-openmp=2021.4.0=hecd8cb5_3538
  - intervaltree=3.1.0=pyhd3eb1b0_0
  - ipykernel=6.4.1=py38hecd8cb5_1
  - ipython=7.31.1=py38hecd8cb5_0
  - ipython_genutils=0.2.0=pyhd3eb1b0_1
  - ipywidgets=7.6.5=pyhd3eb1b0_1
  - isort=5.9.3=pyhd3eb1b0_0
  - itsdangerous=2.0.1=pyhd3eb1b0_0
  - jbig=2.1=h4d881f8_0
  - jdcal=1.4.1=pyhd3eb1b0_0
  - jedi=0.18.1=py38hecd8cb5_1
  - jinja2=2.11.3=pyhd3eb1b0_0
  - jinja2-time=0.2.0=pyhd3eb1b0_2
  - joblib=1.1.0=pyhd3eb1b0_0
  - jpeg=9d=h9ed2024_0
  - json5=0.9.6=pyhd3eb1b0_0
  - jsonschema=3.2.0=pyhd3eb1b0_2
  - jupyter=1.0.0=py38_7
  - jupyter_client=6.1.12=pyhd3eb1b0_0
  - jupyter_console=6.4.0=pyhd3eb1b0_0
  - jupyter_core=4.9.1=py38hecd8cb5_0
  - jupyter_server=1.13.5=pyhd3eb1b0_0
  - jupyterlab=3.2.9=pyhd3eb1b0_0
  - jupyterlab_pygments=0.1.2=py_0
  - jupyterlab_server=2.10.3=pyhd3eb1b0_1
  - jupyterlab_widgets=1.0.0=pyhd3eb1b0_1
  - jxrlib=1.1=haf1e3a3_2
  - keyring=23.4.0=py38hecd8cb5_0
  - kiwisolver=1.3.1=py38h23ab428_0
  - krb5=1.19.2=hcd88c3b_0
  - lame=3.100=h1de35cc_0
  - lazy-object-proxy=1.6.0=py38h9ed2024_0
  - lcms2=2.12=hf1fd2bf_0
  - lerc=3.0=he9d5cce_0
  - libaec=1.0.4=hb1e8313_1
  - libarchive=3.4.2=haa3ed63_0
  - libcurl=7.80.0=h6dfd666_0
  - libcxx=12.0.0=h2f01273_0
  - libdeflate=1.8=h9ed2024_5
  - libedit=3.1.20210910=hca72f7f_0
  - libev=4.33=h9ed2024_1
  - libffi=3.3=hb1e8313_2
  - libgfortran=3.0.1=h93005f0_2
  - libiconv=1.16=h1de35cc_0
  - libidn2=2.3.2=h9ed2024_0
  - liblief=0.10.1=h0a44026_0
  - libllvm11=11.1.0=h9b2ccf5_0
  - libnghttp2=1.46.0=ha29bfda_0
  - libpng=1.6.37=ha441bb4_0
  - libprotobuf=3.19.1=h8346a28_0
  - libsodium=1.0.18=h1de35cc_0
  - libspatialindex=1.9.3=h23ab428_0
  - libssh2=1.9.0=ha12b0ac_1
  - libtasn1=4.16.0=h9ed2024_0
  - libtiff=4.2.0=h87d7836_0
  - libunistring=0.9.10=h9ed2024_0
  - libuv=1.40.0=haf1e3a3_0
  - libwebp=1.2.0=hacca55c_0
  - libwebp-base=1.2.0=h9ed2024_0
  - libxml2=2.9.12=hcdb78fc_0
  - libxslt=1.1.34=h83b36ba_0
  - libzopfli=1.0.3=hb1e8313_0
  - llvm-openmp=12.0.0=h0dcd299_1
  - llvmlite=0.37.0=py38he4411ff_1
  - locket=0.2.1=py38hecd8cb5_1
  - lxml=4.7.1=py38h65b224f_1
  - lz4-c=1.9.3=h23ab428_1
  - lzo=2.10=haf1e3a3_2
  - markdown=3.3.6=pyhd8ed1ab_0
  - markupsafe=1.1.1=py38h1de35cc_1
  - matplotlib=3.5.0=py38hecd8cb5_0
  - matplotlib-base=3.5.0=py38h4f681db_0
  - matplotlib-inline=0.1.2=pyhd3eb1b0_2
  - mccabe=0.6.1=py38_1
  - mistune=0.8.4=py38h1de35cc_1001
  - mkl=2021.4.0=hecd8cb5_637
  - mkl-service=2.4.0=py38h9ed2024_0
  - mkl_fft=1.3.1=py38h4ab4a9b_0
  - mkl_random=1.2.2=py38hb2f4e1b_0
  - mock=4.0.3=pyhd3eb1b0_0
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - mpc=1.1.0=h6ef4df4_1
  - mpfr=4.0.2=h9066e36_1
  - mpi=1.0=mpich
  - mpich=3.3.2=hc856adb_0
  - mpmath=1.2.1=py38hecd8cb5_0
  - msgpack-python=1.0.2=py38hf7b0b51_1
  - multidict=5.2.0=py38hca72f7f_2
  - multipledispatch=0.6.0=py38_0
  - munkres=1.1.4=py_0
  - mypy_extensions=0.4.3=py38hecd8cb5_1
  - navigator-updater=0.2.1=py38_0
  - nbclassic=0.2.6=pyhd3eb1b0_0
  - nbclient=0.5.3=pyhd3eb1b0_0
  - nbconvert=6.3.0=py38hecd8cb5_0
  - nbformat=5.1.3=pyhd3eb1b0_0
  - ncurses=6.3=hca72f7f_2
  - nest-asyncio=1.5.1=pyhd3eb1b0_0
  - nettle=3.7.3=h230ac6f_1
  - networkx=2.6.3=pyhd3eb1b0_0
  - nltk=3.6.5=pyhd3eb1b0_0
  - nose=1.3.7=pyhd3eb1b0_1008
  - notebook=6.4.6=py38hecd8cb5_0
  - numba=0.54.1=py38hae1ba45_0
  - numexpr=2.8.1=py38h2e5f0a9_0
  - numpy=1.20.3=py38h4b4dc7a_0
  - numpy-base=1.20.3=py38he0bd621_0
  - numpydoc=1.2=pyhd3eb1b0_0
  - oauthlib=3.1.1=pyhd3eb1b0_0
  - olefile=0.46=pyhd3eb1b0_0
  - openh264=2.1.1=h8346a28_0
  - openjpeg=2.4.0=h66ea3da_0
  - openpyxl=3.0.9=pyhd3eb1b0_0
  - openssl=1.1.1l=h0d85af4_0
  - packaging=21.3=pyhd3eb1b0_0
  - pandas=1.3.5=py38h743cdd8_0
  - pandocfilters=1.5.0=pyhd3eb1b0_0
  - parso=0.8.3=pyhd3eb1b0_0
  - partd=1.2.0=pyhd3eb1b0_0
  - path=16.2.0=pyhd3eb1b0_0
  - path.py=12.5.0=hd3eb1b0_0
  - pathlib2=2.3.6=py38hecd8cb5_2
  - pathspec=0.7.0=py_0
  - patsy=0.5.2=py38hecd8cb5_1
  - pcre=8.45=h23ab428_0
  - pep8=1.7.1=py38_0
  - pexpect=4.8.0=pyhd3eb1b0_3
  - pickleshare=0.7.5=pyhd3eb1b0_1003
  - pillow=8.4.0=py38h98e4679_0
  - pip=21.2.4=py38hecd8cb5_0
  - pkginfo=1.8.2=pyhd3eb1b0_0
  - pluggy=1.0.0=py38hecd8cb5_0
  - ply=3.11=py38_0
  - poyo=0.5.0=pyhd3eb1b0_0
  - prometheus_client=0.13.1=pyhd3eb1b0_0
  - prompt-toolkit=3.0.20=pyhd3eb1b0_0
  - prompt_toolkit=3.0.20=hd3eb1b0_0
  - protobuf=3.19.1=py38he9d5cce_0
  - psutil=5.8.0=py38h9ed2024_1
  - ptyprocess=0.7.0=pyhd3eb1b0_2
  - py=1.11.0=pyhd3eb1b0_0
  - py-lief=0.10.1=py38haf313ee_0
  - pyasn1=0.4.8=pyhd3eb1b0_0
  - pyasn1-modules=0.2.8=py_0
  - pycodestyle=2.7.0=pyhd3eb1b0_0
  - pycosat=0.6.3=py38h1de35cc_1
  - pycparser=2.21=pyhd3eb1b0_0
  - pycurl=7.44.1=py38hbcfaee0_1
  - pydocstyle=6.1.1=pyhd3eb1b0_0
  - pyerfa=2.0.0=py38h9ed2024_0
  - pyflakes=2.3.1=pyhd3eb1b0_0
  - pyg=2.0.3=py38_torch_1.10.0_cpu
  - pygments=2.11.2=pyhd3eb1b0_0
  - pyjwt=2.1.0=py38hecd8cb5_0
  - pylint=2.9.6=py38hecd8cb5_1
  - pyls-spyder=0.4.0=pyhd3eb1b0_0
  - pyodbc=4.0.32=py38he9d5cce_0
  - pyopenssl=21.0.0=pyhd3eb1b0_1
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pyqt=5.9.2=py38h655552a_2
  - pyrsistent=0.18.0=py38hca72f7f_0
  - pysocks=1.7.1=py38_1
  - pytables=3.6.1=py38h4727e94_0
  - pytest=6.2.5=py38hecd8cb5_2
  - python=3.8.12=h88f2d9e_0
  - python-dateutil=2.8.2=pyhd3eb1b0_0
  - python-libarchive-c=2.9=pyhd3eb1b0_1
  - python-louvain=0.15=pyhd3eb1b0_0
  - python-lsp-black=1.0.0=pyhd3eb1b0_0
  - python-lsp-jsonrpc=1.0.0=pyhd3eb1b0_0
  - python-lsp-server=1.2.4=pyhd3eb1b0_0
  - python-slugify=5.0.2=pyhd3eb1b0_0
  - python.app=3=py38hca72f7f_0
  - python_abi=3.8=2_cp38
  - pytorch=1.10.1=py3.8_0
  - pytorch-cluster=1.5.9=py38_torch_1.10.0_cpu
  - pytorch-scatter=2.0.9=py38_torch_1.10.0_cpu
  - pytorch-sparse=0.6.12=py38_torch_1.10.0_cpu
  - pytorch-spline-conv=1.2.1=py38_torch_1.10.0_cpu
  - pytz=2021.3=pyhd3eb1b0_0
  - pyu2f=0.1.5=pyhd8ed1ab_0
  - pywavelets=1.1.1=py38haf1e3a3_2
  - pyyaml=6.0=py38hca72f7f_1
  - pyzmq=22.3.0=py38he9d5cce_2
  - qdarkstyle=3.0.2=pyhd3eb1b0_0
  - qstylizer=0.1.10=pyhd3eb1b0_0
  - qt=5.9.7=h468cd18_1
  - qtawesome=1.0.3=pyhd3eb1b0_0
  - qtconsole=5.2.2=pyhd3eb1b0_0
  - qtpy=1.11.2=pyhd3eb1b0_0
  - readline=8.1.2=hca72f7f_1
  - regex=2021.11.2=py38hca72f7f_0
  - requests=2.27.1=pyhd3eb1b0_0
  - requests-oauthlib=1.3.0=pyh9f0ad1d_0
  - ripgrep=12.1.1=0
  - rope=0.22.0=pyhd3eb1b0_0
  - rsa=4.8=pyhd8ed1ab_0
  - rtree=0.9.7=py38hecd8cb5_1
  - ruamel_yaml=0.15.100=py38h9ed2024_0
  - scikit-image=0.18.3=py38hae1ba45_0
  - scikit-learn=1.0.2=py38hae1ba45_1
  - scikit-learn-intelex=2021.3.0=py38hecd8cb5_0
  - scipy=1.7.3=py38h8c7af03_0
  - seaborn=0.11.2=pyhd3eb1b0_0
  - send2trash=1.8.0=pyhd3eb1b0_1
  - setuptools=58.0.4=py38hecd8cb5_0
  - simplegeneric=0.8.1=py38_2
  - singledispatch=3.7.0=pyhd3eb1b0_1001
  - sip=4.19.8=py38h0a44026_0
  - six=1.16.0=pyhd3eb1b0_0
  - snappy=1.1.8=hb1e8313_0
  - sniffio=1.2.0=py38hecd8cb5_1
  - snowballstemmer=2.2.0=pyhd3eb1b0_0
  - sortedcollections=2.1.0=pyhd3eb1b0_0
  - sortedcontainers=2.4.0=pyhd3eb1b0_0
  - soupsieve=2.3.1=pyhd3eb1b0_0
  - sphinx=4.4.0=pyhd3eb1b0_0
  - sphinxcontrib=1.0=py38_1
  - sphinxcontrib-applehelp=1.0.2=pyhd3eb1b0_0
  - sphinxcontrib-devhelp=1.0.2=pyhd3eb1b0_0
  - sphinxcontrib-htmlhelp=2.0.0=pyhd3eb1b0_0
  - sphinxcontrib-jsmath=1.0.1=pyhd3eb1b0_0
  - sphinxcontrib-qthelp=1.0.3=pyhd3eb1b0_0
  - sphinxcontrib-serializinghtml=1.1.5=pyhd3eb1b0_0
  - sphinxcontrib-websupport=1.2.4=py_0
  - spyder=5.1.5=py38hecd8cb5_1
  - spyder-kernels=2.1.3=py38hecd8cb5_0
  - sqlalchemy=1.4.27=py38hca72f7f_0
  - sqlite=3.37.2=h707629a_0
  - statsmodels=0.12.2=py38h9ed2024_0
  - sympy=1.9=py38hecd8cb5_0
  - tbb=2021.5.0=haf03e11_0
  - tbb4py=2021.5.0=py38haf03e11_0
  - tblib=1.7.0=pyhd3eb1b0_0
  - tensorboard=2.8.0=pyhd8ed1ab_0
  - tensorboard-data-server=0.6.0=py38h56c4533_1
  - tensorboard-plugin-wit=1.8.1=pyhd8ed1ab_0
  - terminado=0.13.1=py38hecd8cb5_0
  - testpath=0.5.0=pyhd3eb1b0_0
  - text-unidecode=1.3=pyhd3eb1b0_0
  - textdistance=4.2.1=pyhd3eb1b0_0
  - threadpoolctl=2.2.0=pyh0d69192_0
  - three-merge=0.1.1=pyhd3eb1b0_0
  - tifffile=2021.7.2=pyhd3eb1b0_2
  - tinycss=0.4=pyhd3eb1b0_1002
  - tk=8.6.11=h7bc2e8c_0
  - toml=0.10.2=pyhd3eb1b0_0
  - toolz=0.11.2=pyhd3eb1b0_0
  - torchvision=0.11.2=py38_cpu
  - tornado=6.1=py38h9ed2024_0
  - tqdm=4.62.3=pyhd3eb1b0_1
  - traitlets=5.1.1=pyhd3eb1b0_0
  - typed-ast=1.4.3=py38h9ed2024_1
  - typing-extensions=3.10.0.2=hd3eb1b0_0
  - typing_extensions=3.10.0.2=pyh06a4308_0
  - ujson=4.2.0=py38he9d5cce_0
  - unicodecsv=0.14.1=py38_0
  - unidecode=1.2.0=pyhd3eb1b0_0
  - unixodbc=2.3.9=haf1e3a3_0
  - urllib3=1.26.8=pyhd3eb1b0_0
  - watchdog=2.1.6=py38h999c104_0
  - wcwidth=0.2.5=pyhd3eb1b0_0
  - webencodings=0.5.1=py38_1
  - websocket-client=0.58.0=py38hecd8cb5_4
  - werkzeug=2.0.2=pyhd3eb1b0_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - whichcraft=0.6.1=pyhd3eb1b0_0
  - widgetsnbextension=3.5.1=py38_0
  - wrapt=1.12.1=py38haf1e3a3_1
  - wurlitzer=3.0.2=py38hecd8cb5_0
  - xlrd=2.0.1=pyhd3eb1b0_0
  - xlsxwriter=3.0.2=pyhd3eb1b0_0
  - xlwings=0.24.9=py38hecd8cb5_0
  - xlwt=1.3.0=py38_0
  - xmltodict=0.12.0=pyhd3eb1b0_0
  - xz=5.2.5=h1de35cc_0
  - yacs=0.1.6=pyhd3eb1b0_1
  - yaml=0.2.5=haf1e3a3_0
  - yapf=0.31.0=pyhd3eb1b0_0
  - yarl=1.7.2=py38h96a0964_1
  - zeromq=4.3.4=h23ab428_0
  - zfp=0.5.5=he9d5cce_6
  - zict=2.0.0=pyhd3eb1b0_0
  - zipp=3.7.0=pyhd3eb1b0_0
  - zlib=1.2.11=h4dc903c_4
  - zope=1.0=py38_1
  - zope.event=4.5.0=py38_0
  - zope.interface=5.4.0=py38h9ed2024_0
  - zstd=1.4.9=h322a384_0
  - pip:
    - antlr4-python3-runtime==4.7.2
    - appdirs==1.4.4
    - daemonize==2.5.0
    - inkscape-figures==1.0.8
    - inotify==0.2.10
    - isodate==0.6.1
    - julia==0.5.7
    - latex2sympy2==1.6.2
    - littleutils==0.2.2
    - nibabel==3.2.2
    - outdated==0.2.1
    - pyperclip==1.8.2
    - rdflib==6.1.1
    - tensorboardx==2.4.1
prefix: /Users/pbb/opt/anaconda3

Thanks for your help!

jqmcginnis commented 2 years ago

@sleepymalc Can you try to reduce the workers to let's say 4-8, e.g.python3 seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature --num_workers 4?

Let me know if this works for you!

sleepymalc commented 2 years ago

After changing the number of workers, now I have the following:

❯ python3 seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature --num_workers 4
WARNING:root:The OGB package is out of date. Your version is 1.3.1, while the latest version is 1.3.2.
Results will be saved in results/ogbl-BALBc_no1_spatial_no_edge_attr_20220219140315
Command line input: python seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature --num_workers 4
 is saved.
spatial!
spatial
spatial
/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch_geometric/deprecation.py:13: UserWarning: 'data.DataLoader' is deprecated, use 'loader.DataLoader' instead
  warnings.warn(out)
/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/utils.py:108: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
  dist_over_2, dist_mod_2 = dist // 2, dist % 2
Total number of parameters is 43874
SortPooling k is set to 10
  0%|                                      | 0/267295 [00:00<?, ?it/s]WARNING:root:The OGB package is out of date. Your version is 1.3.1, while the latest version is 1.3.2.
Results will be saved in results/ogbl-BALBc_no1_spatial_no_edge_attr_20220219140330
Command line input: python /Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/seal_link_pred.py --dataset ogbl-BALBc_no1_spatial_no_edge_attr --dynamic_train --dynamic_val --dynamic_test --use_feature --num_workers 4
 is saved.
spatial!
spatial
spatial
/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch_geometric/deprecation.py:13: UserWarning: 'data.DataLoader' is deprecated, use 'loader.DataLoader' instead
  warnings.warn(out)
/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/utils.py:108: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
  dist_over_2, dist_mod_2 = dist // 2, dist % 2
Total number of parameters is 43874
SortPooling k is set to 10
  0%|                                      | 0/267295 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
    prepare(preparation_data)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "/Users/pbb/opt/anaconda3/lib/python3.8/runpy.py", line 265, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/Users/pbb/opt/anaconda3/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/Users/pbb/opt/anaconda3/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/seal_link_pred.py", line 796, in <module>
    loss = train()
  File "/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/seal_link_pred.py", line 199, in train
    for data in pbar:
  File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/tqdm/std.py", line 1180, in __iter__
    for obj in iterable:
  File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 359, in __iter__
    return self._get_iterator()
  File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 305, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 918, in __init__
    w.start()
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
    return Popen(process_obj)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 42, in _launch
    prep_data = spawn.get_preparation_data(process_obj._name)
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
  File "/Users/pbb/opt/anaconda3/lib/python3.8/multiprocessing/spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

It seems like nothing is changed...

jqmcginnis commented 2 years ago

Hey @sleepymalc, thanks again for your patience and willingness to test different things. Can you please check if this command works fine, this should indicate if it is a parallel processing issue: python seal_link_pred.py --dataset ogbl-link_vessap_roi3_spatial_no_edge_attr --use_feature

sleepymalc commented 2 years ago

Woo!

It seems like it's running now. The output is now like this:

baseline_models/link_prediction/SEAL_OGB on  main [?] via 🐍 v3.8.12
❯ python seal_link_pred.py --dataset ogbl-link_vessap_roi3_spatial_no_edge_attr --use_feature
WARNING:root:The OGB package is out of date. Your version is 1.3.1, while the latest version is 1.3.2.
Results will be saved in results/ogbl-link_vessap_roi3_spatial_no_edge_attr_20220220040122
Command line input: python seal_link_pred.py --dataset ogbl-link_vessap_roi3_spatial_no_edge_attr --use_feature
 is saved.
Downloading https://syncandshare.lrz.de/dl/fiA3ht9uewDKKXzvuBpLbgvE/link_vessap_roi3_spatial_no_edge_attr.zip
Downloaded 0.00 GB: 100%|█████████████████████████████████████████████| 2/2 [00:01<00:00,  1.55it/s]
Extracting /Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/dataset/link_vessap_roi3_spatial_no_edge_attr.zip
Processing...
Loading necessary files...
This might take a while.
Processing graphs...
100%|██████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 19972.88it/s]
Converting graphs into PyG objects...
100%|███████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 1742.54it/s]
Saving...
Done!
Processing...
spatial!
  0%|                                                                     | 0/12791 [00:00<?, ?it/s]/Users/pbb/University/UM/Else/Reserach/GNN/VesselGraph/source/baseline_models/link_prediction/SEAL_OGB/utils.py:108: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
  dist_over_2, dist_mod_2 = dist // 2, dist % 2
100%|████████████████████████████████████████████████████████| 12791/12791 [00:14<00:00, 912.22it/s]
100%|████████████████████████████████████████████████████████| 12791/12791 [00:24<00:00, 513.35it/s]
Done!
Processing...
spatial
100%|██████████████████████████████████████████████████████████| 1598/1598 [00:02<00:00, 691.67it/s]
100%|██████████████████████████████████████████████████████████| 1598/1598 [00:02<00:00, 723.03it/s]
Done!
Processing...
spatial
100%|██████████████████████████████████████████████████████████| 1598/1598 [00:02<00:00, 772.09it/s]
100%|██████████████████████████████████████████████████████████| 1598/1598 [00:02<00:00, 775.75it/s]
Done!
/Users/pbb/opt/anaconda3/lib/python3.8/site-packages/torch_geometric/deprecation.py:13: UserWarning: 'data.DataLoader' is deprecated, use 'loader.DataLoader' instead
  warnings.warn(out)
Total number of parameters is 43874
SortPooling k is set to 10
100%|██████████████████████████████| 800/800 [00:04<00:00, 168.17it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 359.52it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 232.74it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 199.27it/s]
AUC
Run: 01, Epoch: 01, Loss: 0.6232, Train: 81.23%, Valid: 81.37%, Test: 83.67%
100%|██████████████████████████████| 800/800 [00:04<00:00, 167.69it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 345.66it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 334.14it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 347.30it/s]
AUC
Run: 01, Epoch: 02, Loss: 0.5102, Train: 83.96%, Valid: 83.80%, Test: 85.95%
100%|██████████████████████████████| 800/800 [00:04<00:00, 176.32it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 342.64it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 365.96it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 344.75it/s]
AUC
Run: 01, Epoch: 03, Loss: 0.5013, Train: 84.80%, Valid: 84.77%, Test: 86.94%
100%|██████████████████████████████| 800/800 [00:04<00:00, 174.27it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 358.02it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 356.62it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 363.01it/s]
AUC
Run: 01, Epoch: 04, Loss: 0.4716, Train: 86.31%, Valid: 86.21%, Test: 88.19%
100%|██████████████████████████████| 800/800 [00:04<00:00, 179.41it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 359.22it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 358.76it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 360.07it/s]
AUC
Run: 01, Epoch: 05, Loss: 0.4547, Train: 86.89%, Valid: 86.48%, Test: 88.45%
100%|██████████████████████████████| 800/800 [00:04<00:00, 179.55it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 357.38it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 359.03it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 360.01it/s]
AUC
Run: 01, Epoch: 06, Loss: 0.4447, Train: 87.56%, Valid: 87.06%, Test: 89.02%
100%|██████████████████████████████| 800/800 [00:04<00:00, 178.83it/s]
100%|██████████████████████████████| 800/800 [00:02<00:00, 359.10it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 362.12it/s]
100%|██████████████████████████████| 100/100 [00:00<00:00, 363.39it/s]
AUC
Run: 01, Epoch: 07, Loss: 0.4394, Train: 87.95%, Valid: 87.37%, Test: 89.36%
100%|██████████████████████████████| 800/800 [00:04<00:00, 171.53it/s]
 88%|██████████████████████████▍   | 706/800 [00:02<00:00, 356.83it/s]

It's still running, but I suppose this is what it should look like if it runs correctly?

EDIT: Yup, it terminates correctly! May I ask what exactly the problem is?

jqmcginnis commented 2 years ago

Thanks for testing this, looks good!

Basically there are two methods for running the SEAL algorithm:

1) normal mode (which is successfully running), at least for the small link graph ogbl-link_vessap_roi3_spatial_no_edge_attr 2) dynamic mode (--dynamic_train, --dynamic_val, --dyncamic_test) which generates the subgraphs on the fly, which is advisable for the whole brain graphs e.g. BALBc_no1, as these require lots of RAM and lots of processing time when using normal mode.

My guess is that indeed we are facing some parallel processing issues with the seal agorithm when using the environment / Mac M1 pro chip. I will try and look into this issue this upcoming week :)

sleepymalc commented 2 years ago

Ok, sounds like we can all relax and blame Apple 😂 I need to admit that I'm a little bit afraid about running it remotely without seeing it works at my local env. Some fault is on me if I run it on Linux in the first place. Sorry about that, but thanks for your hard work!

jqmcginnis commented 2 years ago

@sleepymalc are you running the software on a linux cluster/server etc.? We performed all training on an Ubuntu LTS 18.04 server with Nvidia GPUs, you can try our pip environment (requirements.txt), otherwise conda is probably the way to go. Sometimes it gets interesting depending on the available CUDA version - let me know if we can assist with this!

sleepymalc commented 2 years ago

Ok, sounds like we can all relax and blame Apple 😂 I need to admit that I'm a little bit afraid about running it remotely without seeing it works at my local env. Some fault is on me if I run it on Linux in the first place. Sorry about that, but thanks for your hard work!

Maybe I should rephrase my reply: I'm just saying that if I first try to run it on my server, then these issues will probably not occur! I haven't run into any problems on my server(yet). Let's see what'll happen when I really dig into this dataset. Btw, great works! It leads to some interesting observations and motivations for my research topics. Feel free to close this issue since it seems like it's Apple's fault and we find the problem already.

jqmcginnis commented 2 years ago

Alright! Feel free to reopen in case you are facing the same / or new issues! And thank you very much, I hope the dataset and algorithms help you with your research, that's exactly what we intended them for!