【发布时间】:2019-03-31 11:32:22
【问题描述】:
我将tf.data.Dataset API 与tf.contrib.lookup.index_table_from_tensor 结合使用。
我的数据集是这样创建的:
dataset = tf.data.Dataset.from_tensor_slices(({'reviews': x}, y)))
这就是我正在做的事情:
data_table = tf.contrib.lookup.index_table_from_tensor(tf.constant(data_vocab))
labels_table = tf.contrib.lookup.index_table_from_tensor(tf.constant(labels_vocab))
然后我在我的dataset 上映射一个预处理函数:
def preprocess(x, y):
# split on whitespace
x['reviews'] = tf.string_split([x['reviews']])
# turn into integers
return data_table.lookup(x['reviews']), labels_table.lookup(y)
到目前为止一切顺利。但是,当我尝试将我的数据集传递给我的 Keras 模型进行训练时,我得到:
tensorflow.python.framework.errors_impl.FailedPreconditionError: Table not initialized.
我四处搜索,人们建议我需要包括:
sess = tf.Session()
sess.run(tf.tables_initializer())
但现在我明白了:
tensorflow.python.framework.errors_impl.FailedPreconditionError: Table not initialized.
[[Node: hash_table_Lookup = LookupTableFindV2[Tin=DT_STRING, Tout=DT_INT64](hash_table_lookup_placeholder, StringSplit:1, hash_table_lookup_placeholder_1)]]
[[Node: IteratorGetNext_1 = IteratorGetNext[output_shapes=[[?,?], [?,20]], output_types=[DT_INT64, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](Iterator_1)]]
知道为什么我的查找表仍然没有初始化/如何解决这个问题?
谢谢!
【问题讨论】:
标签: python tensorflow tensorflow-datasets