Tôi đang cố gắng khởi tạo một lưu lượng hàng chục Variable
với các lần nhúng trước khi được đào tạo word2vec
.Khởi tạo biến tensorflow với một mảng lớn hơn 2GB
Tôi đã đoạn mã sau:
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))
Và tôi nhận được lỗi sau:
ValueError: Cannot create an Operation with a NodeDef larger than 2GB.
Mảng (X
) Tôi cố gắng để gán được hình dạng (3000000, 300)
và kích thước của nó là 3.6 GB.
Tôi cũng gặp lỗi tương tự nếu tôi thử tf.convert_to_tensor(X)
.
Tôi biết rằng nó không thành công do thực tế là mảng lớn hơn 2GB. Tuy nhiên, tôi không biết cách chỉ định một mảng lớn hơn 2GB cho một chuỗi lưu lượng là Variable
'X.đăng ký (vị trí)' cần phải là 'tf.assign (X, place, validate_shape = False)', hoặc TensorFlow sẽ khiếu nại rằng bạn đang thay đổi hình dạng của tensor. Khác hơn thế, công trình này. –
Cảm ơn bạn - đã cập nhật câu trả lời để bao gồm nhận xét của + mrry bên dưới, bằng cách đặt hình dạng của trình giữ chỗ. – dga
để biết thêm thông tin về cách thực hiện điều này trong tài liệu dưới [dữ liệu được tải trước] (https://www.tensorflow.org/versions/r0.7/how_tos/reading_data/index.html#preloaded-data) và một ví dụ làm việc đầy đủ về cách sử dụng trình giữ chỗ và biến để tải trước các đầu vào đào tạo MNIST [tại đây] (https://github.com/tensorflow/tensorflow/blob/r0.7/tensorflow/examples/how_tos/reading_data/ global_connected_preloaded_var.py) – stefano