Skip to content

TypeError: object of type 'NoneType' has no len() during python -m chebai fit when using chebi50_graph_properties.yml #5

@aditya0by0

Description

@aditya0by0

Description:
When running the fit command for training on ChEBI50 with graph properties, the process fails during data loading due to recent commit ChEB-AI/python-chebai@5870948 in python-chebai .
The traceback points to a NoneType object where a feature vector was expected.

Command executed:

python -m chebai fit \
  --trainer=configs/training/default_trainer.yml \
  --trainer.callbacks=configs/training/default_callbacks.yml \
  --model=../python-chebai-graph/configs/model/gnn_res_gated.yml \
  --model.train_metrics=configs/metrics/micro-macro-f1.yml \
  --model.val_metrics=configs/metrics/micro-macro-f1.yml \
  --model.test_metrics=configs/metrics/micro-macro-f1.yml \
  --data=../python-chebai-graph/configs/data/chebi50_graph_properties.yml \
  --model.criterion=configs/loss/bce.yml \
  --data.init_args.batch_size=40 \
  --data.init_args.num_workers=12 \
  --data.init_args.chebi_version=231 \
  --trainer.logger.init_args.name=chebi50_bce_unweighted_resgatedgraph \
  --trainer.min_epochs=1 \
  --trainer.max_epochs=1 \
  --model.pass_loss_kwargs=false

Error Traceback:

.Traceback (most recent call last):
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_link_arguments.py", line 267, in call_compute_fn
    return self.compute_fn(*args)
  File "G:\github-aditya0by0\python-chebai\chebai\cli.py", line 46, in call_data_methods
    data.setup()
  File "G:\anaconda3\envs\gnn3\lib\site-packages\chebai_graph\preprocessing\datasets\chebi.py", line 138, in setup
    super().setup(keep_reader=True, **kwargs)
  File "G:\github-aditya0by0\python-chebai\chebai\preprocessing\datasets\base.py", line 440, in setup
    self.setup_processed()
  File "G:\github-aditya0by0\python-chebai\chebai\preprocessing\datasets\chebi.py", line 321, in setup_processed
    super().setup_processed()
  File "G:\github-aditya0by0\python-chebai\chebai\preprocessing\datasets\base.py", line 874, in setup_processed
    self._load_data_from_file(
  File "G:\github-aditya0by0\python-chebai\chebai\preprocessing\datasets\base.py", line 334, in _load_data_from_file
    data = [
  File "G:\github-aditya0by0\python-chebai\chebai\preprocessing\datasets\base.py", line 339, in <listcomp>
    or len(val["features"]) <= self.n_token_limit
TypeError: object of type 'NoneType' has no len()

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

Traceback (most recent call last):
  File "G:\anaconda3\envs\gnn3\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "G:\anaconda3\envs\gnn3\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "G:\github-aditya0by0\python-chebai\chebai\__main__.py", line 10, in <module>
    cli()
  File "G:\github-aditya0by0\python-chebai\chebai\cli.py", line 94, in cli
    r = ChebaiCLI(
  File "G:\github-aditya0by0\python-chebai\chebai\cli.py", line 32, in __init__
    super().__init__(trainer_class=CustomTrainer, *args, **kwargs)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\lightning\pytorch\cli.py", line 394, in __init__
    self.instantiate_classes()
  File "G:\anaconda3\envs\gnn3\lib\site-packages\lightning\pytorch\cli.py", line 561, in instantiate_classes
    self.config_init = self.parser.instantiate_classes(self.config)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_deprecated.py", line 140, in patched_instantiate_classes
    cfg = self._unpatched_instantiate_classes(cfg, **kwargs)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_core.py", line 1254, in instantiate_classes
    cfg[subcommand] = subparser.instantiate_classes(cfg[subcommand], instantiate_groups=instantiate_groups)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_deprecated.py", line 140, in patched_instantiate_classes
    cfg = self._unpatched_instantiate_classes(cfg, **kwargs)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_core.py", line 1232, in instantiate_classes
    ActionLink.apply_instantiation_links(self, cfg, target=component.dest)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_link_arguments.py", line 364, in apply_instantiation_links
    value = action.call_compute_fn(source_objects)
  File "G:\anaconda3\envs\gnn3\lib\site-packages\jsonargparse\_link_arguments.py", line 271, in call_compute_fn
    raise ValueError(f"Call to compute_fn of link '{link}' with args ({args}) failed: {ex}") from ex
ValueError: Call to compute_fn of link 'call_data_methods(data) --> model.init_args.out_dim' with args ({Train dataloader: None}
{Validation dataloader: None}
{Test dataloader: None}
{Predict dataloader: None}) failed: object of type 'NoneType' has no len()

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions