1

我正在通过 elmo 提取特征。训练和测试是文本数据。在 google colab 中执行时出现错误。我检查了以前的 Stackoverflow 问题,但无法解决。带有指针的确切代码将很有帮助。

elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
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))

import tensorflow as tf
import tensorflow_hub as hub

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:无法获得卷积算法。这可能是因为 cuDNN 初始化失败,因此请尝试查看上面是否打印了警告日志消息。[[node module_apply_default_1/bilm/CNN_2/Conv2D_6(定义在/usr/local/lib/python3.6/dist-packages/tensorflow_hub/native_module.py:517)]] [[node Mean(定义在:8)]]

4

2 回答 2

0

我现在在带有和不带有 GPU 的 Python 3 运行时中的 colab.research.google.com 上进行了尝试,并且您的代码的以下改编运行:

import tensorflow as tf
import tensorflow_hub as hub

elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
def elmo_vectors(x):
  embeddings = elmo(x,  # Note plain x here.
                    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))

elmo_vectors(["Hello world"])

我得到输出:

array([[ 0.45319763, -0.99154925, -0.26539633, ..., -0.13455263,
         0.48878008,  0.31264588]], dtype=float32)

我相信这不是 TF Hub 的问题。

于 2019-03-25T09:02:42.350 回答
0

这也发生在我身上。我认为这与我们在 Google Colab 免费层版本中获得的免费 RAM 使用有关。我必须减少一些卷积层并减少批量大小才能运行它。此外,我无法在 GPU 上运行它。所以,我想你可以考虑使用 Google Colab Pro

于 2021-11-29T17:55:55.670 回答