我正在尝试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))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ValueError: Cannot create an Operation with a NodeDef larger than 2GB.
Run Code Online (Sandbox Code Playgroud)
X我试图分配的数组()是形状(3000000, 300),其大小为3.6GB.
如果我也尝试tf.convert_to_tensor(X),我会得到同样的错误.
我知道它由于阵列大于2GB而失败.但是,我不知道如何将大于2GB的数组分配给张量流Variable
我想用大型数据集训练CNN.目前我将所有数据加载到tf.constant中,然后在tf.Session()中以小批量大小循环遍历它.这适用于数据集的一小部分,但是当我增加输入大小时,我得到错误:
ValueError: Cannot create a tensor proto whose content is larger than 2GB.
Run Code Online (Sandbox Code Playgroud)
我怎么能避免这种情况?