gpt4 book ai didi

tensorflow - 使用大于 2GB 的数组初始化 tensorflow 变量

转载 作者:行者123 更新时间:2023-12-03 08:10:07 24 4
gpt4 key购买 nike

我正在尝试初始化 tensorflow Variable预训练 word2vec嵌入。

我有以下代码:

import tensorflow as tf
from gensim import models

model = models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
X = model.syn0

embeddings = tf.Variable(tf.random_uniform(X.shape, minval=-0.1, maxval=0.1), trainable=False)

sess.run(tf.initialize_all_variables())

sess.run(embeddings.assign(X))

我收到以下错误:
ValueError: Cannot create an Operation with a NodeDef larger than 2GB.

我尝试分配的数组( X )的形状为 (3000000, 300)它的大小是3.6GB。

如果我尝试 tf.convert_to_tensor(X),我会遇到同样的错误也是。

我知道它失败是因为数组大于 2GB。但是,我不知道如何将大于 2GB 的数组分配给 tensorflow Variable

最佳答案

似乎唯一的选择是使用占位符。我能找到的最干净的方法是直接初始化为占位符:

X_init = tf.placeholder(tf.float32, shape=(3000000, 300))
X = tf.Variable(X_init)
# The rest of the setup...
sess.run(tf.initialize_all_variables(), feed_dict={X_init: model.syn0})

关于tensorflow - 使用大于 2GB 的数组初始化 tensorflow 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com