tf.nn.embedding_lookup 使用浮点输入?
tf.nn.embedding_lookup with float input?
我想使用浮点输入而不是 int32 或 64b 来实现嵌入 table。
原因是我不想使用简单 RNN 中的单词,而是使用百分比。
例如在食谱的情况下;我可能有 1000 或 3000 种原料;但在每个食谱中我最多可以有 80 个。
成分将以百分比表示,例如:成分 1=0.2 成分 2=0.8...等
我的问题是 tensorflow 强制我使用整数进行嵌入 table:
TypeError: Value passed to parameter ‘indices’ has DataType float32 not in list of allowed values: int32, int64
有什么建议吗?
感谢您的反馈,
嵌入查找示例:
inputs = tf.placeholder(tf.float32, shape=[None, ninp], name=“x”)
n_vocab = len(int_to_vocab)
n_embedding = 200 # Number of embedding features
with train_graph.as_default():
embedding = tf.Variable(tf.random_uniform((n_vocab, n_embedding), -1, 1))
embed = tf.nn.embedding_lookup(embedding, inputs)
错误是由
引起的
inputs = tf.placeholder(**tf.float32,** shape=[None, ninp], name=“x”)
我想到了一种可以使用循环工作的算法。但是,我想知道是否有更直接的解决方案。
谢谢!
tf.nn.embedding_lookup
不允许输入浮点数,因为这个函数的重点是 select 在 指定行的嵌入 .
示例:
这里有 5 个单词和 5 个嵌入 3D 向量,操作 returns 第 3 行(索引为 0)。这相当于 tensorflow 中的这一行:
embed = tf.nn.embedding_lookup(embed_matrix, [3])
您不可能查找浮点索引,例如 0.2
或 0.8
,因为没有 0.2
和 0.8
行索引矩阵。强烈推荐 this post by Chris McCormick 关于 word2vec。
你描述的听起来更像是一个 softmax 损失函数,它输出目标 类 上的概率分布。
我想使用浮点输入而不是 int32 或 64b 来实现嵌入 table。 原因是我不想使用简单 RNN 中的单词,而是使用百分比。 例如在食谱的情况下;我可能有 1000 或 3000 种原料;但在每个食谱中我最多可以有 80 个。 成分将以百分比表示,例如:成分 1=0.2 成分 2=0.8...等
我的问题是 tensorflow 强制我使用整数进行嵌入 table:
TypeError: Value passed to parameter ‘indices’ has DataType float32 not in list of allowed values: int32, int64
有什么建议吗? 感谢您的反馈,
嵌入查找示例:
inputs = tf.placeholder(tf.float32, shape=[None, ninp], name=“x”)
n_vocab = len(int_to_vocab)
n_embedding = 200 # Number of embedding features
with train_graph.as_default():
embedding = tf.Variable(tf.random_uniform((n_vocab, n_embedding), -1, 1))
embed = tf.nn.embedding_lookup(embedding, inputs)
错误是由
引起的inputs = tf.placeholder(**tf.float32,** shape=[None, ninp], name=“x”)
我想到了一种可以使用循环工作的算法。但是,我想知道是否有更直接的解决方案。
谢谢!
tf.nn.embedding_lookup
不允许输入浮点数,因为这个函数的重点是 select 在 指定行的嵌入 .
示例:
这里有 5 个单词和 5 个嵌入 3D 向量,操作 returns 第 3 行(索引为 0)。这相当于 tensorflow 中的这一行:
embed = tf.nn.embedding_lookup(embed_matrix, [3])
您不可能查找浮点索引,例如 0.2
或 0.8
,因为没有 0.2
和 0.8
行索引矩阵。强烈推荐 this post by Chris McCormick 关于 word2vec。
你描述的听起来更像是一个 softmax 损失函数,它输出目标 类 上的概率分布。