我有一个 Keras 模型,可以在 Eager 模式开启时进行训练(TF 2.1.0)。我的一个特性是一个字符串,我需要将它映射到其相应的词汇索引。但是,在禁用急切执行的情况下,我找不到一种巧妙的方法来做到这一点。
我最初使用的是tft.apply_vocabulary
,它曾经可以正常工作,但没有急切的执行就失败了。我也试过tf.lookup.StaticVocabularyTable
:
table = tf.lookup.StaticVocabularyTable(TextFileIdTableInitializer('item_vocab.txt'), 1)
out = table.lookup(input_strings)
其中(急切模式关闭)失败:
tensorflow.python.framework.errors_impl.FailedPreconditionError:表未初始化。[[{{节点转换器/hash_table_Lookup_1/hash_table_Lookup/LookupTableFindV2}}]]
我可以_initialize
在 a 中运行表的方法tf.Session
,但是对于这样一个常见的任务来说,这感觉工作量太大,而且不兼容 TF2.0。
那么,如何在不急切执行的情况下将字符串映射到词汇文件中的整数索引?
为什么不热心?
我的印象是图形模式训练有更广泛的支持(例如多 GPU 训练)和更好的性能,我正在努力确保我的代码在禁用急切模式的情况下工作,这样我最终可以在完成后关闭它发展。这是一个明智的目标吗?