ebf57bdfc7
PiperOrigin-RevId: 317578771 Change-Id: Iaf674696ea7d7dfdf94924f4c60d555a613c5f57 |
||
---|---|---|
.. | ||
core | ||
internal | ||
public | ||
README.md |
README.md
Tensorflow C SavedModel API
Overview
These are the new experimental C SavedModel APIs for loading and running SavedModels in a TF2-idiomatic fashion. See RFC 207 for additional context.
The directory structure is as follows:
saved_model/
public/
internal/
core/
saved_model/public
saved_model/public
is intended to house only the public headers of the
SavedModel C API.
These headers:
-
declare opaque C types (like
TF_SavedModel
), -
declare the functions that operate on these types (like
TF_LoadSavedModel
).
Once they leave experimental, these APIs should be considered stable for use by external clients.
These headers are in a separate directory to make it obvious to clients which
headers they should depend on, and which headers are implementation details.
Separating these public headers by directory also allow future programmatic
checks to ensure that TF public headers only #include
other public TF headers.
saved_model/internal
saved_model/internal
is the "glue" between the C API and the internal C++
implementation.
Its role is to:
-
implement the C API functions declared in
saved_model/public
-
define the C API types declared in
saved_model/public
The files fulfilling 1. are named *.cc
(eg: concrete_function.cc
), while
the files fulfilling 2. are *type.h
(eg: concrete_function_type.h
).
The headers exposing the internal implementation of the opaque C types are only
visible to other implementors of the C API. This is similar to how other
TF C API implementations use tf_status_internal.h
(to extract the underlying
tensorflow::Status
). All other targets in this directory are private.
saved_model/core
saved_model/core
contains pure C++ "Classes" underlying the C API types
in saved_model/public/
. These are implementation
details subject to change, and have limited visibility to implementors only.
This is the bottom-most layer of the C++ -> C -> C++
sandwich.