def get_session_tensor(dtype, name=None):
    """Get the tensor of type `dtype` by feeding a tensor handle.

  This is EXPERIMENTAL and subject to change.

  Get the value of the tensor from a tensor handle. The tensor
  is produced in a previous run() and stored in the state of the
  session.

  Args:
    dtype: The type of the output tensor.
    name: Optional name prefix for the return tensor.

  Returns:
    A pair of tensors. The first is a placeholder for feeding a
    tensor handle and the second is the tensor in the session state
    keyed by the tensor handle.
  """
    with ops.device(None):
        # Commit the device when it is used the first time.
        holder = array_ops.placeholder(dtypes.string)
        _register_handle_feeder(holder.graph, holder, dtype)
        tensor = gen_data_flow_ops._get_session_tensor(holder,
                                                       dtype,
                                                       name=name)
    return (holder, tensor)
Exemplo n.º 2
0
def _get_handle_reader(graph, handle, dtype):
  """Return a read subgraph for this handle."""
  graph_key = TensorHandle._get_reader_key(handle)
  result = graph._handle_readers.get(graph_key)
  if result is None:
    # Create reader if we haven't done it.
    handle_device = TensorHandle._get_device_name(handle)
    with graph.as_default(), graph.device(handle_device):
      holder = array_ops.placeholder(dtypes.string)
      _register_handle_feeder(holder.graph, holder, dtype)
      reader = gen_data_flow_ops._get_session_tensor(holder, dtype)
    result = (holder, reader)
    graph._handle_readers[graph_key] = result
  return result
Exemplo n.º 3
0
def _get_handle_reader(graph, handle, dtype):
    """Return a read subgraph for this handle."""
    graph_key = TensorHandle._get_reader_key(handle)
    result = graph._handle_readers.get(graph_key)
    if result is None:
        # Create reader if we haven't done it.
        handle_device = TensorHandle._get_device_name(handle)
        with graph.as_default(), graph.device(handle_device):
            holder = array_ops.placeholder(dtypes.string)
            _register_handle_feeder(holder.graph, holder, dtype)
            reader = gen_data_flow_ops._get_session_tensor(holder, dtype)
        result = (holder, reader)
        graph._handle_readers[graph_key] = result
    return result
Exemplo n.º 4
0
def get_session_tensor(handle, dtype, name=None):
    """Get the tensor of type `dtype` by feeding a tensor handle.

  This is EXPERIMENTAL and subject to change.

  Get the value of the tensor from a tensor handle. The tensor
  is produced in a previous run() and stored in the state of the
  session.

  Args:
    handle: The string representation of a persistent tensor handle.
    dtype: The type of the output tensor.
    name: Optional name prefix for the return tensor.

  Returns:
    A pair of tensors. The first is a placeholder for feeding a
    tensor handle and the second is the tensor in the session state
    keyed by the tensor handle.

  Example:

  ```python
  c = tf.multiply(a, b)
  h = tf.get_session_handle(c)
  h = sess.run(h)

  p, a = tf.get_session_tensor(h.handle, tf.float32)
  b = tf.multiply(a, 10)
  c = sess.run(b, feed_dict={p: h.handle})
  ```

  """
    handle_device = TensorHandle._get_device_name(handle)
    with ops.device(handle_device):
        holder = array_ops.placeholder(dtypes.string)
        _register_handle_feeder(holder.graph, holder, dtype)
        tensor = gen_data_flow_ops._get_session_tensor(holder,
                                                       dtype,
                                                       name=name)
    return (holder, tensor)
Exemplo n.º 5
0
def get_session_tensor(handle, dtype, name=None):
  """Get the tensor of type `dtype` by feeding a tensor handle.

  This is EXPERIMENTAL and subject to change.

  Get the value of the tensor from a tensor handle. The tensor
  is produced in a previous run() and stored in the state of the
  session.

  Args:
    handle: The string representation of a persistent tensor handle.
    dtype: The type of the output tensor.
    name: Optional name prefix for the return tensor.

  Returns:
    A pair of tensors. The first is a placeholder for feeding a
    tensor handle and the second is the tensor in the session state
    keyed by the tensor handle.

  Example:

  ```python
  c = tf.multiply(a, b)
  h = tf.get_session_handle(c)
  h = sess.run(h)

  p, a = tf.get_session_tensor(h.handle, tf.float32)
  b = tf.multiply(a, 10)
  c = sess.run(b, feed_dict={p: h.handle})
  ```

  """
  handle_device = TensorHandle._get_device_name(handle)
  with ops.device(handle_device):
    holder = array_ops.placeholder(dtypes.string)
    _register_handle_feeder(holder.graph, holder, dtype)
    tensor = gen_data_flow_ops._get_session_tensor(holder, dtype, name=name)
  return (holder, tensor)
Exemplo n.º 6
0
def get_session_tensor(dtype, name=None):
    """Get the tensor of type `dtype` by feeding a tensor handle.

  This is EXPERIMENTAL and subject to change.

  Get the value of the tensor from a tensor handle. The tensor
  is produced in a previous run() and stored in the state of the
  session.

  Args:
    dtype: The type of the output tensor.
    name: Optional name prefix for the return tensor.

  Returns:
    A pair of tensors. The first is a placeholder for feeding a
    tensor handle and the second is the tensor in the session state
    keyed by the tensor handle.
  """
    with ops.device(None):
        # Commit the device when it is used the first time.
        holder = array_ops.placeholder(dtypes.string)
        _register_handle_feeder(holder.graph, holder, dtype)
        tensor = gen_data_flow_ops._get_session_tensor(holder, dtype, name=name)
    return (holder, tensor)