History log of /external/tensorflow/tensorflow/c/c_api.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
caced55cbc205a9423a480cae0bb9e7a9a10f3a1 08-Feb-2018 Asim Shankar <ashankar@google.com> C API: Fixes #7394

Ideally, when TF_NewTensor is provided with invalid arguments it would provide
a detailed error message. However, for now, to keep the existing API, signal
failure by returning nullptr.

PiperOrigin-RevId: 185040858
/external/tensorflow/tensorflow/c/c_api.cc
ee5a6641e3a2db7807a655bef21614e97b82c769 06-Feb-2018 Akshay Modi <nareshmodi@google.com> Make TFE_Py_FastpathExecute work for all types of ops

MatMul benchmarks:
entry {
name: "MicroBenchmarks.benchmark_gen_math_ops_matmul_2_by_2_CPU"
iters: 30000
wall_time: 11.580435435
extras {
key: "examples_per_sec"
value {
double_value: 86352.538781
}
}
}

entry {
name: "MicroBenchmarks.benchmark_tfe_py_fastpath_execute_matmul_2_by_2_CPU"
iters: 30000
wall_time: 7.02576637268
extras {
key: "examples_per_sec"
value {
double_value: 142333.227004
}
}
}

PiperOrigin-RevId: 184734289
/external/tensorflow/tensorflow/c/c_api.cc
b3294d74c73d8f01412ffeeac616d0b8a2f4e18e 25-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> When a device list API such as TF_DeviceListName() succeeds, set the output status to OK.

PiperOrigin-RevId: 183148319
/external/tensorflow/tensorflow/c/c_api.cc
d50f68df6d1e4e41f4486ee71626454f6bd3ffe4 23-Jan-2018 Skye Wanderman-Milne <skyewm@google.com> C API: don't return source/sink control edges.

PiperOrigin-RevId: 182989157
/external/tensorflow/tensorflow/c/c_api.cc
afbf1e3ab3cd1ba0ebec53483c9d3a05b9c51554 17-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Rename the newly introduced TF_SetAttrFunc function to make it clear that it is
setting the attribute to a function name. This permits future patches to add
things like TF_SetAttrFuncAttrList if necessary later.

PiperOrigin-RevId: 182216098
/external/tensorflow/tensorflow/c/c_api.cc
baea13831c2d1ffa08c4fcc8944a3870d19826cb 17-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Introduce a new C API entrypoint to set a 'func' attribute on an op
description.

PiperOrigin-RevId: 182146876
/external/tensorflow/tensorflow/c/c_api.cc
1938feab97e36275f18a0745804299acfe137dc8 21-Dec-2017 Akshay Agrawal <akshayka@google.com> This change adds a mechanism to the internal C API for updating an output handle's shapes and types after its source operation has been created.

Context: framework/ops.py was recently updated to use the C API when setting shapes for an op's outputs. This update broke shape inference for graph functions that captured resource handles; this, in turn, made it impossible to create graph functions from Python methods that required fully defined shapes (e.g., like MNIST's `call` method). In particular, the C API computes shapes for ops when they are created and does not update them thereafter; this is problematic because when a resource handle is captured while building a function, we need to update the captured operation's output handle in order to propagate its outputs shapes and dtypes.
PiperOrigin-RevId: 179837104
/external/tensorflow/tensorflow/c/c_api.cc
d064a47543f51ff5a62927a76bb0fb0862d05558 20-Dec-2017 Anna R <annarev@google.com> Read ApiDef from TensorFlow Go API.

PiperOrigin-RevId: 179625412
/external/tensorflow/tensorflow/c/c_api.cc
90e42f3ac8c43474633136af4242dca04b6a1e09 16-Dec-2017 Dandelion Man? <dandelion@google.com> Automated g4 rollback of changelist 179260538

PiperOrigin-RevId: 179263865
/external/tensorflow/tensorflow/c/c_api.cc
9648f8040a559f6cf9bbe0501ba96f2b2c2864b1 16-Dec-2017 A. Unique TensorFlower <gardener@tensorflow.org> Automated g4 rollback of changelist 179258973

PiperOrigin-RevId: 179260538
/external/tensorflow/tensorflow/c/c_api.cc
d55f532867a3670d66460c5ee3b774519542adc1 16-Dec-2017 Dandelion Man? <dandelion@google.com> Merge changes from github.

PiperOrigin-RevId: 179258973
/external/tensorflow/tensorflow/c/c_api.cc
968da4bf2722b1303cc223e8342357d62c27dfc1 12-Dec-2017 Skye Wanderman-Milne <skyewm@google.com> Raise exception on missing unused input_map keys with C API enabled.

Without this change, the C++ ImportGraphDef API returns unused
input_map keys (which are plumbed through to the C API as
well). However, the Python import_graph_def API requires slightly
different semantics: it throws an error for unused input_map keys that
are missing from the GraphDef.

This change modifies the C and C++ APIs to limit the returned keys to
those missing from the GraphDef, and plumbs this through to the C
API-enabled import_graph_def implementation.

Note that this is a change to the existing C API. Luckily the modified
method hasn't been released yet, so it's ok to change it.

PiperOrigin-RevId: 178783957
/external/tensorflow/tensorflow/c/c_api.cc
c7778898eaf001c82744a8f4c71eb9a880a158f0 06-Dec-2017 Skye Wanderman-Milne <skyewm@google.com> Uniquify names and prefixes in import_graph_def with C API enabled.

This makes the C API-enabled behavior the same as the current behavior.

PiperOrigin-RevId: 178133381
/external/tensorflow/tensorflow/c/c_api.cc
cb5a63d8d2b6e049a0a128ba47560f842497db8b 29-Nov-2017 Igor Ganichev <iga@google.com> Check when session cannot run because its graph was modified

With current tensorflow code, if user modifies
some operation after session.run() was called, this modification will
never make it to the C++ runtime and no errors will be raised leading
to silent wrong results.

This change adds checks for such cases when C API is enabled. We don't
change the code path for C API being disabled because C API should
be enabled by default soon.

PiperOrigin-RevId: 177359630
/external/tensorflow/tensorflow/c/c_api.cc
a80fd2acf08ceba0c8fc7684c3013e8e7d6bd8d3 29-Nov-2017 Skye Wanderman-Milne <skyewm@google.com> C API: fix bug in ValidateNoCycles().

This change makes ValidateNoCycles() work when the graph has unused
node ids (i.e. when Graph::num_nodes() < Graph::num_node_ids()).

