FailedPreconditionError:表已初始化

时间:2018-05-18 13:32:05

标签: python-3.x tensorflow tensorflow-datasets

我正在使用数据集api从tfrecords中读取数据。我正在使用以下代码将字符串数据转换为虚拟数据。

SFR1 = tf.feature_column.indicator_column(
    tf.feature_column.categorical_column_with_vocabulary_list("SFR1 ",
                                                             vocabulary_list=("1", "2")))

但是当我运行我的代码时,tensorflow会抛出以下错误。

  

tensorflow.python.framework.errors_impl.FailedPreconditionError:表   已初始化。 [[节点:   Generator / input_layer / SFR1 _indicator / SFR1 _lookup / hash_table / table_init   = InitializeTableV2 [Tkey = DT_STRING,Tval = DT_INT64](生成器/ input_layer / SFR1 _indicator / SFR1 _lookup / hash_table,   Generator / input_layer / SFR1 _indicator / SFR1 _lookup / Const,   Generator / input_layer / SFR1 _indicator / SFR1 _lookup / ToInt64)]]      [[Node:Generator2 / IteratorGetNext =   IteratorGetNextoutput_shapes = [[?, 10000,160]]   output_types = [DT_FLOAT]   _device = “/作业:本地主机/复制:0 /任务:0 /装置:CPU:0”]]

我尝试了很多组合来确定问题的根源。我知道当模型同时包含tf.feature_column.categorical_column_with_vocabulary_listdataset api时会出现此问题。如果我选择TFRecordReader而不是dataset,则代码正在运行。

当我搜索stackoverflow时,我注意到存在类似的问题。我在下面添加问题链接。由于两个问题都相同,我没有复制我的所有代码。下面的链接包含足够的数据来解释我的问题

Tensorflow feature columns in Dataset map Table already initialized issue

感谢。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。然后根据Tensorflow的警告修改我的代码,它可以正常工作:

不支持在传递给Dataset.map()的函数内部创建查找表。在函数外部创建每个表,并将其捕获到函数内部以供使用。

希望这会有所帮助。

答案 1 :(得分:0)

这是TensorFlow的早期版本的问题,更新到TF2.0应该可以解决此问题。

pip install --upgrade tensorflow