2016-07-15 83 views
0

假設我想訓練僞隨機字(不是任何字典的一部分)的RNN,所以我不能使用word2vec。如何用tensorflow表示單詞中的每個字符?Tensorflow:帶字符輸入的RNN

回答

2

如果你只是在做角色,你可以使用一個大小爲128的熱矢量,它可以代表每個ASCII字符(你可能希望使用更小的字符,因爲我懷疑你會使用所有的ASCII字符,也許每個字母只有26個)。你並不需要使用任何類似於單詞向量的東西,因爲可能性很小。

其實當你使用一個熱門的編碼時,你對每個角色都是一種學習載體。假設你的第一個密集層(或者層)包含100個神經元。然後這會導致一個128x100矩陣與一個熱編碼相乘。由於除了其中一個值以外的所有值都不爲零,因此您本質上是從矩陣中選擇一個大小爲100的單行,該矩陣是該角色的向量表示。基本上,第一個矩陣只是表示每個字符的矢量列表,而您的模型將學習這些矢量表示。由於一個熱編碼的稀疏性,查找行而不是執行全矩陣乘法通常更快。這是tf.nn.embedding_lookup或tf.gather功能的用途。