我正在构建一个神经网络,目的是对输入的单词进行某种分类。在不详细描述网络本身的情况下,我在寻找一种方法,将输入的单词转换为整数格式,以便使用TensorFlow的tf.nn.embedding_lookup(...)
进行输入编码。
我注意到tf.string_to_number()
存在,于是尝试使用它,但失败了。起初我以为这与我在网络中所做的有关,但即使在Python控制台中执行类似以下操作时,
import tensorflow as tfs = tf.string_to_number("TEST", out_type=tf.int32)sess = tf.InteractiveSession()sess.run(s)
我仍然得到了同样的错误,
tensorflow.python.framework.errors.InvalidArgumentError: StringToNumberOp could not correctly convert string: TEST
我也尝试先创建一个tf.constant("TEST", dtype=tf.string)
,然后将其传递给tf.string_to_number()
,并在web服务器上运行此测试代码以确保与我的设置无关,但结果相同。
有谁能告诉我这里我遗漏了什么吗?提前感谢!
回答:
有谁能告诉我这里我遗漏了什么吗?
你忽略了string_to_number
的用途,它的目的是将表示为字符串的数字转换为数值类型,比如tf.string_to_number('1')
,它并不是字符串的“独热编码器”(它怎么能首先确定词汇表的大小呢?)
TensorFlow本身有一个很好的教程,展示了如何在word2vec_basic.py中训练嵌入模型,该教程涵盖了从数据读取到使用查找操作实现完全嵌入的所有内容。