我正在通过 Tensorflow 博客创建 CNN。
这是一篇很棒的文章,但它确实使用以下代码将 vocab 文件保存和恢复到文件系统:
vocab_processor.save(vocab)
vocab_processor = learn.preprocessing.VocabularyProcessor.restore(vocab))
Run Code Online (Sandbox Code Playgroud)
我一直在扩展该示例以使用 SaveModel 方法来生成saved_model.pd,并且工作正常。作为下一步,我想将词汇文件保存并恢复为资产。
保存操作运行良好,我可以在 /assets 目录中看到 vocab 文件,其大小和内容与使用原始方法相同。
我的问题是,如何从 asset 目录恢复文件内容以传递给 VocabularyProcessor.restore 方法?
我找到了一个加载器类的综合示例来处理每个资产并将其添加到资产张量字典中,但这给了我文件路径和名称,而不是数据。
for asset_any_proto in assets_any_proto:
asset_proto = meta_graph_pb2.AssetFileDef()
asset_any_proto.Unpack(asset_proto)
tensor_name = asset_proto.tensor_info.name
if import_scope:
tensor_name = "%s/%s" % (import_scope, tensor_name)
asset_tensor_dict[tensor_name] = os.path.join(
compat.as_bytes(assets_directory),
compat.as_bytes(asset_proto.filename))
Run Code Online (Sandbox Code Playgroud)
我如何实现以下目标:
vocab_processor = learn.preprocessing.VocabularyProcessor.restore(RESTORED_ASSET))
Run Code Online (Sandbox Code Playgroud)
这可以用 Tensorflow 实现吗?