Saya baru-baru ini meninjau implementasi menarik untuk klasifikasi teks konvolusional . Namun semua kode TensorFlow yang saya tinjau menggunakan vektor penyematan acak (tidak terlatih sebelumnya) seperti berikut:
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)
Adakah yang tahu cara menggunakan hasil Word2vec atau penyematan kata terlatih GloVe daripada yang acak?
sumber
tf.decode_csv()
op TensorFlow untuk mengonversi file teks menjadi tensor, tetapi ini mungkin mahal (khususnya, Anda harus membuatnyaTensor
per kolom, lalu menggabungkan yang numerik). Mungkin alternatif yang lebih mudah adalah menggunakanpandas.read_csv()
danpandas.DataFrame.as_matrix()
mendapatkan input sebagai array NumPy.sess.run(embedding_init, ...)
kembali (dengan asumsi Anda tidak menyimpan referensi ke sana dalam program Anda). Bergantung pada struktur program Anda, Anda mungkin ingindel embedding
(di manaembedding
array NumPy) untuk merilis array sebelumnya.Saya menggunakan metode ini untuk memuat dan membagikan penyematan.
sumber
Jawaban dari @mrry tidak benar karena memicu penimpaan bobot embeddings setiap jaringan dijalankan, jadi jika Anda mengikuti pendekatan minibatch untuk melatih jaringan Anda, Anda menimpa bobot embeddings. Jadi, menurut saya, cara yang benar untuk embeddings terlatih adalah:
sumber
2.0 Jawaban yang Kompatibel : Ada banyak Embeddings yang Dilatih, yang dikembangkan oleh Google dan telah Bersumber Terbuka.
Beberapa di antaranya adalah
Universal Sentence Encoder (USE), ELMO, BERT
, dll .. dan sangat mudah untuk digunakan kembali dalam kode Anda.Kode untuk menggunakan kembali
Pre-Trained Embedding
,Universal Sentence Encoder
ditunjukkan di bawah ini:Untuk informasi lebih lanjut tentang Embeddings yang Dilatih yang dikembangkan dan bersumber terbuka oleh Google, lihat TF Hub Link .
sumber
Dengan tensorflow versi 2 cukup mudah jika Anda menggunakan lapisan Embedding
sumber
Saya juga menghadapi masalah embedding, jadi saya menulis tutorial mendetail dengan dataset. Di sini saya ingin menambahkan apa yang saya coba. Anda juga dapat mencoba metode ini,
Berikut ini adalah contoh detail kerja Tutorial Ipython jika Anda ingin memahami dari awal, lihat.
sumber