Я пытаюсь запустить тензор потока, и у меня возникают проблемы с блокировкой потоков. Мне сказали использовать loop.run_in_executor
, чтобы исправить некоторые из этих проблем, но выдает ошибку, которую я совсем не понимаю:
0|main | *** print_tb:
0|main | File "/root/AIDungeon_bot/bot/story/story_manager.py", line 254, in generate_result
0|main | block = await loop.run_in_executor(pool, self.generator.generate, full_action)
0|main | *** print_exception:
0|main | concurrent.futures.process._RemoteTraceback:
0|main | """
0|main | Traceback (most recent call last):
0|main | File "/usr/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
0|main | obj = _ForkingPickler.dumps(obj)
0|main | File "/usr/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
0|main | cls(buf, protocol).dump(obj)
0|main | TypeError: can't pickle _thread.RLock objects
0|main | """
0|main |
0|main | The above exception was the direct cause of the following exception:
0|main |
0|main | Traceback (most recent call last):
0|main | File "/root/AIDungeon_bot/bot/story/story_manager.py", line 254, in generate_result
0|main | block = await loop.run_in_executor(pool, self.generator.generate, full_action)
0|main | File "/usr/lib/python3.7/multiprocessing/queues.py", line 236, in _feed
0|main | obj = _ForkingPickler.dumps(obj)
0|main | TypeError: can't pickle _thread.RLock objects
Я пробовал Google и другие ответы на stackoverflow, но я Я использую gpt-2 и не написал функцию генерации (часть self.generator.generate
не моя), поэтому я не могу точно следовать всем ответам, и я не выяснил, что на самом деле означает can't pickle _thread.RLock objects
или почему это происходит.