google-research / pix2struct

Apache License 2.0
587 stars 53 forks source link

TypeError: 'Pipeline' object is not iterable #47

Open Mengpuu opened 5 months ago

Mengpuu commented 5 months ago

I tried to do the preprocessing of screen2words locally by running python3 -m pix2struct.preprocessing.convert_screen2words --screen2words_dir=pix2struct/data/screen2words --rico_dir=pix2struct/data/rico_images but got this error.

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/bit2atom/pix2struct/pix2struct/preprocessing/convert_screen2words.py", line 110, in <module>
    app.run(main)
  File "/home/bit2atom/.local/lib/python3.10/site-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/home/bit2atom/.local/lib/python3.10/site-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "/home/bit2atom/pix2struct/pix2struct/preprocessing/convert_screen2words.py", line 104, in main
    pipeline(root)
  File "/home/bit2atom/pix2struct/pix2struct/preprocessing/convert_screen2words.py", line 95, in pipeline
    _ = ((root, summaries) | "ProcessTrain" >> ProcessSplit("train"))
  File "/home/bit2atom/.local/lib/python3.10/site-packages/apache_beam/transforms/ptransform.py", line 1110, in __ror__
    return self.transform.__ror__(pvalueish, self.label)
  File "/home/bit2atom/.local/lib/python3.10/site-packages/apache_beam/transforms/ptransform.py", line 616, in __ror__
    replacements = {
  File "/home/bit2atom/.local/lib/python3.10/site-packages/apache_beam/transforms/ptransform.py", line 617, in <dictcomp>
    id(v): p | 'CreatePInput%s' % ix >> Create(v, reshuffle=False)
  File "/home/bit2atom/.local/lib/python3.10/site-packages/apache_beam/transforms/core.py", line 3731, in __init__
    self.values = tuple(values)
TypeError: 'Pipeline' object is not iterable

Am I doing the data preprocessing locally based on gpu right?