Gần đây tôi đã xem xét một triển khai thú vị cho convolutional text classification. Tuy nhiên tất cả các mã TensorFlow tôi đã xem xét sử dụng một ngẫu nhiên (không pre-đào tạo) nhúng vectơ như sau:Sử dụng tính năng nhúng từ được đào tạo (word2vec hoặc Glove) trong TensorFlow
with tf.device('/cpu:0'), tf.name_scope("embedding"):
W = tf.Variable(
tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
name="W")
self.embedded_chars = tf.nn.embedding_lookup(W, self.input_x)
self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)
Có ai biết làm thế nào để sử dụng các kết quả của Word2vec hoặc một chiếc găng tay trước được đào tạo từ nhúng thay vì ngẫu nhiên?
Tôi tạo W như sau: W = np.loadtxt ("/ media/w2vTest.txt", dtype = 'string', delimiter = '') tạo thành một hàng: ['in' '0.070312 ......'- 0.0625']. Có vấn đề ở đây! tôi sẽ coi đây là W của tôi sau khi loại bỏ 'in' và chuyển đổi các số từ chuỗi thành float32? nếu đây là trường hợp, sau đó làm thế nào để kết nối 'in' với vector tương ứng của nó? HOẶC Tôi cần phải chuyển đổi số liệu thành float32 và sau đó để lại 'in' như nó; hy vọng rằng tensorflow sẽ làm tất cả các yêu cầu chế biến? Cảm ơn! – user3147590
Ah, bạn có một vài lựa chọn ở đây. Bạn * có thể * sử dụng TensorFlow 'tf.decode_csv() 'op để chuyển đổi các tập tin văn bản thành một tensor, nhưng điều này có thể tốn kém (đặc biệt, nó đòi hỏi bạn phải tạo một' Tensor' cho mỗi cột, và sau đó nối các số với nhau). Có lẽ một giải pháp thay thế dễ dàng hơn là sử dụng ['pandas.read_csv()'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html) và ['pandas.DataFrame.as_matrix() '] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html) để nhận đầu vào dưới dạng mảng NumPy. – mrry
Sử dụng tùy chọn 2, có cách nào để vứt bỏ mảng NumPy và lưu một số bộ nhớ không? – morphe