Использование elmo для извлечения функций из текста - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь извлечь функции через ELMo (вложения из языковых моделей).У меня есть два набора твитов, тренируйся и тестируй.Я выполнил следующие коды, но он выдает ошибки.Я искал SO, может быть, это проблема совместимости между Tensorflow и Cuda.Я пробовал разные их версии, но это не решается.Будет полезно, если я смогу получить точные указатели и коды номера версии и изменений, которые помогут без ошибок выполнить следующее:

import tensorflow_hub as hub
import tensorflow as tf

elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)

Извлечение векторов ELMo для очищенных твитов в поездах и тестовых наборах данных.

def elmo_vectors(x):
  embeddings = elmo(x.tolist(), signature="default", as_dict=True)["elmo"]

with tf.Session() as sess:
  sess.run(tf.global_variables_initializer())
  sess.run(tf.tables_initializer())
  # return average of ELMo features
  return sess.run(tf.reduce_mean(embeddings,1))

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

Я сохраню эти пакеты в списке:

list_train = [train[i:i+100] for i in range(0,train.shape[0],100)]
list_test = [test[i:i+100] for i in range(0,test.shape[0],100)]


# Extract ELMo embeddings
elmo_train = [elmo_vectors(x['clean_tweet']) for x in list_train]
elmo_test = [elmo_vectors(x['clean_tweet']) for x in list_test]

Он выдает следующие ошибки:

UnknownErrorТрассировка (последний вызов был последним) /usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py в _do_call (self, fn, * args)

/ usr /local / lib / python3.6 / dist-packages / tenorflow / python / client / session.py в _run_fn (feed_dict, fetch_list, target_list, options, run_metadata)

/ usr / local / lib / python3.6/dist-packages/tensorflow/python/client/session.py в _call_tf_sessionrun (self, options, feed_dict, fetch_list, target_list, run_metadata)

UnknownError: Failed to get convolution algorithm. This is probably because 

cuDNN не удалось инициализировать, поэтому попробуйте посмотреть, не произошла ли инициализацияЖурнал предупреждений был напечатан выше.[[{{node module_2_apply_default_1 / bilm / CNN_1 / Conv2D_6}}]]

 During handling of the above exception, another exception occurred:

   UnknownError                              Traceback (most recent call last)
   <ipython-input-84-5d4975a95f4d> in <module>()
   ----> 1 elmo_train = [elmo_vectors(x['clean_tweet']) for x in list_train]
    2 elmo_test = [elmo_vectors(x['clean_tweet']) for x in list_test]

    <ipython-input-84-5d4975a95f4d> in <listcomp>(.0)
    ----> 1 elmo_train = [elmo_vectors(x['clean_tweet']) for x in list_train]
    2 elmo_test = [elmo_vectors(x['clean_tweet']) for x in list_test]

    <ipython-input-82-c22e4c1ff381> in elmo_vectors(x)
     6     sess.run(tf.tables_initializer())
     7     # return average of ELMo features
     ----> 8     return sess.run(tf.reduce_mean(embeddings,1))

    /usr/local/lib/python3.6/dist- 
    packages/tensorflow/python/client/session.py in run(self, fetches, 
    feed_dict, options, run_metadata)

    /usr/local/lib/python3.6/dist- 
    packages/tensorflow/python/client/session.py in _run(self, handle, 
   fetches, feed_dict, options, run_metadata)

   /usr/local/lib/python3.6/dist- 
   packages/tensorflow/python/client/session.py in _do_run(self, handle, 
   target_list, fetch_list, feed_dict, options, run_metadata)

   /usr/local/lib/python3.6/dist- 
   packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)

  UnknownError: Failed to get convolution algorithm. This is probably 
   because cuDNN failed to initialize, so try looking to see if a warning 
  log message was printed above.
 [[node module_2_apply_default_1/bilm/CNN_1/Conv2D_6 (defined at 
  /usr/local/lib/python3.6/dist- 
packages/tensorflow_hub/native_module.py:517) ]]

 Caused by op 'module_2_apply_default_1/bilm/CNN_1/Conv2D_6', defined at:
 File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
  "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
   exec(code, run_globals)
   File "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py", line 16, in <module>
   app.launch_new_instance()
   File "/usr/local/lib/python3.6/dist-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()

