не могу выбрать объекты _thread.RLock - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь запустить тензор потока, и у меня возникают проблемы с блокировкой потоков. Мне сказали использовать 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 или почему это происходит.

...