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 #define TF_MAJOR_VERSION 1 22 #define TF_MINOR_VERSION 6 23 #define TF_PATCH_VERSION 0 24 25 // TF_VERSION_SUFFIX is non-empty for pre-releases (e.g. "-alpha", "-alpha.1", 26 // "-beta", "-rc", "-rc.1") 27 #define TF_VERSION_SUFFIX "-rc1" 28 29 #define TF_STR_HELPER(x) #x 30 #define TF_STR(x) TF_STR_HELPER(x) 31 32 // e.g. "0.5.0" or "0.6.0-alpha". 33 #define TF_VERSION_STRING \ 34 (TF_STR(TF_MAJOR_VERSION) "." TF_STR(TF_MINOR_VERSION) "." TF_STR( \ 35 TF_PATCH_VERSION) TF_VERSION_SUFFIX) 36 37 // TODO(josh11b): Public API functions for exporting the above. 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 100 #define TF_GRAPH_DEF_VERSION_MIN_PRODUCER 0 101 #define TF_GRAPH_DEF_VERSION_MIN_CONSUMER 0 102 #define TF_GRAPH_DEF_VERSION 26 103 104 // Checkpoint compatibility versions (the versions field in SavedSliceMeta). 105 // 106 // The checkpoint versions have the same semantics as GraphDef versions, but the 107 // numbering scheme is separate. We have no plans to ever deprecate checkpoint 108 // versions, but it's good to have this in place in case we ever need to. 109 // 110 // Version history: 111 // 112 // 0. Checkpoints saved before checkpoint versioning. 113 // 1. First real version (10feb2015). 114 #define TF_CHECKPOINT_VERSION_MIN_PRODUCER 0 115 #define TF_CHECKPOINT_VERSION_MIN_CONSUMER 0 116 #define TF_CHECKPOINT_VERSION 1 117 118 /// Version query functions (defined in generated version_info.cc) 119 120 // Host compiler version (declared elsewhere to be __VERSION__) 121 extern const char* tf_compiler_version(); 122 // The git commit designator when tensorflow was built 123 // If no git repository, this will be "internal". 124 extern const char* tf_git_version(); 125 // Value of the _GLIBCXX_USE_CXX11_ABI flag, or 0 if it's not set. 126 extern const int tf_cxx11_abi_flag(); 127 // Returns 1 if build is monolithic, or 0 otherwise. 128 extern const int tf_monolithic_build(); 129 130 #endif // TENSORFLOW_CORE_PUBLIC_VERSION_H_ 131