Python tensorflow.python.ops.tensor_array_ops.TensorArray() Examples
The following are 30
code examples of tensorflow.python.ops.tensor_array_ops.TensorArray().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tensorflow.python.ops.tensor_array_ops
, or try the search function
.
Example #1
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def _testTensorArrayUnpackDynamic(self, legacy): with self.test_session(use_gpu=self._use_gpu) as sess: ta = tensor_array_ops.TensorArray(dtype=tf.float32, size=3, dynamic_size=True) x = tf.constant([1.0, 2.0, 3.0]) if legacy: w0 = ta._legacy_unpack(x) else: w0 = ta.unpack(x) w1 = w0.write(3, 4.0) if legacy: r = w1._legacy_pack() else: r = w1.pack() self.assertAllEqual(np.array([1.0, 2.0, 3.0, 4.0]), r.eval()) grad = tf.gradients(ys=[r], xs=[x]) self.assertAllEqual(np.array([1.0, 1.0, 1.0]), sess.run(grad)[0])
Example #2
Source File: tensor_array_grad.py From lambda-packs with MIT License | 6 votes |
def _TensorArraySplitGrad(op, flow): """Gradient for TensorArraySplit. Args: op: Forward TensorArraySplit op. flow: Gradient `Tensor` flow to TensorArraySplit. Returns: A grad `Tensor`, the gradient created in upstream ReadGrads or PackGrad. """ handle = op.inputs[0] dtype = op.get_attr("T") grad_source = _GetGradSource(flow) g = (tensor_array_ops.TensorArray(dtype=dtype, handle=handle, flow=flow, colocate_with_first_write_call=False) .grad(source=grad_source, flow=flow)) grad = g.concat() # handle, value, lengths, flow_in return [None, grad, None, flow]
Example #3
Source File: network_units.py From DOTA_models with Apache License 2.0 | 6 votes |
def create_array(self, stride): """Creates a new tensor array to store this layer's activations. Arguments: stride: Possibly dynamic batch * beam size with which to initialize the tensor array Returns: TensorArray object """ check.Gt(self.dim, 0, 'Cannot create array when dimension is dynamic') tensor_array = ta.TensorArray(dtype=tf.float32, size=0, dynamic_size=True, clear_after_read=False, infer_shape=False, name='%s_array' % self.name) # Start each array with all zeros. Special values will still be learned via # the extra embedding dimension stored for each linked feature channel. initial_value = tf.zeros([stride, self.dim]) return tensor_array.write(0, initial_value)
Example #4
Source File: tensor_array_grad.py From lambda-packs with MIT License | 6 votes |
def _TensorArrayScatterGrad(op, flow): """Gradient for TensorArrayScatter. Args: op: Forward TensorArrayScatter op. flow: Gradient `Tensor` flow to TensorArrayScatter. Returns: A grad `Tensor`, the gradient created in upstream ReadGrads or PackGrad. """ handle = op.inputs[0] indices = op.inputs[1] dtype = op.get_attr("T") grad_source = _GetGradSource(flow) g = (tensor_array_ops.TensorArray(dtype=dtype, handle=handle, flow=flow, colocate_with_first_write_call=False) .grad(source=grad_source, flow=flow)) grad = g.gather(indices) return [None, None, grad, flow]
Example #5
Source File: beam_search_decoder.py From lambda-packs with MIT License | 6 votes |
def _maybe_merge_batch_beams(self, t, s): """Splits the tensor from a batch by beams into a batch of beams. More exactly, t is a tensor of dimension [batch_size*beam_width, s]. We reshape this into [batch_size, beam_width, s] Args: t: Tensor of dimension [batch_size*beam_width, s] s: Tensor, Python int, or TensorShape. Returns: A reshaped version of t with dimension [batch_size, beam_width, s]. Raises: TypeError: If t is an instance of TensorArray. ValueError: If the rank of t is not statically known. """ _check_maybe(t) if t.shape.ndims >= 2: return self._merge_batch_beams(t, s) else: return t
Example #6
Source File: beam_search_decoder.py From lambda-packs with MIT License | 6 votes |
def _maybe_split_batch_beams(self, t, s): """Maybe splits the tensor from a batch by beams into a batch of beams. We do this so that we can use nest and not run into problems with shapes. Args: t: Tensor of dimension [batch_size*beam_width, s] s: Tensor, Python int, or TensorShape. Returns: Either a reshaped version of t with dimension [batch_size, beam_width, s] if t's first dimension is of size batch_size*beam_width or t if not. Raises: TypeError: If t is an instance of TensorArray. ValueError: If the rank of t is not statically known. """ _check_maybe(t) if t.shape.ndims >= 1: return self._split_batch_beams(t, s) else: return t
Example #7
Source File: tensor_array_grad.py From lambda-packs with MIT License | 6 votes |
def _TensorArrayWriteGrad(op, flow): """Gradient for TensorArrayWrite. Args: op: Forward TensorArrayWrite op. flow: Gradient `Tensor` flow to TensorArrayWrite. Returns: A grad `Tensor`, the gradient created in an upstream ReadGrad or PackGrad. """ # handle is the output store_handle of TensorArrayReadGrad or # the handle output of TensorArrayWriteGrad. we must use this one. handle = op.inputs[0] index = op.inputs[1] dtype = op.get_attr("T") grad_source = _GetGradSource(flow) g = (tensor_array_ops.TensorArray(dtype=dtype, handle=handle, flow=flow, colocate_with_first_write_call=False) .grad(source=grad_source, flow=flow)) grad = g.read(index) return [None, None, grad, flow]
Example #8
Source File: network_units.py From DOTA_models with Apache License 2.0 | 6 votes |
def create(self, fixed_embeddings, linked_embeddings, context_tensor_arrays, attention_tensor, during_training, stride=None): """Constructs a feed-forward unit based on the features and context tensors. Args: fixed_embeddings: list of NamedTensor objects linked_embeddings: list of NamedTensor objects context_tensor_arrays: optional list of TensorArray objects used for implicit recurrence. attention_tensor: optional Tensor used for attention. during_training: whether to create a network for training (vs inference). stride: int scalar tensor containing the stride required for bulk computation. Returns: A list of tensors corresponding to the list of layers. """ pass
Example #9
Source File: tensor_array_grad.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def _TensorArrayWriteGrad(op, flow): """Gradient for TensorArrayWrite. Args: op: Forward TensorArrayWrite op. flow: Gradient `Tensor` flow to TensorArrayWrite. Returns: A grad `Tensor`, the gradient created in an upstream ReadGrad or PackGrad. """ # handle is the output store_handle of TensorArrayReadGrad or # the handle output of TensorArrayWriteGrad. we must use this one. handle = op.inputs[0] index = op.inputs[1] dtype = op.get_attr("T") grad_source = _GetGradSource(flow) g = tensor_array_ops.TensorArray( dtype=dtype, handle=handle, flow=flow).grad( source=grad_source, flow=flow) grad = g.read(index) return [None, None, grad, flow]
Example #10
Source File: tensor_array_grad.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def _TensorArrayScatterGrad(op, flow): """Gradient for TensorArrayScatter. Args: op: Forward TensorArrayScatter op. flow: Gradient `Tensor` flow to TensorArrayScatter. Returns: A grad `Tensor`, the gradient created in upstream ReadGrads or PackGrad. """ handle = op.inputs[0] indices = op.inputs[1] dtype = op.get_attr("T") grad_source = _GetGradSource(flow) g = tensor_array_ops.TensorArray( dtype=dtype, handle=handle, flow=flow).grad( source=grad_source, flow=flow) grad = g.gather(indices) return [None, None, grad, flow]
Example #11
Source File: tensor_array_grad.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def _TensorArraySplitGrad(op, flow): """Gradient for TensorArraySplit. Args: op: Forward TensorArraySplit op. flow: Gradient `Tensor` flow to TensorArraySplit. Returns: A grad `Tensor`, the gradient created in upstream ReadGrads or PackGrad. """ handle = op.inputs[0] dtype = op.get_attr("T") grad_source = _GetGradSource(flow) g = tensor_array_ops.TensorArray( dtype=dtype, handle=handle, flow=flow).grad( source=grad_source, flow=flow) grad = g.concat() # handle, value, lengths, flow_in return [None, grad, None, flow]
Example #12
Source File: strcuture.py From BERT with Apache License 2.0 | 6 votes |
def normalize_tensors(tensors): """Converts a nested structure of tensor-like objects to tensors. * `SparseTensor`-like inputs are converted to `SparseTensor`. * `TensorArray` inputs are passed through. * Everything else is converted to a dense `Tensor`. Args: tensors: A nested structure of tensor-like, list, `SparseTensor`, `SparseTensorValue`, or `TensorArray` objects. Returns: A nested structure of tensor, `SparseTensor`, or `TensorArray` objects. """ flat_tensors = nest.flatten(tensors) prepared = [] with ops.name_scope("normalize_tensors"): for i, t in enumerate(flat_tensors): if sparse_tensor_lib.is_sparse(t): prepared.append(sparse_tensor_lib.SparseTensor.from_value(t)) elif isinstance(t, tensor_array_ops.TensorArray): prepared.append(t) else: prepared.append(ops.convert_to_tensor(t, name="component_%d" % i)) return nest.pack_sequence_as(tensors, prepared)
Example #13
Source File: network_units.py From yolo_v2 with Apache License 2.0 | 6 votes |
def convert_network_state_tensorarray(tensorarray): """Converts a source TensorArray to a source Tensor. Performs a permutation between the steps * [stride, D] shape of a source TensorArray and the (flattened) [stride * steps, D] shape of a source Tensor. The TensorArrays used during recurrence have an additional zeroth step that needs to be removed. Args: tensorarray: TensorArray object to be converted. Returns: Tensor object after conversion. """ tensor = tensorarray.stack() # Results in a [steps, stride, D] tensor. tensor = tf.slice(tensor, [1, 0, 0], [-1, -1, -1]) # Lop off the 0th step. tensor = tf.transpose(tensor, [1, 0, 2]) # Switch steps and stride. return tf.reshape(tensor, [-1, tf.shape(tensor)[2]])
Example #14
Source File: network_units.py From yolo_v2 with Apache License 2.0 | 6 votes |
def create_array(self, stride): """Creates a new tensor array to store this layer's activations. Arguments: stride: Possibly dynamic batch * beam size with which to initialize the tensor array Returns: TensorArray object """ check.Gt(self.dim, 0, 'Cannot create array when dimension is dynamic') tensor_array = ta.TensorArray( dtype=tf.float32, size=0, dynamic_size=True, clear_after_read=False, infer_shape=False, name='%s_array' % self.name) # Start each array with all zeros. Special values will still be learned via # the extra embedding dimension stored for each linked feature channel. initial_value = tf.zeros([stride, self.dim]) return tensor_array.write(0, initial_value)
Example #15
Source File: network_units.py From yolo_v2 with Apache License 2.0 | 6 votes |
def create(self, fixed_embeddings, linked_embeddings, context_tensor_arrays, attention_tensor, during_training, stride=None): """Constructs a feed-forward unit based on the features and context tensors. Args: fixed_embeddings: list of NamedTensor objects linked_embeddings: list of NamedTensor objects context_tensor_arrays: optional list of TensorArray objects used for implicit recurrence. attention_tensor: optional Tensor used for attention. during_training: whether to create a network for training (vs inference). stride: int scalar tensor containing the stride required for bulk computation. Returns: A list of tensors corresponding to the list of layers. """ pass
Example #16
Source File: network_units.py From Gun-Detector with Apache License 2.0 | 6 votes |
def convert_network_state_tensorarray(tensorarray): """Converts a source TensorArray to a source Tensor. Performs a permutation between the steps * [stride, D] shape of a source TensorArray and the (flattened) [stride * steps, D] shape of a source Tensor. The TensorArrays used during recurrence have an additional zeroth step that needs to be removed. Args: tensorarray: TensorArray object to be converted. Returns: Tensor object after conversion. """ tensor = tensorarray.stack() # Results in a [steps, stride, D] tensor. tensor = tf.slice(tensor, [1, 0, 0], [-1, -1, -1]) # Lop off the 0th step. tensor = tf.transpose(tensor, [1, 0, 2]) # Switch steps and stride. return tf.reshape(tensor, [-1, tf.shape(tensor)[2]])
Example #17
Source File: network_units.py From Gun-Detector with Apache License 2.0 | 6 votes |
def create_array(self, stride): """Creates a new tensor array to store this layer's activations. Arguments: stride: Possibly dynamic batch * beam size with which to initialize the tensor array Returns: TensorArray object """ check.Gt(self.dim, 0, 'Cannot create array when dimension is dynamic') tensor_array = ta.TensorArray( dtype=tf.float32, size=0, dynamic_size=True, clear_after_read=False, infer_shape=False, name='%s_array' % self.name) # Start each array with all zeros. Special values will still be learned via # the extra embedding dimension stored for each linked feature channel. initial_value = tf.zeros([stride, self.dim]) return tensor_array.write(0, initial_value)
Example #18
Source File: network_units.py From Gun-Detector with Apache License 2.0 | 6 votes |
def create(self, fixed_embeddings, linked_embeddings, context_tensor_arrays, attention_tensor, during_training, stride=None): """Constructs a feed-forward unit based on the features and context tensors. Args: fixed_embeddings: list of NamedTensor objects linked_embeddings: list of NamedTensor objects context_tensor_arrays: optional list of TensorArray objects used for implicit recurrence. attention_tensor: optional Tensor used for attention. during_training: whether to create a network for training (vs inference). stride: int scalar tensor containing the stride required for bulk computation. Returns: A list of tensors corresponding to the list of layers. """ pass
Example #19
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testTensorArrayWriteRead(self): with self.test_session(use_gpu=self._use_gpu) as session: ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3, infer_shape=False) w0 = ta.write(0, [[4.0, 5.0]]) w1 = w0.write(1, [[1.0]]) w2 = w1.write(2, -3.0) r0 = w2.read(0) r1 = w2.read(1) r2 = w2.read(2) d0, d1, d2 = session.run([r0, r1, r2]) self.assertAllEqual([[4.0, 5.0]], d0) self.assertAllEqual([[1.0]], d1) self.assertAllEqual(-3.0, d2)
Example #20
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def _testTensorArrayWritePack(self, tf_dtype, legacy): dtype = tf_dtype.as_numpy_dtype() with self.test_session(use_gpu=self._use_gpu): ta = tensor_array_ops.TensorArray( dtype=tf_dtype, tensor_array_name="foo", size=3) if tf_dtype == tf.string: # In Python3, np.str is unicode, while we always want bytes convert = lambda x: np.asarray(x).astype("|S") else: convert = lambda x: np.asarray(x).astype(dtype) w0 = ta.write(0, convert([[4.0, 5.0]])) w1 = w0.write(1, convert([[6.0, 7.0]])) w2 = w1.write(2, convert([[8.0, 9.0]])) if legacy: c0 = w2._legacy_pack() else: c0 = w2.pack() self.assertAllEqual( convert([[[4.0, 5.0]], [[6.0, 7.0]], [[8.0, 9.0]]]), c0.eval())
Example #21
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def _testTensorArrayWriteConcat(self, tf_dtype): dtype = tf_dtype.as_numpy_dtype() with self.test_session(use_gpu=self._use_gpu): ta = tensor_array_ops.TensorArray( dtype=tf_dtype, tensor_array_name="foo", size=3, infer_shape=False) if tf_dtype == tf.string: # In Python3, np.str is unicode, while we always want bytes convert = lambda x: np.asarray(x).astype("|S") else: convert = lambda x: np.asarray(x).astype(dtype) w0 = ta.write(0, convert([[4.0, 5.0], [104.0, 105.0], [204.0, 205.0]])) w1 = w0.write(1, convert([[6.0, 7.0], [106.0, 107.0]])) w2 = w1.write(2, convert([[8.0, 9.0]])) c0 = w2.concat() self.assertAllEqual( convert([[4.0, 5.0], [104.0, 105.0], [204.0, 205.0], [6.0, 7.0], [106.0, 107.0], [8.0, 9.0]]), c0.eval())
Example #22
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testTensorArrayWriteWrongIndexOrDataTypeFails(self): with self.test_session(use_gpu=self._use_gpu): ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3) # Test writing the wrong datatype with self.assertRaisesOpError( "TensorArray dtype is float but Op is trying to write dtype string"): ta.write(-1, "wrong_type_scalar").flow.eval() # Test writing to a negative index with self.assertRaisesOpError( "Tried to write to index -1 but array is not " "resizeable and size is: 3"): ta.write(-1, 3.0).flow.eval() # Test reading from too large an index with self.assertRaisesOpError( "Tried to write to index 3 but array is not " "resizeable and size is: 3"): ta.write(3, 3.0).flow.eval()
Example #23
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testTensorArrayConcatIncompatibleShapesFails(self): with self.test_session(use_gpu=self._use_gpu): ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3, infer_shape=False) w1 = ta.write(0, 3.0) w2 = w1.write(1, 4.0) w3 = w2.write(2, [3.0]) with self.assertRaisesOpError( "Concat saw a scalar shape at index 0 but requires at least vectors"): w3.concat().eval() ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3, infer_shape=False) w1 = ta.write(0, [3.0]) w2 = w1.write(1, [4.0]) w3 = w2.write(2, [[3.0]]) with self.assertRaisesOpError( r"TensorArray has inconsistent shapes. Index 0 has " r"\(excepting dimension 0\) shape: \[\] but index 2 has \(excepting " r"dimension 0\) shape: \[1\]"): w3.concat().eval()
Example #24
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def _testTensorArrayGradientUnpackRead(self, legacy): with self.test_session(use_gpu=self._use_gpu) as session: ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=2, clear_after_read=False) value = tf.constant([[1.0, -1.0], [10.0, -10.0]]) if legacy: w = ta._legacy_unpack(value) else: w = ta.unpack(value) r0 = w.read(0) r0_1 = w.read(0) r1 = w.read(1) # Test combined gradients + aggregation of read(0) grad = tf.gradients( ys=[r0, r0_1, r1], xs=[value], grad_ys=[[2.0, 3.0], [-1.5, 1.5], [4.0, 5.0]]) grad_vals = session.run(grad) self.assertEqual(len(grad_vals), 1) self.assertAllEqual([[2.0 - 1.5, 3.0 + 1.5], [4.0, 5.0]], grad_vals[0])
Example #25
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testTensorArrayGradientSplitConcat(self): with self.test_session(use_gpu=self._use_gpu) as session: ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=2) value = tf.constant([[1.0, -1.0], [10.0, -10.0], [100.0, -100.0]]) w = ta.split(value, [2, 1]) r = w.concat() # Test combined gradients grad = tf.gradients( ys=[r], xs=[value], grad_ys=[[[2.0, -2.0], [20.0, -20.0], [200.0, -200.0]]]) grad_vals = session.run(grad) self.assertEqual(len(grad_vals), 1) self.assertAllEqual( [[2.0, -2.0], [20.0, -20.0], [200.0, -200.0]], grad_vals[0])
Example #26
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testSumOfTwoReadVariablesWithoutRepeatGrad(self): with self.test_session(use_gpu=self._use_gpu) as session: a = tf.identity(np.arange(3*5, dtype=np.float32).reshape(3, 5) + 1) b = tf.identity(np.arange(3*5, dtype=np.float32).reshape(3, 5) + 1 + 3*5) ta = tensor_array_ops.TensorArray(dtype=tf.float32, size=2) ta = ta.write(0, a, name="write_a") ta = ta.write(1, b, name="write_b") c = (ta.read(0, name="read_a_0") + # a + b ta.read(1, name="read_b_0")) g0 = -(np.arange(3*5, dtype=np.float32).reshape(3, 5) + 1) grad_a = tf.gradients([c], [a], [g0])[0] # d(a+b)/da = 1 grad_b = tf.gradients([c], [b], [g0])[0] # d(a+b)/db = 1 # Test gradients calculated individually grad_a_t, = session.run([grad_a]) self.assertAllEqual(grad_a_t, g0) grad_b_t, = session.run([grad_b]) self.assertAllEqual(grad_b_t, g0) # Test gradients calculated jointly joint_grad_a_t, joint_grad_b_t = session.run([grad_a, grad_b]) self.assertAllEqual(joint_grad_a_t, g0) self.assertAllEqual(joint_grad_b_t, g0)
Example #27
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testWriteShape(self): with self.test_session(): ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3) c0 = tf.constant([4.0, 5.0]) w0 = ta.write(0, c0) r0 = w0.read(0) self.assertAllEqual(c0.get_shape(), r0.get_shape()) ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3) c1 = tf.constant([6.0, 7.0]) w1 = w0.write(1, c1) r0 = w1.read(0) r1 = w1.read(1) self.assertAllEqual(c0.get_shape(), r0.get_shape()) self.assertAllEqual(c1.get_shape(), r1.get_shape()) ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3) c2 = tf.constant([4.0, 5.0, 6.0]) with self.assertRaises(ValueError): w0.write(0, c2)
Example #28
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 6 votes |
def testSplitShape(self): with self.test_session(): ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=0, dynamic_size=True, infer_shape=True) value = tf.constant([[1.0, -1.0], [2.0, -2.0], [3.0, -3.0]]) w0 = ta.split(value, [1, 1, 1]) r0 = w0.read(0) self.assertAllEqual((1, 2), r0.get_shape()) ta1 = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo1", size=0, dynamic_size=True, infer_shape=True) w0 = ta1.split(value, [1, 2]) r0 = w0.read(0) self.assertAllEqual(r0.get_shape(), tensor_shape.unknown_shape())
Example #29
Source File: network_units.py From DOTA_models with Apache License 2.0 | 6 votes |
def convert_network_state_tensorarray(tensorarray): """Converts a source TensorArray to a source Tensor. Performs a permutation between the steps * [stride, D] shape of a source TensorArray and the (flattened) [stride * steps, D] shape of a source Tensor. The TensorArrays used during recurrence have an additional zeroth step that needs to be removed. Args: tensorarray: TensorArray object to be converted. Returns: Tensor object after conversion. """ tensor = tensorarray.stack() # Results in a [steps, stride, D] tensor. tensor = tf.slice(tensor, [1, 0, 0], [-1, -1, -1]) # Lop off the 0th step. tensor = tf.transpose(tensor, [1, 0, 2]) # Switch steps and stride. return tf.reshape(tensor, [-1, tf.shape(tensor)[2]])
Example #30
Source File: tensor_array_ops_test.py From deep_image_model with Apache License 2.0 | 5 votes |
def testTensorArrayWriteMultipleFails(self): with self.test_session(use_gpu=self._use_gpu): ta = tensor_array_ops.TensorArray( dtype=tf.float32, tensor_array_name="foo", size=3) with self.assertRaisesOpError( "Could not write to TensorArray index 2 because " "it has already been written to."): ta.write(2, 3.0).write(2, 3.0).flow.eval()