Использование elmo для извлечения функций из текста
Я пытаюсь извлечь функции через 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 Traceback (последний вызов был последним) /usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py в _do_call (self, fn, * args)
/usr/local/lib/python3.6/dist-packages/tensorflow/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, events) Файл"/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(callback, msg), файл "/ usr / local / lib / python3. 6 / dist-packages / zmq / eventloop / zmqstream.py ", строка 432, в обратном вызове _run_callback(*args, **kwargs) Файл" /usr/local/lib/python3.6/dist-packages/tornado/stack_context. py ", строка 277, в null_wrapper возвращает fn(*args, **kwargs) Файл"/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py", строка 283, в диспетчере возвращает self.dispatch_shell(поток, мс g) Файл "/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(код, 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(code, result): File "/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= относительное_имя_скопа) "/usr/local/lib/python3.6/dist- packages / tenorflow/python/training/saver.py", строка 1435, в файле import_meta_graph "/ usr / local / lib / python3.6 / dist- packages / tenorflow / python / training / saver.py ", строка 1457, в файле _import_meta_graph_with_return_elements" /usr/local/lib/python3.6/dist- пакеты / tenorflow / python / framework / meta_graph.py ", строка 806, в файле import_scoped_meta_graph_with_return_elements" / usr / local / lib / python 3.6 / dist-packages / tenorflow / python / util / deprecation.py ", строка 507, в файле new_func" /usr/local/lib/python3.6/dist- packages / tenorflow / python / framework / importer.py ", строка 442, в файле import_graph_def "/usr/local/lib/python3.6/dist- packages / тензор потока / python / framework / importer.py", строка 235, в файле _ProcessNewOps "/usr/local/lib/python3.6 / dist- packages / tenorflow / python / framework / ops.py ", строка 3433, в файле _add_new_tf_operations" /usr/local/lib/python3.6/dist- packages / tenorflow / python / framework / ops.py ", строка 3433, в файле "/usr/local/lib/python3.6/dist- packages / тензор потока / python / framework / ops.py", строка 3325, в файле _create_op_from_tf_operation "/usr/local/lib/python3.6/dist - packages / tenorflow / 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) ]]