Struct tract_tensorflow::tfpb::tensorflow::GraphDef
source · [−]pub struct GraphDef {
pub node: Vec<NodeDef>,
pub versions: Option<VersionDef>,
pub version: i32,
pub library: Option<FunctionDefLibrary>,
}Expand description
Represents the graph of operations
Fields
node: Vec<NodeDef>versions: Option<VersionDef>Compatibility versions of the graph. See core/public/version.h for version history. The GraphDef version is distinct from the TensorFlow version, and each release of TensorFlow will support a range of GraphDef versions.
version: i32Deprecated single version field; use versions above instead. Since all GraphDef changes before “versions” was introduced were forward compatible, this field is entirely ignored.
library: Option<FunctionDefLibrary>EXPERIMENTAL. DO NOT USE OR DEPEND ON THIS YET.
“library” provides user-defined functions.
Naming:
- library.function.name are in a flat namespace. NOTE: We may need to change it to be hierarchical to support different orgs. E.g., { “/google/nn”, { … }}, { “/google/vision”, { … }} { “/org_foo/module_bar”, { … }} map<string, FunctionDefLib> named_lib;
- If node[i].op is the name of one function in “library”, node[i] is deemed as a function call. Otherwise, node[i].op must be a primitive operation supported by the runtime.
Function call semantics:
-
The callee may start execution as soon as some of its inputs are ready. The caller may want to use Tuple() mechanism to ensure all inputs are ready in the same time.
-
The consumer of return values may start executing as soon as the return values the consumer depends on are ready. The consumer may want to use Tuple() mechanism to ensure the consumer does not start until all return values of the callee function are ready.
Implementations
Trait Implementations
sourceimpl Framework<GraphDef, Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>> for Tensorflow
impl Framework<GraphDef, Graph<InferenceFact, Box<dyn InferenceOp + 'static, Global>>> for Tensorflow
sourcefn proto_model_for_path(&self, r: impl AsRef<Path>) -> TractResult<GraphDef>
fn proto_model_for_path(&self, r: impl AsRef<Path>) -> TractResult<GraphDef>
This method will try to read as frozen model, then as a saved model.
sourcefn proto_model_for_read(&self, r: &mut dyn Read) -> TractResult<GraphDef>
fn proto_model_for_read(&self, r: &mut dyn Read) -> TractResult<GraphDef>
This method expects a frozen model, use open_saved_model for TF2 saved model format.
sourcefn model_for_proto_model(&self, graph: &GraphDef) -> TractResult<InferenceModel>
fn model_for_proto_model(&self, graph: &GraphDef) -> TractResult<InferenceModel>
Translate a proto model into a model.
fn model_for_read(&self, r: &mut dyn Read) -> Result<Model, Error>
fn model_for_read(&self, r: &mut dyn Read) -> Result<Model, Error>
Read a model from a reader
fn model_for_path(&self, p: impl AsRef<Path>) -> Result<Model, Error>
fn model_for_path(&self, p: impl AsRef<Path>) -> Result<Model, Error>
Build a model from a filename.
sourceimpl Message for GraphDef
impl Message for GraphDef
sourcefn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
sourcefn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
Encodes the message to a buffer. Read more
sourcefn encode_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn encode_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Encodes the message to a newly allocated buffer.
sourcefn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
Encodes the message with a length-delimiter to a buffer. Read more
sourcefn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Encodes the message with a length-delimiter to a newly allocated buffer.
sourcefn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
Decodes an instance of the message from a buffer. Read more
sourcefn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
sourcefn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
Decodes an instance of the message from a buffer, and merges it into self. Read more
sourcefn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
Decodes a length-delimited instance of the message from buffer, and
merges it into self. Read more
impl StructuralPartialEq for GraphDef
Auto Trait Implementations
impl RefUnwindSafe for GraphDef
impl Send for GraphDef
impl Sync for GraphDef
impl Unpin for GraphDef
impl UnwindSafe for GraphDef
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<W, Global>impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
W: Write + ?Sized, impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more