Status GetAssetFileDefs()

in source/neuropod/backends/tensorflow/saved_model/loader_util.cc [69:96]


Status GetAssetFileDefs(const MetaGraphDef &meta_graph_def, std::vector<AssetFileDef> *asset_file_defs)
{
    // With SavedModel v2, we write asset file def into metagraph instead of
    // collection, so read from metagraph first.
    if (meta_graph_def.asset_file_def_size() > 0)
    {
        for (const auto &asset : meta_graph_def.asset_file_def())
        {
            asset_file_defs->push_back(asset);
        }
        return Status::OK();
    }
    // Fall back to read from collection to be backward compatible with v1.
    const auto &collection_def_map = meta_graph_def.collection_def();
    const auto  assets_it          = collection_def_map.find(kSavedModelAssetsKey);
    if (assets_it == collection_def_map.end())
    {
        return Status::OK();
    }
    const auto &any_assets = assets_it->second.any_list().value();
    for (const auto &any_asset : any_assets)
    {
        AssetFileDef asset_file_def;
        TF_RETURN_IF_ERROR(ParseAny(any_asset, &asset_file_def, "tensorflow.AssetFileDef"));
        asset_file_defs->push_back(asset_file_def);
    }
    return Status::OK();
}