| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
The is similar to the return_tensors option. return_tensors cannot be
used to fetch nodes with no outputs, so return_nodes is necessary.
In addition, this change also refactors the ImportGraphDef signature
to return all optional return values in a single struct. This is to
keep the ImportGraphDef signature from getting too long, and also
makes the call sites simpler.
PiperOrigin-RevId: 172388270
|
|
|
|
| |
PiperOrigin-RevId: 170390543
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces the basic framework to create the gradient
graph of a while loop using the C++ API. This supports building the
gradient graph as long as the body function of the while loop contains
no ops whose gradient function requires a stack. In other words, it
doesn't support gradient functions that use the input values to the op
(e.g. add will work, but multiply will not). It also doesn't support
nested while loops, and doesn't detect all error cases.
PiperOrigin-RevId: 170243281
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, we call IsValidOutputTensor() on the returned
outputs from the condition and body functions. This will return a bad
status if no output or a null output is set, or if an output has a bad
index.
This also adds unit tests for related error cases to the C and C++
unit tests. They often produce different errors because the C
implementation goes through the graph constructor.
PiperOrigin-RevId: 167925641
|
|
|
|
|
|
|
|
| |
These nodes are not needed, but they caused failures in functions
with while loops because functions currently execute all ops in their
bodies and these ops are placeholders without feeds.
PiperOrigin-RevId: 165814802
|
|
This change also separates shared functionality into
c_test_util.h/cc. This brings c_api_test.cc to a mere 1715 LOC
(further splits can be more easily done now too).
PiperOrigin-RevId: 162216399
|