gpt4 book ai didi

machine-learning - tf.nn.embedding_lookup 带有浮点输入?

转载 作者:行者123 更新时间:2023-11-30 09:08:00 24 4
gpt4 key购买 nike

我想实现一个带有浮点输入而不是 int32 或 64b 的嵌入表。原因是我不想使用简单 RNN 中的单词,而是使用百分比。例如,如果是食谱;我可能有1000或3000种原料;但在每个食谱中我可能最多有 80 个。成分将以百分比表示,例如:成分1=0.2 成分2=0.8...等

我的问题是 tensorflow 迫使我在嵌入表中使用整数:

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 不能允许 float 输入,因为此函数的重点是选择指定行处的嵌入。

示例:

embed-lookup

这里有 5 个单词和 5 个嵌入 3D 向量,该操作返回第 3 行(索引为 0)。这相当于 tensorflow 中的这一行:

embed = tf.nn.embedding_lookup(embed_matrix, [3])

您不可能查找浮点索引,例如 0.20.8 ,因为没有0.20.8矩阵中的行索引。强烈推荐this post by Chris McCormick关于word2vec。

您所描述的听起来更像是一个 softmax 损失函数,它输出目标类的概率分布。

关于machine-learning - tf.nn.embedding_lookup 带有浮点输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47213602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com