将输入字符串张量转换为python字符串

时间:2019-01-23 02:34:47

标签: python tensorflow

我下面有两个字典:

word2int = {}
int2word = {}

for i,word in enumerate(words):
    word2int[word] = i
    int2word[i] = word

def euclidean_dist(vec1, vec2):
    return np.sqrt(np.sum((vec1-vec2)**2))

def find_closest(word_index, vectors):
    min_dist = 10000 # to act like positive infinity
    min_index = -1
    query_vector = vectors[word_index]
    for index, vector in enumerate(vectors):
        if euclidean_dist(vector, query_vector) < min_dist and not np.array_equal(vector, query_vector):
            min_dist = euclidean_dist(vector, query_vector)
            min_index = index
    return min_index

我有一个输入字符串张量X。我想使用X中的word2int索引,如下所示:

X = tf.placeholder(tf.string)
find_closest_word = tf.convert_to_tensor(int2word[find_closest(word2int[X], vectors)], dtype=tf.string)

问题:

如何将字符串张量X转换为python字符串,以便可以将其用作word2int中的索引?

1 个答案:

答案 0 :(得分:2)

  

如何将字符串张量X转换为python字符串,以便它可以   可以用作word2int中的索引?

除非调用sess.run(string_tensor),否则无法获取字符串值。


值得一提的是,有一种更干净的方法可以使用index_table_from_file将id转换为单词,反之亦然。 Here是如何使用它的一个示例。