|
| 1 | +/* Copyright 2015 The TensorFlow Authors. All Rights Reserved. |
| 2 | +
|
| 3 | +Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | +you may not use this file except in compliance with the License. |
| 5 | +You may obtain a copy of the License at |
| 6 | +
|
| 7 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | +
|
| 9 | +Unless required by applicable law or agreed to in writing, software |
| 10 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | +See the License for the specific language governing permissions and |
| 13 | +limitations under the License. |
| 14 | +==============================================================================*/ |
| 15 | + |
| 16 | +#ifndef TENSORFLOW_CORE_PUBLIC_VERSION_H_ |
| 17 | +#define TENSORFLOW_CORE_PUBLIC_VERSION_H_ |
| 18 | + |
| 19 | +// TensorFlow uses semantic versioning, see http://semver.org/. |
| 20 | + |
| 21 | +// Also update tensorflow/tensorflow.bzl and |
| 22 | +// tensorflow/tools/pip_package/setup.py |
| 23 | +#define TF_MAJOR_VERSION 2 |
| 24 | +#define TF_MINOR_VERSION 4 |
| 25 | +#define TF_PATCH_VERSION 0 |
| 26 | + |
| 27 | +// TF_VERSION_SUFFIX is non-empty for pre-releases (e.g. "-alpha", "-alpha.1", |
| 28 | +// "-beta", "-rc", "-rc.1") |
| 29 | +#define TF_VERSION_SUFFIX "" |
| 30 | + |
| 31 | +#define TF_STR_HELPER(x) #x |
| 32 | +#define TF_STR(x) TF_STR_HELPER(x) |
| 33 | + |
| 34 | +// e.g. "0.5.0" or "0.6.0-alpha". |
| 35 | +#define TF_VERSION_STRING \ |
| 36 | + (TF_STR(TF_MAJOR_VERSION) "." TF_STR(TF_MINOR_VERSION) "." TF_STR( \ |
| 37 | + TF_PATCH_VERSION) TF_VERSION_SUFFIX) |
| 38 | + |
| 39 | +// GraphDef compatibility versions (the versions field in graph.proto). |
| 40 | +// |
| 41 | +// Each graph has producer and min_consumer versions, and each |
| 42 | +// consumer has its own version and a min_producer. In addition, graphs can |
| 43 | +// mark specific consumer versions as bad (to prevent bugs from executing). |
| 44 | +// A consumer will execute a graph if the consumer's version is at least the |
| 45 | +// graph's min_consumer, the graph's producer version is at least the consumer's |
| 46 | +// min_producer, and the consumer version isn't specifically disallowed by the |
| 47 | +// graph. |
| 48 | +// |
| 49 | +// By default, newly created graphs have producer version TF_GRAPH_DEF_VERSION |
| 50 | +// min_consumer TF_GRAPH_DEF_MIN_CONSUMER, and no other bad consumer versions. |
| 51 | +// |
| 52 | +// Version history: |
| 53 | +// |
| 54 | +// 0. Graphs created before GraphDef versioning |
| 55 | +// 1. First real version (2dec2015) |
| 56 | +// 2. adjust_contrast only takes float, doesn't perform clamping (11dec2015) |
| 57 | +// 3. Remove TileGrad, since it was equivalent to reduce_sum (30dec2015) |
| 58 | +// 4. When support for this version is removed, we can safely make AttrValue |
| 59 | +// parsing more strict with respect to empty list values (see |
| 60 | +// 111635679, 7jan2016). |
| 61 | +// 5. Graphs are wholly-validated during Session::Create() (7jan2016). |
| 62 | +// 6. TensorFlow is scalar strict within Google (27jan2016). |
| 63 | +// 7. Remove TopK in favor of TopKV2 (5feb2016). |
| 64 | +// 8. Replace RandomCrop from C++ with pure Python (5feb2016). |
| 65 | +// 9. Deprecate batch_norm_with_global_normalization (16feb2016). |
| 66 | +// 10. Deprecate conv3d_backprop_{filter,input} (10jun2016). |
| 67 | +// 11. Deprecate {batch}_self_adjoint_eig (3aug2016). |
| 68 | +// 12. Graph consumers understand the node_def field of FunctionDef (22aug2016). |
| 69 | +// 13. Deprecate multiple batch linear algebra ops (9sep2016). |
| 70 | +// 14. Deprecate batch_matrix_* ops. (10sep2016). |
| 71 | +// 15. Deprecate batch_fft_* ops. (14sep2016). |
| 72 | +// 16. Deprecate tensor_array (v1) ops in favor of v2 (10nov2016). |
| 73 | +// 17. Deprecate inv (11nov2016). |
| 74 | +// 17. Expose reverse_v2 (10nov2016) |
| 75 | +// 18. Add VariableV2 (30nov2016) |
| 76 | +// 19. Deprecated ops created by models moved out of core SkipGram, NegTrain. |
| 77 | +// (08dec2016) |
| 78 | +// 20. Catch all version 1.0 changes to Python API generation. SplitV is now |
| 79 | +// used for tf.split, ReverseV2 is now used by tf.reverse, ConcatV2 is |
| 80 | +// now used by tf.concat. Graphs use flooring |
| 81 | +// division and mod semantics. TensorArrayV3. (12dec2016) |
| 82 | +// Also considered the version for when it is required for reduction |
| 83 | +// ops' indices to be scalar or vector, and not higher rank. |
| 84 | +// Some earlier graph def versions allowed this. |
| 85 | +// 21. Dropped FunctionDef.Node support, switched to node_def introduced |
| 86 | +// in version 12. (11jan2017) |
| 87 | +// 22. Placeholder now can specify and enforce scalar and partial |
| 88 | +// shapes, particularly when restoring a graph from GraphDef |
| 89 | +// produced at version 22 or later. (04/10/2016) |
| 90 | +// 23. Remove NonMaxSuppression in favor of NonMaxSuppressionV2. |
| 91 | +// 24. Deprecate lookup ops (v1) ops in favor of v2 (30may2017) |
| 92 | +// 25. Deprecate stack (v1) ops in favor of v2 (2017/6/15). |
| 93 | +// 25. Deprecate RandomPoisson (v1) ops in favor of v2 (2017/10/25). |
| 94 | +// 26. Add a bool 'stripped_default_attrs' to MetaInfoDef indicating |
| 95 | +// whether default-valued attrs have been stripped from the nodes in the |
| 96 | +// GraphDef. (7dec2017) |
| 97 | +// 27. Deprecate TensorArray ops v2 in favor of v3 and deprecated io_ops |
| 98 | +// deprecated in favor of V2 ops. (2018/01/23) |
| 99 | +// 28. Deprecate MatrixExponential op in favor of Python implementation. |
| 100 | +// (2018/08/21). |
| 101 | +// (2019/02/15). Added `control_ret` field to FunctionDef proto, and |
| 102 | +// `control_output` field to OpDef proto. |
| 103 | +// 29. Deprecate StatefulStandardNormal op in favor of StatefulStandardNormalV2. |
| 104 | +// (2019/03/25). |
| 105 | +// (2019/04/17). Added `arg_attr` field to FunctionDefProto. |
| 106 | +// 30. (2019/05/09) First date based GraphDef version. GraphDef |
| 107 | +// versions advance by 1 each day after this point. |
| 108 | + |
| 109 | +#define TF_GRAPH_DEF_VERSION_MIN_PRODUCER 0 |
| 110 | +#define TF_GRAPH_DEF_VERSION_MIN_CONSUMER 0 |
| 111 | +#define TF_GRAPH_DEF_VERSION 485 // Updated: 2020/8/6 |
| 112 | + |
| 113 | +// Checkpoint compatibility versions (the versions field in SavedSliceMeta). |
| 114 | +// |
| 115 | +// The checkpoint versions have the same semantics as GraphDef versions, but the |
| 116 | +// numbering scheme is separate. We have no plans to ever deprecate checkpoint |
| 117 | +// versions, but it's good to have this in place in case we ever need to. |
| 118 | +// |
| 119 | +// Version history: |
| 120 | +// |
| 121 | +// 0. Checkpoints saved before checkpoint versioning. |
| 122 | +// 1. First real version (10feb2015). |
| 123 | +#define TF_CHECKPOINT_VERSION_MIN_PRODUCER 0 |
| 124 | +#define TF_CHECKPOINT_VERSION_MIN_CONSUMER 0 |
| 125 | +#define TF_CHECKPOINT_VERSION 1 |
| 126 | + |
| 127 | +/// Version query functions (defined in generated version_info.cc) |
| 128 | + |
| 129 | +// Host compiler version (declared elsewhere to be __VERSION__) |
| 130 | +extern const char* tf_compiler_version(); |
| 131 | +// The git commit designator when tensorflow was built |
| 132 | +// If no git repository, this will be "internal". |
| 133 | +extern const char* tf_git_version(); |
| 134 | +// Value of the _GLIBCXX_USE_CXX11_ABI flag, or 0 if it's not set. |
| 135 | +extern int tf_cxx11_abi_flag(); |
| 136 | +// Returns 1 if build is monolithic, or 0 otherwise. |
| 137 | +extern int tf_monolithic_build(); |
| 138 | + |
| 139 | +#endif // TENSORFLOW_CORE_PUBLIC_VERSION_H_ |
0 commit comments