PiperOrigin-RevId: 177234002
/external/tensorflow/tensorflow/c/c_api.cc
1d97fe0abdf2279f3f9187e279646732f2264940 20-Nov-2017 Olivia Nordquist <nolivia@google.com> fix bug in c_api TF_GraphSetTensorShape to be able to handle unknown shapes as per the documentation.

PiperOrigin-RevId: 176399293
/external/tensorflow/tensorflow/c/c_api.cc
6c95675492aa8d25619f5e4ce1674582c051a7fe 08-Nov-2017 Skye Wanderman-Milne <skyewm@google.com> Allow Operation._get_attr() to work with all attr types with C API enabled

This is achieved by accessing the AttrValue directly and using the
existing Python code instead of dispatching to the specific C API attr
getter for every type. I started going down the dispatch path, but it
turns out to be a lot of code (spread across Python, C, and SWIG), and
this is likely good enough from a performance standpoint. We can
optimize in the future if necessary.

In addition, changes the colocation group logic to use _set_attr() and
get_attr(), and makes _set_attr() work with the C API disabled. This
allows the colocation tests to pass with both the C API enabled and
disabled. Without these additional changes, the "_class" attribute
would be set on the C NodeDef, and then it would try to retrieve it
from the Python NodeDef.

PiperOrigin-RevId: 175050473
/external/tensorflow/tensorflow/c/c_api.cc
7fd261602677d3c251fba05264a20318231deb76 30-Oct-2017 Skye Wanderman-Milne <skyewm@google.com> Add TF_GraphVersions() to C API and use in Graph.graph_def_versions()

PiperOrigin-RevId: 173902666
/external/tensorflow/tensorflow/c/c_api.cc
ce0238198052358d102ca7786ad9be60a5e76d28 30-Oct-2017 Skye Wanderman-Milne <skyewm@google.com> Add ability to fetch return nodes and unused input mappings from C API GraphDef import

This change introduces yet another ImportGraphDef function to the C
API (TF_GraphImportGraphDefWithResults), but this one has extensible
return values so we shouldn't have to add more in the future.

This change also modifies the ImportGraphDef C interface to manage all
string data for the user.

PiperOrigin-RevId: 173894710
/external/tensorflow/tensorflow/c/c_api.cc
f5d3bf42b892ecfbde2ce9eb45f00b76473c824a 18-Oct-2017 Skye Wanderman-Milne <skyewm@google.com> Add TF_GraphGetOpDef() to C API and use in Operation.op_def()

Note that this creates a small change in behavior with the C API
enabled, since previously not all Python Operations had an OpDef
(op_def() returns None). With the C API enabled, op_def() always
returns an OpDef.

PiperOrigin-RevId: 172634411
/external/tensorflow/tensorflow/c/c_api.cc
dc442f4ce2d3b11b56721337fe2b9e2282be93be 17-Oct-2017 Skye Wanderman-Milne <skyewm@google.com> Add return_nodes option to ImportGraphDef

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
/external/tensorflow/tensorflow/c/c_api.cc
f8d4b5eae59124c9a4b01a4cc1097e1f0006137a 06-Sep-2017 Olivia Nordquist <nolivia@google.com> detecting cycles when users add a control edge to a graph

PiperOrigin-RevId: 167773598
/external/tensorflow/tensorflow/c/c_api.cc
9624d165f1f2c717eda96464fee8bf7229cc14f5 31-Aug-2017 Igor Ganichev <iga@google.com> Add function support to Tensorflow C API

This change adds minimal functionality. Support for FunctionOptions,
attributes, output name rewriting, function name generation, etc is
comming next.

PiperOrigin-RevId: 167091238
/external/tensorflow/tensorflow/c/c_api.cc
0fd2a74120b86972441378f79fb5d03e86fed856 29-Aug-2017 Skye Wanderman-Milne <skyewm@google.com> Introduce C++ API while loop builder method

This change adds a new function, BuildWhileLoop(), that constructs a
while loop. BuildWhileLoop() takes functions that build the cond and
body graphs, similar to the Python while_loop function. It also
switches the C API to use this new function in order to reduce code
duplication. This is in preparation for while loop gradients, which
are also implemented in the C++ API (along with the other gradient
code).

I didn't write unit tests for BuildWhileLoop, instead relying on the
current C API while loop tests.

This change also disables while loop creation on Android to avoid
pulling in extra C++ dependencies.

PiperOrigin-RevId: 166849829
/external/tensorflow/tensorflow/c/c_api.cc
e1030858725b485b0f848cc27597b8e2c2d8383f 19-Aug-2017 Igor Ganichev <iga@google.com> Don't create cond_input and body_input nodes when finishing while loop

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
/external/tensorflow/tensorflow/c/c_api.cc
28ce1d163eeffe618a6972c5245be0e660d94e85 15-Aug-2017 A. Unique TensorFlower <gardener@tensorflow.org> Merge changes from github.
END_PUBLIC

