相关疑难解决方法(0)

如何在tensorflow中处理大型(> 2GB)嵌入查找表?

当我使用预训练的单词向量进行LSTM分类时,我想知道如何处理在张量流中嵌入大于2gb的查找表.

为此,我试图像下面的代码一样嵌入查找表,

data = tf.nn.embedding_lookup(vector_array, input_data)

得到这个值错误.

ValueError: Cannot create a tensor proto whose content is larger than 2GB

代码上的变量vector_array是numpy数组,它包含每个单词大约1400万个唯一标记和100维单词向量.

谢谢你的帮助

deep-learning tensorflow

8
推荐指数
2
解决办法
2235
查看次数

微调Word嵌入如何工作?

我一直在阅读一些带有深度学习论文的NLP,并发现微调似乎是一个简单但却令人困惑的概念.这里提出了同样的问题,但仍然不太清楚.

Y. Kim,"用于句子分类的卷积神经网络"KS Tai,R.Socher,以及CD Manning,"改进树的语义表示"等论文所述,将预训练的单词嵌入微调到特定于任务的单词嵌入.- 结构化的长期短期记忆网络,"只是简单地提一下,没有详细说明.

我的问题是:

使用word2vec或Glove生成的Word嵌入作为预训练的单词向量用作(X)下游任务的输入要素,如解析或情感分析,这意味着那些输入向量插入到某个特定任务的新神经网络模型中,同时训练这个新模型,不知何故我们可以获得更新的特定于任务的单词嵌入.

但据我所知,在训练过程中,反向传播的作用是更新(W)模型的权重,它不会改变输入特征(X),那么原始单词嵌入的精确程度如何?这些微调的载体来自哪里?

machine-learning deep-learning word-embedding

6
推荐指数
1
解决办法
3122
查看次数

如何在张量流 LSTM 生成模型中使用预训练的 GloVe 向量

我的目标是询问是否可以在 Tensorflow word-rnn LSTM 生成模型中使用预先训练的 GloVe 向量,如果可以,有关于如何实现这一目标的指导吗?

我从这里引用这个 ,我理解(我认为)我应该将向量放入line 35-37model.py 的嵌入中。从代码中,我看到他没有使用任何预先训练的向量,而是使用输入文本中的单词。

我看过类似的其他答案但由于我是 Tensorflow 和 Python 的新手,我不完全理解如何将其应用到代码中。

GloVe 生成两个文件,即:

  1. 词汇文件,包含所有单词出现的计数
  2. 矢量文件。例如单词 [ also -0.5432 -0.3210 0.1234...n_dimensions..]

另外,我是否必须生成 GloVe 向量并在同一语料库上训练 LSTM 模型,或者它们可以分开吗?例如。GloVe( 100k words)、text_to_train( 50k words)

感谢您的帮助!

python vector embedding lstm tensorflow

5
推荐指数
1
解决办法
1664
查看次数

加载预先训练的word2vec以在Estimator model_fn中初始化embedding_lookup

我正在解决文本分类问题.我使用Estimator自己的类定义了我的分类器model_fn.我想使用Google的预训练word2vec嵌入作为初始值,然后针对手头的任务进一步优化它.

我看到这篇文章:在TensorFlow中使用预先训练的单词嵌入(word2vec或Glove),
它解释了如何在'原始'TensorFlow代码中进行处理.但是,我真的很喜欢Estimator上课.

作为扩展,我想在Cloud ML Engine上训练此代码,是否有一种传递具有初始值的相当大的文件的好方法?

假设我们有类似的东西:

def build_model_fn():
    def _model_fn(features, labels, mode, params):
        input_layer = features['feat'] #shape=[-1, params["sequence_length"]]
        #... what goes here to initialize W

        embedded = tf.nn.embedding_lookup(W, input_layer)
        ...
        return predictions

estimator = tf.contrib.learn.Estimator(
    model_fn=build_model_fn(),
    model_dir=MODEL_DIR,
    params=params)
estimator.fit(input_fn=read_data, max_steps=2500)
Run Code Online (Sandbox Code Playgroud)

word2vec tensorflow google-cloud-ml-engine

5
推荐指数
1
解决办法
1657
查看次数

为什么`tf.constant()`的值在TensorFlow中多次存储在内存中?

读过(在TensorFlow中):

a的值tf.constant()在内存中多次存储.

为什么tf.constant()在内存中多次存储的值?

python tensorflow

4
推荐指数
1
解决办法
830
查看次数

如何在Estimator API中初始化嵌入层

我试图在tensorflow模型中使用现有的嵌入,嵌入的大小大于2Gb,这使得我最初的尝试不成功:

embedding_var = tf.get_variable(
        "embeddings", 
        shape=GLOVE_MATRIX.shape, 
        initializer=tf.constant_initializer(np.array(GLOVE_MATRIX))
)
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

 Cannot create a tensor proto whose content is larger than 2GB.
Run Code Online (Sandbox Code Playgroud)

我正在使用基于Estimator API的AWS SageMaker,并且会话中实际运行的图形发生在场景后面,因此我不确定如何初始化一些占位符以进行嵌入.如果有人能够在EstimatorAPI方面分享如何进行这种初始化的方式会很有帮助.

tensorflow tensorflow-estimator

2
推荐指数
1
解决办法
1559
查看次数