Файл "/usr/local/lib/python3.6/dist-packages/ipykernel/kernelapp.py", строка477, в начале ioloop.IOLoop.instance (). Start () Файл "/usr/local/lib/python3.6/dist-packages/tornado/ioloop.py", строка 888, в начале handler_func (fd_obj, события)Файл "/usr/local/lib/python3.6/dist-packages/tornado/stack_context.py", строка 277, в null_wrapper возвращает файл fn (* args, ** kwargs) "/ usr / local / lib / python3.6 / dist-packages / zmq / eventloop / zmqstream.py ", строка 450, в файле _handle_events self._handle_recv ()" /usr/local/lib/python3.6/dist-packages/zmq/eventloop/zmqstream.py ", строка 480, в файле _handle_recv self._run_callback (обратный вызов, msg) Файл "/usr/local/lib/python3.6/dist-packages/zmq/eventloop/zmqstream.py", строка 432, в обратном вызове _run_callback (* аргументы,** kwargs) Файл "/usr/local/lib/python3.6/dist-packages/tornado/stack_context.py", строка 277, в null_wrapper возвращает файл fn (* args, ** kwargs) "/ usr / local /Библиотека / python3.6 / Расс-пакеты / ipykernel /kernelbase.py ", строка 283, в диспетчере возвращает файл self.dispatch_shell (stream, msg), файл" /usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py ", строка 235, в обработчике dispatch_shell (stream, idents, msg) Файл "/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py", строка 399, в файле execute_request user_expressions, allow_stdin) "/ usr / local / lib / python3.6 / dist-packages / ipykernel / ipkernel.py ", строка 196, в do_execute res = shell.run_cell (code, store_history = store_history, silent = silent) Файл" /usr/local/lib/python3.6/dist-packages/ipykernel/zmqshell.py ", строка 533, в run_cell вернуть super (ZMQInteractiveShell, self) .run_cell (* args, ** kwargs) Файл" /usr/local/lib/python3.6/dist- packages / IPython / core/interactiveshell.py ", строка 2718, в интерактивности run_cell = интерактивность, компилятор = компилятор, результат = результат) Файл" /usr/local/lib/python3.6/dist- packages / IPython / core / interactiveshell.py ", строка2822, в run_ast_nodes, если self.run_code (код, результат): Файл "/usr/local/lib/python3.6/dist-packages / IPython / core / interactiveshell.py ", строка 2882, в файле run_code exec (code_obj, self.user_global_ns, self.user_ns)" ", строка 1, вelmo_train = [elmo_vectors (x ['clean_tweet']) для x в list_train] Файл "", строка 1, в elmo_train = [elmo_vectors (x ['clean_tweet']) для x в list_train] Файл "", строка 2, в elmo_vectors embeddings = elmo (x.tolist (), signature = "default", as_dict = True) ["elmo"] Файл "/usr/local/lib/python3.6/dist-packages/tensorflow_hub/module.py", строка 250, в вызов Имя = имя) Файл "/usr/local/lib/python3.6/dist- packages / tenorflow_hub / native_module.py ", строка 517, в create_apply_graph import_scope = relative_scope_name) Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / training / saver.py ", строка 1435, в import_meta_graph Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / training / saver.py ", строка 1457, в _import_meta_graph_with_return_elements Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / framework / meta_graph.py ", строка 806, в import_scoped_meta_graph_with_return_elements Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / util / deprecation.py ", строка 507, в new_func Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / framework / importer.py ", строка 442, в import_graph_def Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / framework / importer.py ", строка 235, в _ProcessNewOps Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / framework / ops.py ", строка 3433, в _add_new_tf_operations Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / framework / ops.py ", строка 3433, в Файл "/usr/local/lib/python3.6/dist- packages / tenorsflow / python / framework / ops.py ", строка 3325, в _create_op_from_tf_operation Файл "/usr/local/lib/python3.6/dist- пакеты / тензор потока / python / framework / ops.py ", строка 1801, в init

  UnknownError (see above for traceback): Failed to get convolution 
  algorithm. This is probably because cuDNN failed to initialize, so try 
  looking to see if a warning log message was printed above.
 [[node module_2_apply_default_1/bilm/CNN_1/Conv2D_6 (defined at 
  /usr/local/lib/python3.6/dist- 
   packages/tensorflow_hub/native_module.py:517) ]]
...