aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2017-10-23 11:37:06 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-10-23 11:41:06 -0700
commit9f8523640848f5891d31049b86d5d310cf0f843d (patch)
tree20544421e2dea5e863228aeebdec7084f213e9d3
parent01b6b063811f60764a9604ffcb8cef611f41afa3 (diff)
Update ops-related pbtxt files.
PiperOrigin-RevId: 173145770
-rw-r--r--tensorflow/core/ops/compat/ops_history.v1.pbtxt24
-rw-r--r--tensorflow/core/ops/ops.pbtxt57
2 files changed, 54 insertions, 27 deletions
diff --git a/tensorflow/core/ops/compat/ops_history.v1.pbtxt b/tensorflow/core/ops/compat/ops_history.v1.pbtxt
index c5ceb14a09..92037c1997 100644
--- a/tensorflow/core/ops/compat/ops_history.v1.pbtxt
+++ b/tensorflow/core/ops/compat/ops_history.v1.pbtxt
@@ -9583,6 +9583,18 @@ op {
}
}
op {
+ name: "DeserializeIterator"
+ input_arg {
+ name: "resource_handle"
+ type: DT_RESOURCE
+ }
+ input_arg {
+ name: "serialized"
+ type: DT_VARIANT
+ }
+ is_stateful: true
+}
+op {
name: "DeserializeManySparse"
input_arg {
name: "serialized_sparse"
@@ -31466,6 +31478,18 @@ op {
}
}
op {
+ name: "SerializeIterator"
+ input_arg {
+ name: "resource_handle"
+ type: DT_RESOURCE
+ }
+ output_arg {
+ name: "serialized"
+ type: DT_VARIANT
+ }
+ is_stateful: true
+}
+op {
name: "SerializeManySparse"
input_arg {
name: "sparse_indices"
diff --git a/tensorflow/core/ops/ops.pbtxt b/tensorflow/core/ops/ops.pbtxt
index 623f5457bb..c037c99c19 100644
--- a/tensorflow/core/ops/ops.pbtxt
+++ b/tensorflow/core/ops/ops.pbtxt
@@ -6998,6 +6998,21 @@ op {
description: "[min_range, max_range] are scalar floats that specify the range for\nthe \'input\' data. The \'mode\' attribute controls exactly which calculations are\nused to convert the float values to their quantized equivalents.\n\nIn \'MIN_COMBINED\' mode, each value of the tensor will undergo the following:\n\n```\nif T == qint8, in[i] += (range(T) + 1)/ 2.0\nout[i] = min_range + (in[i]* (max_range - min_range) / range(T))\n```\nhere `range(T) = numeric_limits<T>::max() - numeric_limits<T>::min()`\n\n*MIN_COMBINED Mode Example*\n\nIf the input comes from a QuantizedRelu6, the output type is\nquint8 (range of 0-255) but the possible range of QuantizedRelu6 is\n0-6. The min_range and max_range values are therefore 0.0 and 6.0.\nDequantize on quint8 will take each value, cast to float, and multiply\nby 6 / 255.\nNote that if quantizedtype is qint8, the operation will additionally add\neach value by 128 prior to casting.\n\nIf the mode is \'MIN_FIRST\', then this approach is used:\n\n```c++\nnumber_of_steps = 1 << (# of bits in T)\nrange_adjust = number_of_steps / (number_of_steps - 1)\nrange = (range_max - range_min) * range_adjust\nrange_scale = range / number_of_steps\nconst double offset_input = static_cast<double>(input) - lowest_quantized;\nresult = range_min + ((input - numeric_limits<T>::min()) * range_scale)\n```\n\n*SCALED mode Example*\n\n`SCALED` mode matches the quantization approach used in\n`QuantizeAndDequantize{V2|V3}`.\n\nIf the mode is `SCALED`, we do not use the full range of the output type,\nchoosing to elide the lowest possible value for symmetry (e.g., output range is\n-127 to 127, not -128 to 127 for signed 8 bit quantization), so that 0.0 maps to\n0.\n\nWe first find the range of values in our tensor. The\nrange we use is always centered on 0, so we find m such that\n```c++\n m = max(abs(input_min), abs(input_max))\n```\n\nOur input tensor range is then `[-m, m]`.\n\nNext, we choose our fixed-point quantization buckets, `[min_fixed, max_fixed]`.\nIf T is signed, this is\n```\n num_bits = sizeof(T) * 8\n [min_fixed, max_fixed] =\n [-(1 << (num_bits - 1) - 1), (1 << (num_bits - 1)) - 1]\n```\n\nOtherwise, if T is unsigned, the fixed-point range is\n```\n [min_fixed, max_fixed] = [0, (1 << num_bits) - 1]\n```\n\nFrom this we compute our scaling factor, s:\n```c++\n s = (2 * m) / (max_fixed - min_fixed)\n```\n\nNow we can dequantize the elements of our tensor:\n```c++\nresult = input * s\n```"
}
op {
+ name: "DeserializeIterator"
+ input_arg {
+ name: "resource_handle"
+ description: "A handle to an iterator resource."
+ type: DT_RESOURCE
+ }
+ input_arg {
+ name: "serialized"
+ description: "A variant tensor storing the state of the iterator contained in the\nresource."
+ type: DT_VARIANT
+ }
+ summary: "Converts the given variant tensor to an iterator and stores it in the given resource."
+ is_stateful: true
+}
+op {
name: "DeserializeManySparse"
input_arg {
name: "serialized_sparse"
@@ -23026,19 +23041,6 @@ op {
is_stateful: true
}
op {
- name: "RestoreIterator"
- input_arg {
- name: "iterator"
- type: DT_RESOURCE
- }
- input_arg {
- name: "path"
- type: DT_STRING
- }
- summary: "Restores the state of the `iterator` from the checkpoint saved at `path` using \"SaveIterator\"."
- is_stateful: true
-}
-op {
name: "RestoreSlice"
input_arg {
name: "file_pattern"
@@ -23633,20 +23635,6 @@ op {
is_stateful: true
}
op {
- name: "SaveIterator"
- input_arg {
- name: "iterator"
- type: DT_RESOURCE
- }
- input_arg {
- name: "path"
- type: DT_STRING
- }
- summary: "Saves the state of the `iterator` at `path`."
- description: "This state can be restored using \"RestoreIterator\"."
- is_stateful: true
-}
-op {
name: "SaveSlices"
input_arg {
name: "filename"
@@ -24991,6 +24979,21 @@ op {
summary: "Computes gradients for the scaled exponential linear (Selu) operation."
}
op {
+ name: "SerializeIterator"
+ input_arg {
+ name: "resource_handle"
+ description: "A handle to an iterator resource."
+ type: DT_RESOURCE
+ }
+ output_arg {
+ name: "serialized"
+ description: "A variant tensor storing the state of the iterator contained in the\nresource."
+ type: DT_VARIANT
+ }
+ summary: "Converts the given `resource_handle` representing an iterator to a variant tensor."
+ is_stateful: true
+}
+op {
name: "SerializeManySparse"
input_arg {
name: "sparse_indices"