---
Commit 9f81374c3 authored by raymondxyang<zihao.yang@microsoft.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Add option for build more python tests in Cmake (#11853)

* Ignore Windows built project

* Fix deprecated methods in tf.contrib.python

* Fix regex match for Windows build in contrib.keras

* Fix Regex match for Windows build in session_bundle

* * Fix deprecated methods
* Fix regex match for Windows
* Fix compatibility issue with Python 3.x

* Add missing ops into Windows build for test

* Enabled more testcases for Windows build

* Clean code and fix typo

* Add conditional cmake mode for enabling more unit testcase

* Add Cmake mode for major Contrib packages

* Add supplementary info in RAEDME for new cmake option

* * Update tf_tests after testing with TF 1.3
* Clean code and resolve conflicts

* Fix unsafe regex matches and format code

* Update exclude list after testing with latest master branch

* Fix missing module

---
Commit 98f0e1efe authored by Yong Tang<yong.tang.github@outlook.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Dynamic ksize and strides with MaxPool (#11875)

* Dynamic ksize with max_pool

This fix tries to fix the issue raised in 4746 where ksize
is static (attr) with max_pool.
This fix changes ksize to input tensor so that it is dynamic now.

This fix fixes 4746.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

* Add dynamic ksize to MaxPoolGrad and MaxPoolGradGrad

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

* Add test cases for max_pool_v2

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

* Fix GPU Jenkins issue.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

* Enable MaxPoolV2 in GPU

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

* Hide MaxPoolV2 and other fixes.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

---
Commit 02d6bc185 authored by Bairen Yi<byronyi@users.noreply.github.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
remove useless variable (#12212)

---
Commit ed6b0d905 authored by namrata-ibm<bhavenamrata@gmail.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Adding support for s390x in calculation of cpu_frequency (#12201)

---
Commit 627dfc9dd authored by Taehoon Lee<taehoonlee@snu.ac.kr>
Committed by Taehoon Lee<taehoonlee@snu.ac.kr>:
Fix typos

---
Commit c0f9b0a91 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
In fast-math mode emit a tanh that has a faster min/max.

PiperOrigin-RevId: 164943597

---
Commit 87605f3d6 authored by Kay Zhu<kayzhu@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
[TF:XLA] Use HloEvaluator for ComputeConstant, remove the need of a dedicated
compute constant backend.

PiperOrigin-RevId: 164940970

---
Commit 881de45c2 authored by Taehoon Lee<me@taehoonlee.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Add bool type supports for GPU kernels (#11927)

* Add bool type supports for GPU kernels

* Add bool type test codes for GPU kernels

---
Commit eeacdcdb1 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Add missing "CPU" suffix in registrations.

PiperOrigin-RevId: 164939527

---
Commit de01be952 authored by namrata-ibm<bhavenamrata@gmail.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Adding support for Big Endian in graph_constructor_test and wav_io (#12179)

---
Commit 26719d29f authored by QingYing Chen<pkudysj@126.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Implement CRF decode (Viterbi decode) for tensor (#12056)

* Implement CRF decoding for tensors

* add test code for tensor version's CRF decoding

* made modifications according to pylint

* add some comments for crf decode

* remove useless code

* add comments at the top comment of crf module and add more comments in crf_test

* capitalize first char of first word in comments

* replace crf_decode test code with a deterministic example

---
Commit f9a81ca2f authored by Pete Warden<pete@petewarden.com>
Committed by gunan<gunan@google.com>:
Create CI build script for Raspberry Pi (#12190)

* Create CI build script for Raspberry Pi

* Moved location of Pi build script

---
Commit e2a163a90 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Merge code from PR #11940 with internal changes from cl/164796436, and update Python tests to also run on GPU.

PiperOrigin-RevId: 164929133

---
Commit 08bbfa187 authored by Taehoon Lee<me@taehoonlee.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Fix typos (#12195)

---
Commit ab96f41fb authored by Luke Iwanski<luke@codeplay.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
[OpenCL] Extends matmul_benchmark.py to cover SYCL (#11697)

* [OpenCL] Extends matmul_benchmark.py to cover SYCL

* Fixed typo

* /gpu:0 -> /device:GPU:0

* Fixes control_flow_ops_py_test

* /gpu: -> /device:GPU:

* Fixes //tensorflow/python/profiler/internal:run_metadata_test

* gpu: -> GPU:

* Fixes tfprof_node

* [OpenCL] Fixes device path to name with many colons (#123)

The device path is constructed from a device name by replacing all
colons with underscores. Some device names contain more than one colon,
for example 'device:SYCL:0' which gives a path 'device_SYCL_0'. The
previous code would not convert this back to the original device name,
but rather to 'device:SYCL_0'.

An alternative fix would be to convert all underscores to colons in the
device name (i.e. remove the restriction inside `replace("_", ":", 1)`),
however I'm not sure if there are any device names which contain
underscores.

* If no gpu device aviable fake one

* gpu: -> device:GPU

* Fixes profiler test

* /gpu:x -> /device:GPU:x

* Fixes debug_io_utils_test.cc test

* Fixes device_name_utils_test.cc

---
Commit 35e7a3665 authored by Yong Tang<yong.tang.github@outlook.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
Remove unneeded casting of int64 for reverse_sequence (#12192)

This fix remove unneeded cast of int64 for reverse_sequence:
```
lengths = math_ops.to_int64(lengths)
```
as int32 has already been enabled for reverse_sequence.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
---
Commit 9fba8c185 authored by Anna R<annarev@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Add benchmark dashboard link to benchmarks doc. Also, I added a link and
description for Benchmarks page to Community index page.

PiperOrigin-RevId: 164924906

---
Commit bb6f32fa7 authored by Mark Heffernan<meheff@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Make HloAliasAnalysis updatable after changes to the HLO graph.
As part of this change make HloAliasAnalysis a thinner layer which
basically only holds a map from HloValue to HloBuffer and vice versa.

PiperOrigin-RevId: 164923041

---
Commit 9103096c1 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by Thomas K?ppe<tkoeppe@google.com>:
Merged commit includes the following changes:
164923041 by meheff:

Make HloAliasAnalysis updatable after changes to the HLO graph.
As part of this change make HloAliasAnalysis a thinner layer which
basically only holds a map from HloValue to HloBuffer and vice versa.

--

PiperOrigin-RevId: 164923041

---
Commit 822603aed authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Merging sibling fusion instruction using multi_output_fusion

PiperOrigin-RevId: 164920220

---
Commit c035aa2a8 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Go: Update generated wrapper functions for TensorFlow ops.

PiperOrigin-RevId: 164917891

---
Commit e1e81d9ba authored by Luke Iwanski<luke@codeplay.com>
Committed by Rasmus Munk Larsen<rmlarsen@google.com>:
[OpenCL] Fixes double memcpy bug (#151) (#12173)

* [OpenCL] Fixes double memcpy bug (#151)

As the debg CopyOp is called on a Tensor without type, we need to use
the DataType enum to get type information, and use this to pass the type
on to Eigen. This is a workaround Eigen's need to have a type when
calling memcpy. If the Eigen memcpy can be provided without a type
requirement, then the memcpy in sycl_util is unnecessary.

* Acts on feedback from: #12173/files/32cb12a9001b672425867b5a3110fd98e737a20b#r132496277

---
Commit d9ca2d86d authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Internal change

PiperOrigin-RevId: 164916465

---
Commit b8d13d218 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Remove more parts of DCASGD missed in the first pass. (47949b)

PiperOrigin-RevId: 164914552

---
Commit 73b3d52c7 authored by Alexandre Passos<apassos@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
cmake fix

PiperOrigin-RevId: 164911656

---
Commit 2173b5b0a authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Allow TFE_TensorHandleCopyToDevice to have the same device as src and
destination. It will reuse the same underlying buffer in those cases.

PiperOrigin-RevId: 164909906

---
Commit 13eb3b90e authored by Alexandre Passos<apassos@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Experimental C and Python APIs to invoke TensorFlow kernels on concrete values.

PiperOrigin-RevId: 164902588

---
Commit 7dfabcc01 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Initialize ExecutionOptions in ComputeConstant to default values.

PiperOrigin-RevId: 164894867

---
Commit c8897e9bc authored by Benoit Steiner<bsteiner@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Static required time computation

PiperOrigin-RevId: 164894645

---
Commit 076158f9b authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Enable implicit->explicit conversion by default.

PiperOrigin-RevId: 164890915

---
Commit 58c4a4cb1 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Bugfix: number of input channels is not necessarily in the last dimension, after introduction of data_format param.

PiperOrigin-RevId: 164889729

---
Commit 8f9b1af8a authored by Igor Saprykin<isaprykin@google.com>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Recover MonitoredSession when the Coordinator is requested to stop with one of the _PREEMPTION_ERRORS.

When SyncReplicasOptimizer is used, a preemption in the Coordinator may result in two cases:
Case 1) the session gets silently marked as complete
Case 2) the session gets stuck

This CL aims to solve and verify solutions for both of these problems. Fix 1 changes the should_stop logic. Fix 2 changes the CoordinatedSession.run() logic.

SyncReplicasOptimizer runs a separate set of threads using a Coordinator instance. Those threads do FIFOQueue.enqueue; the main thread does a blocking FIFOQueue.dequeue.

`sync_token_q` FIFOQueue is on parameter-servers. When one of the PS instances gets preempted, an AbortedError causes the Coordinator to stop via request_stop(ex). That by itself changes the state of MonitoredSession.should_stop() to True (Fix 1).

Results of the blocking Dequeue operation are sent to the chief worker via Recv. What happens next depends on the amount of tokens in `sync_token_q`. If there are enough for the next call to Dequeue to return, then the low-level "tf session run() call" returns. The next iteration of the `while not MonitoredSession.should_stop()` loop decides that the training is complete (Case 1).

If there are not enough tokens in `sync_token_q`, then the blocking Dequeue is going to keep waiting for them. This results in the graph execution getting stuck and the whole session getting garbage collected after 10 minutes (Case 2).

We decided to fix that by re-creating a session after it gets garbage collected (Fix 2). An alternative was to try to cancel the pending Dequeue operation, but it's not clear that it is the right thing to do and it is also not easy.

PiperOrigin-RevId: 164888390

---
Commit 46e4de6e5 authored by A. Unique TensorFlower<gardener@tensorflow.org>
Committed by TensorFlower Gardener<gardener@tensorflow.org>:
Undo loop fusion changes for now as they seem to be altering a few results.
END_PUBLIC
RELNOTES: n/a

BEGIN_PUBLIC
BEGIN_PUBLIC
Automated g4 rollback of changelist 164825735

PiperOrigin-RevId: 165340331
/external/tensorflow/tensorflow/c/c_api.cc
57626dd38a7867b76c44f3933e7810190174a2ee 04-Aug-2017 A. Unique TensorFlower <gardener@tensorflow.org> Allow specifying colocation constraints through TF_SetAttr*

Before this change, colocation constraint semantics were not
well-defined when they were set using TF_ColocateWith and
TF_SetAttrStringList and/or TF_SetAttrValueProto. One could get
an exception if multiple methods were used.

After this change all changes to colocation attribute (i.e. _class)
are executed on TF_OperationDescription.colocation_constraints leading
to consistent semantics.

PiperOrigin-RevId: 164202666
/external/tensorflow/tensorflow/c/c_api.cc
b42ed42cdf3eb13a9412ce6ca08183d19322fd6f 03-Aug-2017 Asim Shankar <ashankar@google.com> C API: Make TF_TensorFromTensor return an error instead of just logging it.

PiperOrigin-RevId: 164167582
/external/tensorflow/tensorflow/c/c_api.cc
2bae08e2afe62afbf83064ae7d9e5d2aa2ef9ee6 03-Aug-2017 Asim Shankar <ashankar@google.com> C API: TF_Tensors will always be in host memory.

This change undoes some experimentation in
commit 22651083406ca01ac9d481e3367a3510d25f88cd
and restores TF_Tensor behavior to what is was prior to that change.

PiperOrigin-RevId: 164146670
/external/tensorflow/tensorflow/c/c_api.cc
92f403f05d776873868f7e5c7b52d559ba7f0efa 02-Aug-2017 A. Unique TensorFlower <gardener@tensorflow.org> Copy function definitions from TF_Graph to session's graph

Before this change, function definitions added to TF_Graph were not
making it to session graph and adding NodeDefs refering to functions
failed.

PiperOrigin-RevId: 164028074
/external/tensorflow/tensorflow/c/c_api.cc
96675956ef17e609d1bd60591fc998890d505004 01-Aug-2017 Asim Shankar <ashankar@google.com> C API: Avoid converting uninitialized tensorflow::Tensor to TF_Tensor*

And return error messages instead of CHECK failing when the conversion
fails.

PiperOrigin-RevId: 163863981
/external/tensorflow/tensorflow/c/c_api.cc
0b3a25d684ed2466d35661683baadc7eecce73d3 31-Jul-2017 Asim Shankar <ashankar@google.com> Make TF_RESOURCE memory handling consistent with other types.

TF_Tensor's are backed by a contiguous memory region for all
but TF_RESOURCE tensors. The memory management of TF_RESOURCE
tensors required keeping a backing tensorflow::ResourceHandle*
object alive for the lifetime of the TF_Tensor object.

This change removes that discrepancy, making the memory backing
TF_RESOURCE tensors self-contained. This simplifies use of TF_RESOURCE
tensors in the C API (as users of the C API do not need to worry about
a tensorflow::ResourceHandle object and its lifetime). In doing so, this
moves a string memory copy from the TF_Tensor <-> Numpy conversion
to the C API from the Python session helper.

Unfortunately, I couldn't figure out how to add a simple unittest in
c_api_test.cc. The more comprehensive tensorflow/python/kernel_tests/session_ops_test.py
does cover the changed lines though.

Additionally, avoid an unnecessary copy when creating TF_STRING or TF_RESOURCE
tensors (as eigen alignment is not a requirement for them).

PiperOrigin-RevId: 163751880
/external/tensorflow/tensorflow/c/c_api.cc
22651083406ca01ac9d481e3367a3510d25f88cd 27-Jul-2017 Asim Shankar <ashankar@google.com> C API: Groundwork for experimenting with TF_Tensor in device memory.

TF_Tensor objects are always backed by host memory. This commit lays
the groundwork for allowing TF_Tensor objects to refer to tensor data
on device (e.g., GPU) memory.

PiperOrigin-RevId: 163388079
/external/tensorflow/tensorflow/c/c_api.cc
4c9e344bf1b6582620b26c0a62a886d3c80e3c19 25-Jul-2017 Asim Shankar <ashankar@google.com> C API: Fix a bug with TF_OperationGetAttrTensor when TF_STRING tensors are
involved.

The TensorBuffer owned by a TF_Tensor object has a different memory layout than
the TensorBuffer owned by the corresponding tensorflow::Tensor object.
This change consolidates conversions between the runtime's tensorflow::Tensor
and the C API's TF_Tensor objects into a pair helper functions.

The added test: CApiAttributesTest.StringTensor fails without corresponding
changes to c_api.cc

PiperOrigin-RevId: 163091789
/external/tensorflow/tensorflow/c/c_api.cc
c311449c76433be7ead189c0acc7202d2e884513 14-Jul-2017 Skye Wanderman-Milne <skyewm@google.com> Add "gradients" subscope when generating gradients in C/++

This makes visualizing the graph easier and is also what Python does.

PiperOrigin-RevId: 161884431
/external/tensorflow/tensorflow/c/c_api.cc
aed7d9e9bae911d49fab4792182168e3602d2f3e 02-Jul-2017 A. Unique TensorFlower <gardener@tensorflow.org> Update deprecated ByteSize to ByteSizeLong

PiperOrigin-RevId: 160784174
/external/tensorflow/tensorflow/c/c_api.cc
e85d3df92deb9d717befdf173966a2913ac2aea0 29-Jun-2017 Geoffrey Irving <geoffreyi@google.com> Prepare to remove a bunch of proto.h includes from tensorflow/core headers

The goal is to make kernels mostly independent of proto headers, which will let
us lock down our .so imports. This CL does not remove any actual headers, but
changes a bunch of files so that header removal is possible in a followup CL.
It also marks the headers that will be removed with

// TODO(b/62899350): Remove

RELNOTES: n/a
PiperOrigin-RevId: 160552878
/external/tensorflow/tensorflow/c/c_api.cc
1f624e529d245cc2cd104d70971fe6a53d1616d6 27-Jun-2017 A. Unique TensorFlower <gardener@tensorflow.org> Moves TensorCApi from c_api.cc to c_api_internal.h, where it can be used
by other code that require access to the underlying TensorBuffers.

PiperOrigin-RevId: 160323362
/external/tensorflow/tensorflow/c/c_api.cc
348812b4a56ca460d2006abf1032f9ad9c86a084 17-Jun-2017 A. Unique TensorFlower <gardener@tensorflow.org> Use new C API for Session.partial_run and its setup

PiperOrigin-RevId: 159298135
/external/tensorflow/tensorflow/c/c_api.cc
eb10a4c494d95e7c17ddc44ef35197d08f2f6b33 01-Jun-2017 A. Unique TensorFlower <gardener@tensorflow.org> Preallocate vector storage when the ultimate vector size is known in advance

PiperOrigin-RevId: 157724431
/external/tensorflow/tensorflow/c/c_api.cc
9501c4104125fb8c2c2d2e837fc2dd8a24034d52 31-May-2017 A. Unique TensorFlower <gardener@tensorflow.org> Replace protobuf CopyFrom with assignment

PiperOrigin-RevId: 157534272
/external/tensorflow/tensorflow/c/c_api.cc
da2daf068a989cf27f819cf25eaa94396ba370f2 30-May-2017 A. Unique TensorFlower <gardener@tensorflow.org> Remove unused using declarations

PiperOrigin-RevId: 157513772
/external/tensorflow/tensorflow/c/c_api.cc
d83074847ebfe8871188f1f9f1e84ab0451f59e6 30-May-2017 A. Unique TensorFlower <gardener@tensorflow.org> Use "nullptr" for null pointer values

PiperOrigin-RevId: 157468186
/external/tensorflow/tensorflow/c/c_api.cc
eae0b5f53d0c7a13308e616135a75f6228bddb1a 27-May-2017 A. Unique TensorFlower <gardener@tensorflow.org> Remove unused using-declarations

PiperOrigin-RevId: 157276276
/external/tensorflow/tensorflow/c/c_api.cc
9c495f9499199ea46fff9028774374fa0c52e018 26-May-2017 Brennan Saeta <saeta@google.com> Add session.list_devices() API

In order to debug a TensorFlow cluster or check whether devices are available
in a local session (e.g. GPU drivers are loaded), this change adds a
`sess.list_devices` API to list all devices within the cluster.

This CL implements the list_devices() feature via extensions to the TensorFlow
C API, and the corresponding additions to the session.h session class and
corresponding subclasses for both direct sessions, grpc_sessions,
tensorflow_serving, and others.

Additionally, in order to accomidate ClusterSpec propagation clusters,
Master::ListDevices now also includes a session_handle in order to identify
the appropriate master_session on which it should list the available
devices. (With ClusterSpec propagation, different sessions can have different
servers with different device capabilities.)

This CL adds a ListDevices() API to MasterSession. It is most
efficient to implement this API call there, because the MasterSession
already has a list of devices.

Additionally, this change upgrades the implementation of
Master::ListDevices() to delegate to the MasterSession if a session
handle is specified, and to return an error if no corresponding session
is found.
PiperOrigin-RevId: 157239656
/external/tensorflow/tensorflow/c/c_api.cc
73882f257ffb1bc9e1a828571c085d080b1d9266 17-May-2017 Geoffrey Irving <geoffreyi@google.com> Automated g4 rollback of changelist 156251356

PiperOrigin-RevId: 156315860
/external/tensorflow/tensorflow/c/c_api.cc
43db5c623f748b6f9704e9e9be5a5a11fa2a4c1a 17-May-2017 Geoffrey Irving <geoffreyi@google.com> Automated g4 rollback of changelist 156244933

PiperOrigin-RevId: 156251356
/external/tensorflow/tensorflow/c/c_api.cc
749e5cc18381f7a5ec174673f76e20aead8529c6 17-May-2017 Geoffrey Irving <geoffreyi@google.com> Reduce direct references to NodeDef in favor of Node and AttrSlice

This is one step towards replacing in-memory use of NodeDef with a customized
NodeInfo class. There are still quite a few Node::def() references, but far fewer than before. Those remaining require more work, either because they are part of kernel registration (which is a bunch of functions), copy and modify the NodeDef, etc. Follow-on CLs will remove more.

RELNOTES: n/a
PiperOrigin-RevId: 156244933
/external/tensorflow/tensorflow/c/c_api.cc
7d785f1e18af9d22d940f18aac6e8c9ffd268b22 12-May-2017 Asim Shankar <ashankar@google.com> C API: Do not ignore errors in shape inference when constructing the graph.

Fixes #9826

PiperOrigin-RevId: 155898632
/external/tensorflow/tensorflow/c/c_api.cc
79d6be3b86ba32048cac6afd5d1c5d1bb8aee6d9 20-Apr-2017 Alexandre Passos <apassos@google.com> Internal C API headers.
Change: 153717143
/external/tensorflow/tensorflow/c/c_api.cc
63fd775a7ff8a7c57ed2a114027a37b51ddf1816 19-Apr-2017 Asim Shankar <ashankar@google.com> partial_run_setup: Avoid an invalid free() if TF_PRunSetup fails.
Change: 153535078
/external/tensorflow/tensorflow/c/c_api.cc
908d5b6ede6ae829dff138a873eec397ef434cd6 13-Apr-2017 Suharsh Sivakumar <suharshs@google.com> Add C++ gradients to c_api.

#6268

This CL does the following:
(1) Adds TF_AddGradients function to C_API which adds gradient nodes for the specified inputs.
(2) Adds internal constructor for Scope, need to create a scope from an existing graph in the c_api.
(3) Adds constructor for AddSymbolicGradients that assumes OnesLike when grad_inputs aren't provided.
(4) Improves error message when gradients aren't provided.
Change: 153092774
/external/tensorflow/tensorflow/c/c_api.cc
a5a8558feb9417359e30a991ab5e01cf17194473 13-Apr-2017 Alexandre Passos <apassos@google.com> Fetch / py_func arguments no longer copy.
Change: 153003331
/external/tensorflow/tensorflow/c/c_api.cc
d9b9fa4ffe85be28ebd8a3491e967b56f7f1bb87 29-Mar-2017 Alexandre Passos <apassos@google.com> Disable input forwarding for tensors fed from python or returned from py_func.
Change: 151591184
/external/tensorflow/tensorflow/c/c_api.cc
0386a01ad3beb28364599d82199be1c0837b3fa9 10-Mar-2017 Dandelion Mané <dandelion@google.com> Merge changes from github.
Change: 149800363
/external/tensorflow/tensorflow/c/c_api.cc
b177e3720721dea593f1f15ba731ab351e87d298 03-Mar-2017 A. Unique TensorFlower <gardener@tensorflow.org> Add the graphdef version to InferenceContext and to ShapeRefiner::AddNode.
Use this to allow loading reductions saved with older graphdefs.

Change GraphConstructor to not increase the version when importing, but instead take the min of all versions.
Change: 149152437
/external/tensorflow/tensorflow/c/c_api.cc
d18f4c54cd5e6a009c4ab1bc01c3a5432bafa6ae 27-Feb-2017 Asim Shankar <ashankar@google.com> C API: Keep the TF_LoadSessionFromSavedModel symbol in Android builds.

Though, the function will return an error.

Required for #7688
Change: 148664204
/external/tensorflow/tensorflow/c/c_api.cc
0c5d9bef6e36fbe8f57e1e9faa0fede411cbdc4f 16-Feb-2017 Asim Shankar <ashankar@google.com> C API: Tests and cleanup for partial run.

- Add a unittest for TF_SessionPRun
- Add TF_DeletePRunHandle.
This provides a way for callers to safely delete the handle
(without knowing the details of the allocator used by TF_SessionPRunSetup)
and also provides a placeholder for cancellation of PRun state in the future.
Change: 147738191
/external/tensorflow/tensorflow/c/c_api.cc
bc225bfaa534acc25047fe844f19edc333b7a76a 14-Feb-2017 Peter Hawkins <phawkins@google.com> Fix code that ignores tensorflow::Status.

Add a new tensorflow::Status::IgnoreError() method to mark call sites where a Status has been intentionally ignored.
Change: 147402405
/external/tensorflow/tensorflow/c/c_api.cc
661058e52460b36417573e2c5a73de9a8b9e5edb 07-Feb-2017 Skye Wanderman-Milne <skyewm@google.com> C API methods for creating while loops
Change: 146788176
/external/tensorflow/tensorflow/c/c_api.cc
bb71ec089658fb8a91423a7cf7195e5c900c2c98 20-Jan-2017 Skye Wanderman-Milne <skyewm@google.com> Expose more ImportGraphDef functionality in the C API.

This patch addes the following methods to the C API:
TF_ImportGraphDefOptionsAddInputMapping()
TF_ImportGraphDefOptionsAddControlDependency()
TF_ImportGraphDefOptionsAddReturnOutput()
TF_ImportGraphDefOptionsNumReturnOutputs()
TF_GraphImportGraphDefWithReturnOutputs()
Change: 145120572
/external/tensorflow/tensorflow/c/c_api.cc
e8f2aad0c0502fde74fc629f5b13f04d5d206700 12-Jan-2017 Asim Shankar <ashankar@google.com> Java/C API: Make them Android friendly.

Make the C library and JNI shared library targets Android friendly by linking
with the smaller android runtime when building with --config=android

Relatedly, strip all but the JNI symbols from libtensorflow_jni.so
(regardless of build configuration) to trim its size down (by roughly
50%).

Link in the Java libraries in the Android examples. The longer term intention
is to encourage use of the TensorFlow Java API in Android and do away with the
TensorFlowInferenceInterface class (and related JNI code) currently used in
Android. This will provide a single, more thoroughly tested API for use in all
Java settings - Android or not. An update to the Android example to switch
to this will come in a follow up change.

NOTES:
- For expediency of this change, the C API call: TF_LoadSessionFromSavedModel
is not available when building for Android. I will look into fixing that
separately.

- Linking in the JNI library required by the TensorFlow Java API results in
a small increase (0.7%) in binary size of libtensorflow_demo.so

An unrelatedly, rename libtensorflow-jni.so to libtensorflow_jni.so
to be consistent with other shared libraries created in tensorflow.
Change: 144320074
/external/tensorflow/tensorflow/c/c_api.cc
83c6e0c63acdcab2c58c4ed7220bfa58879b1d57 12-Jan-2017 Jonathan Hseu <jhseu@google.com> Switch open-source to use jemalloc for CPU Tensor memory allocation, gRPC, and other places where we call malloc/free.

- Only enabled on Linux for now.
- Added as a ./configure option defaulting to enabled.
Change: 144266237
/external/tensorflow/tensorflow/c/c_api.cc
d4a9d91bc68ffa9f0148ae6fe344b7d3e3de7221 11-Jan-2017 Peter Hawkins <phawkins@google.com> Add support for list(func) AttrValues.
Change: 144211572
/external/tensorflow/tensorflow/c/c_api.cc
bed8383c27a0a7225e6fc7ff59a2cd6388fb4d09 23-Dec-2016 Jonathan Hseu <jhseu@google.com> Merge changes from github.
Change: 142805270
/external/tensorflow/tensorflow/c/c_api.cc
35ea93ba205d44319f408a7d90dc385fd86d6b56 19-Dec-2016 Jonathan Hseu <jhseu@google.com> Add SavedModel support to the C API
Change: 142477558
/external/tensorflow/tensorflow/c/c_api.cc
54e5000e0b980abe905900599c4493fadae34a15 18-Nov-2016 A. Unique TensorFlower <gardener@tensorflow.org> Merge changes from github.
Change: 139516555
/external/tensorflow/tensorflow/c/c_api.cc
8f6cb22c675b5c0b553334a8f04daef462905d69 16-Nov-2016 Jonathan Hseu <jhseu@google.com> Rename TF_Port to TF_Output and add a TF_Input type.
Change: 139377074
/external/tensorflow/tensorflow/c/c_api.cc
fd398fdb1a68a823c56836184197fe3aaaf09a5a 16-Nov-2016 Asim Shankar <ashankar@google.com> C API: Comment tweaks and some suggested corner case handling
Change: 139349604
/external/tensorflow/tensorflow/c/c_api.cc
cfcc6060d71d820df70fcab9a449ad45ddde72ef 16-Nov-2016 Asim Shankar <ashankar@google.com> C API: Helper functions to encode/decode strings for TF_STRING tensors.

Intended to make the use of TF_STRING valued tensors in other language bindings
easier.

No added unittests since the existing TestEncodeDecodeStrings test case covers
the changes.
Change: 139263312
/external/tensorflow/tensorflow/c/c_api.cc
1f0c5119a0230c5160d45496175b9256f097e144 15-Nov-2016 Asim Shankar <ashankar@google.com> C API: Do not take ownership of the TF_Tensors

Prior to this change, TF_*Run, TF_SetAttrTensor and TF_SetAttrTensorList
took ownership of the TF_Tensor*s of the feeds. This can make performance
client languages bothersome when the same Tensor is repeatedly fed into
multiple session executions as the memory for the feed tensor would need
to be re-allocated and filled in every time.

With this change, these functions no longer take ownership of the
TF_Tensor*.

The changes to the Go API implementation reflect the claimed benefits.
(Another step towards #10)
Change: 139169388
/external/tensorflow/tensorflow/c/c_api.cc
a374ea13c0c7b9598b5ada851b43655f895a578e 15-Nov-2016 Asim Shankar <ashankar@google.com> C API: Add TF_Version(), akin to __version__ in python.

Since we envision a binary release of the C-library
and other language bindings linking against it, will
be useful to have version information when any debugging
needs to be done.

There is a slight problem in that TF_VERSION_STRING
will point to the latest release when compiled from
source at HEAD - which might be confusing as the version
string will not represent true state of the libraries.
But that seems like something to be dealt with in
version.h independently of exporting this TF_Version() function.

While at it, make the version string accessible in the Go API.
TensorFlow follows semantic versioning, but parsing the version
string into MAJOR, MINOR and PATCH is left as an excercise to
the user (who can use any number of semantic version parsing
libraries out there).
Change: 139132778
/external/tensorflow/tensorflow/c/c_api.cc
786938758a39940ae0154834bfed9e21894afa28 14-Nov-2016 Asim Shankar <ashankar@google.com> C API: Stick to a convention around use of size_t and int.

The types size_t and int were being used inconsistently
across different functions. This change documents the
convention and fixes a few functions up to ensure that
all functions adhere to it.

Not quite sure if this convention (in particular using
'int' for array indices, as opposed to say 'size_t')
is the best choice, but at least the choice has been
made consistently.
Change: 139100887
/external/tensorflow/tensorflow/c/c_api.cc
d9da9721f45950035f5087c59f9bc6910e232271 09-Nov-2016 Asim Shankar <ashankar@google.com> C API: Slight re-organization of code that deletes input tensors.

This change itself is a no-op. However, my plan is to change the
API contract with the TF_Session*Run functions in a follow up
change so that they do NOT take ownership of the input tensor values.

This just makes it slightly easier to do so.
Change: 138646376
/external/tensorflow/tensorflow/c/c_api.cc
e580e721cc1a205cb4b7afe64bc6af4d775a4851 09-Nov-2016 Asim Shankar <ashankar@google.com> C API: Rename TF_SessionWithGraph to TF_Session.

This makes the preferred API for graph construction and
execution have the simpler, more sensible names (TF_Session,
TF_NewSession etc.) and the older one which we hope to
eventually remove have the more awkward ones (TF_DeprecatedSession,
TF_NewDeprecatedSession etc.)
Change: 138641615
/external/tensorflow/tensorflow/c/c_api.cc
fdd94f24e9ebfe58bd967a8c2c7b8985c03ff80b 08-Nov-2016 Asim Shankar <ashankar@google.com> C API: Rename TF_Session to TF_DeprecatedSession.

This is one step towards having a stable C API by the time we get to TensorFlow
1.0. A follow-up step will involve renaming TF_SessionWithGraph to TF_Session.

We want to encourage all client languages to use TF_SessionRun,
TF_GraphImportGraphDef etc. (instead of TF_Run and TF_ExtendGraph), hence
the choice of names. Ideally, all client languages will use these
functions, but it is likely that Python will continue to use
TF_DeprecatedSession for a while.
Change: 138454433
/external/tensorflow/tensorflow/c/c_api.cc
edaf3b342db4afa1c872da541fb0ac176a4e8ef9 10-Oct-2016 A. Unique TensorFlower <gardener@tensorflow.org> Merge changes from github.
Change: 135698415
/external/tensorflow/tensorflow/c/c_api.cc
c51a29a43a7c2b4a7bab39282b01b46bfceac498 27-Sep-2016 Asim Shankar <ashankar@google.com> C API: Follow naming conventions.

In particular, TF_AttrType instead of TF_Attr_Type
and TF_AttrMetadata instead of TF_AttrMetadata.

This is more in line with other multi-word names like
TF_OperationDescription and TF_SessionOptions.

Fixes #4595
Change: 134423578
/external/tensorflow/tensorflow/c/c_api.cc
22221698a3ecd43024f84cd6c468ddd00955f920 23-Sep-2016 Asim Shankar <ashankar@google.com> C API: Introduce TF_ImportGraphDef.

This is the C API equivalent of Python's tf.import_graph_def(). Does not
support node rebinding and some other features yet, but should be sufficient to
allow execution of pre-defined graphs in other language bindings.
Change: 134034522
/external/tensorflow/tensorflow/c/c_api.cc
539fc059038bbeeba95adde2fd95c4999f79c4a6 20-Sep-2016 Vijay Vasudevan <vrv@google.com> ShapeRefiner: implement TODO to plumb in OpRegistryInterface from Graph.
Change: 133652210
/external/tensorflow/tensorflow/c/c_api.cc
87944a798a13832f4b88a716d49a73ac37ccb9a3 19-Sep-2016 Vijay Vasudevan <vrv@google.com> TensorFlow: allow shape refiner to run subgraphs to evaluate constant
expressions when inferring shapes.

Move ShapeRefiner into common_runtime since it depends on the runtime
to evaluate constant expressions.
Change: 133630671
/external/tensorflow/tensorflow/c/c_api.cc
34501544c48061bdfb6a0e7cddf1f70136cf3040 15-Sep-2016 Asim Shankar <ashankar@google.com> C-API: Add TF_ColocateWith to enable colocation.

While at it, define named constants for strings used in the colocation
attribute. After this change, all non-test code should be using the
named constants and not string literals ("_class", "loc:@"). The
tests might still use the literals as that makes the tests easier to read.
Change: 133310403
/external/tensorflow/tensorflow/c/c_api.cc
56b003d724ecb3e7781165fd4504d058982959c1 13-Sep-2016 A. Unique TensorFlower <gardener@tensorflow.org> Add TF_DeleteLibraryHandle, for freeing the memory allocated by TF_LoadLibrary.

This is useful when calling the C API from C++, to avoid memory leaks being
reported.
Change: 132937873
/external/tensorflow/tensorflow/c/c_api.cc
b7541f67c21b5a12120af0b7ac33404bd5160643 09-Sep-2016 Asim Shankar <ashankar@google.com> C-API: Add the ability to get all the registered ops.
Change: 132684015
/external/tensorflow/tensorflow/c/c_api.cc
c0169dc34a99d8541bd420ddf7b73e1e37dfbf19 08-Sep-2016 Asim Shankar <ashankar@google.com> Cosmetic: Consistently avoid using a namespace specifier when the 'using'
statement in the file obviates it.
Change: 132517534
/external/tensorflow/tensorflow/c/c_api.cc
2677d3be19952488662a22cf9f42374a493ffd50 07-Sep-2016 Vijay Vasudevan <vrv@google.com> TensorFlow C API: Add a Set and Get Tensor Shape function.

Wires up ShapeRefiner into C and C++ API so that we can
query and set the shapes of outputs. Currently only works
for the C-API, but the plumbing exists for the C++ API,
which we can only turn on once we are using the C++ shape
functions for everything.
Change: 132479208
/external/tensorflow/tensorflow/c/c_api.cc
95ddc4ead6c6713ee4fcabd01ec107c3b2ca906e 07-Sep-2016 Asim Shankar <ashankar@google.com> C-API: Add functions to get values of operation attributes.

Introduces the TF_OperationGetAttr* family of functions that
parallel TF_SetAttr* functions used during graph building.
Change: 132405007
/external/tensorflow/tensorflow/c/c_api.cc
7a95d4a88eda1ab94b2cab1eed48fb82f9879b65 26-Aug-2016 Vijay Vasudevan <vrv@google.com> Change c_api function to use new input_edge() API from Node*, and use
an optimization for computing the number of control inputs by
subtracting the number of data inputs from the the total number of
edges.
Change: 131437591
/external/tensorflow/tensorflow/c/c_api.cc
a559f91041f144820266fc0a751e09267acf4428 26-Aug-2016 A. Unique TensorFlower <gardener@tensorflow.org> TF_SetAttrTensorShapeProto should take a "const void*", not a "void*" argument.

This makes it consistent with the other TF_SetAttr* functions and also more
clearly conveys that it is read-only.
Change: 131414593
/external/tensorflow/tensorflow/c/c_api.cc
f30403181f0ccbb30bb38777fbccf6c1b6576ca9 26-Aug-2016 A. Unique TensorFlower <gardener@tensorflow.org> Fix a memory leak in TF_SetAttrBoolList.
Caught by a unittest in another change being worked on.
Change: 131368103
/external/tensorflow/tensorflow/c/c_api.cc
457cc412bbd0caea7f11b6690336048ed7455fa6 20-Aug-2016 A. Unique TensorFlower <gardener@tensorflow.org> Comment formatting.
Change: 130807151
/external/tensorflow/tensorflow/c/c_api.cc
ae7b1310c5b2bbb333191d0def7985202dee382a 17-Aug-2016 Jonathan Hseu <jhseu@google.com> Add TF_AllocateTensor to the C API to simplify the
common case where bindings require C-allocated tensors.
Change: 130565203
/external/tensorflow/tensorflow/c/c_api.cc
a823862343e1b4e987bd0d279e94a126db7f2158 08-Aug-2016 A. Unique TensorFlower <gardener@tensorflow.org> Rename TF_Node to TF_Operation in C API.
Change: 129673736
/external/tensorflow/tensorflow/c/c_api.cc
7fa6ddc90fad0153f17cceb93966c1a8a0b20251 02-Aug-2016 A. Unique TensorFlower <gardener@tensorflow.org> Remove debugging logging accidentally left in.
Change: 129046873
/external/tensorflow/tensorflow/c/c_api.cc
788f359b7218ad46696c15459c89688ffe70955e 30-Jul-2016 A. Unique TensorFlower <gardener@tensorflow.org> Move C API files (and related files used by SWIG wrappers)
to new tensorflow/c directory.
Change: 128855990
/external/tensorflow/tensorflow/c/c_api.cc