Ошибка:

я есть некоторый код keras, который работает синхронно для прогнозирования заданного ввода, я даже внес поправки, чтобы он мог работать со стандартной многопоточностью (используя блокировки в отдельном классе из этого), однако при работе через асинхронный сельдерей (даже с одним рабочим и одно задание) Я получаю ошибку при вызове предиката на модели keras.

@app.task
def predict_task(param):
  """Run task."""
  json_file = open('keras_model.json', 'r')
  loaded_model_json = json_file.read()
  json_file.close()
  model = model_from_json(loaded_model_json)
  model.load_weights('keras_weights.h5')

  tokenizer_file = open('tokenizer.pickle',
                      'rb')
  tokenizer = pickle.load(tokenizer_file)
  sequences = tokenizer.texts_to_sequences(['example text'])
  one_hot_encoded_text_vector = pad_sequences(sequences, maxlen=140,
                                            padding="post")

  one_hot_encoded_text_vector = np.asarray(one_hot_encoded_text_vector)
  return model.predict(x=one_hot_encoded_text_vector, batch_size=1)

Ошибка:

Current thread 0x00007fff736b2300 (most recent call first):
  File "venv/lib/python3.5/site-packages/theano/compile/function_module.py", line 903 in __call__
  File "venv/lib/python3.5/site-packages/keras/backend/theano_backend.py", line 1227 in __call__
  File "venv/lib/python3.5/site-packages/keras/engine/training.py", line 1301 in _predict_loop
  File "venv/lib/python3.5/site-packages/keras/engine/training.py", line 1800 in predict
  File "venv/lib/python3.5/site-packages/keras/models.py", line 1027 in predict
  File "tasks.py", line 157 in predict_task
  File "venv/lib/python3.5/site-packages/celery/app/trace.py", line 438 in __protected_call__
  File "venv/lib/python3.5/site-packages/celery/app/trace.py", line 240 in trace_task
  File "venv/lib/python3.5/site-packages/celery/app/trace.py", line 349 in _fast_trace_task
  File "venv/lib/python3.5/site-packages/billiard/pool.py", line 367 in workloop
  File "venv/lib/python3.5/site-packages/billiard/pool.py", line 295 in run
  File "venv/lib/python3.5/site-packages/billiard/process.py", line 292 in _bootstrap
  File "venv/lib/python3.5/site-packages/billiard/forking.py", line 105 in __init__
  File "venv/lib/python3.5/site-packages/billiard/process.py", line 137 in start
  File "venv/lib/python3.5/site-packages/billiard/pool.py", line 1068 in _create_worker_process
  File "venv/lib/python3.5/site-packages/celery/concurrency/asynpool.py", line 415 in _create_worker_process
  File "venv/lib/python3.5/site-packages/billiard/pool.py", line 972 in __init__
  File "venv/lib/python3.5/site-packages/celery/concurrency/asynpool.py", line 401 in __init__
  File "venv/lib/python3.5/site-packages/celery/concurrency/prefork.py", line 119 in on_start
  File "venv/lib/python3.5/site-packages/celery/concurrency/base.py", line 131 in start
  File "venv/lib/python3.5/site-packages/celery/bootsteps.py", line 374 in start
  File "venv/lib/python3.5/site-packages/celery/bootsteps.py", line 123 in start
  File "venv/lib/python3.5/site-packages/celery/worker/__init__.py", line 206 in start
  File "venv/lib/python3.5/site-packages/celery/bin/worker.py", line 212 in run
  File "venv/lib/python3.5/site-packages/celery/bin/base.py", line 274 in __call__
  File "venv/lib/python3.5/site-packages/celery/bin/worker.py", line 179 in run_from_argv
  File "venv/lib/python3.5/site-packages/celery/bin/celery.py", line 717 in execute
  File "venv/lib/python3.5/site-packages/celery/bin/celery.py", line 785 in handle_argv
  File "venv/lib/python3.5/site-packages/celery/bin/base.py", line 311 in execute_from_commandline
  File "venv/lib/python3.5/site-packages/celery/bin/celery.py", line 793 in execute_from_commandline
  File "venv/lib/python3.5/site-packages/celery/bin/celery.py", line 81 in main
  File "venv/lib/python3.5/site-packages/celery/__main__.py", line 30 in main
  File "venv/bin/celery", line 11 in <module>
[2018-03-08 02:56:07,060: ERROR/MainProcess] Process 'Worker-1' pid:3459 exited with 'signal 11 (SIGSEGV)'
[2018-03-08 02:56:07,075: ERROR/MainProcess] Task tasks.predict_task[287f85d3-f4dd-4806-ada4-286a4361f805] raised unexpected: WorkerLostError('Worker exited prematurely: signal 11 (SIGSEGV).',)
Traceback (most recent call last):
  File "venv/lib/python3.5/site-packages/billiard/pool.py", line 1175, in mark_as_worker_lost
    human_status(exitcode)),
billiard.exceptions.WorkerLostError: Worker exited prematurely: signal 11 (SIGSEGV).

Ответы на вопрос(0)

Ваш ответ на вопрос