1 op { 2 graph_op_name: "QueueDequeueUpTo" 3 visibility: SKIP 4 in_arg { 5 name: "handle" 6 description: <<END 7 The handle to a queue. 8 END 9 } 10 in_arg { 11 name: "n" 12 description: <<END 13 The number of tuples to dequeue. 14 END 15 } 16 out_arg { 17 name: "components" 18 description: <<END 19 One or more tensors that were dequeued as a tuple. 20 END 21 } 22 attr { 23 name: "component_types" 24 description: <<END 25 The type of each component in a tuple. 26 END 27 } 28 attr { 29 name: "timeout_ms" 30 description: <<END 31 If the queue has fewer than n elements, this operation 32 will block for up to timeout_ms milliseconds. 33 Note: This option is not supported yet. 34 END 35 } 36 summary: "Dequeues `n` tuples of one or more tensors from the given queue." 37 description: <<END 38 This operation is not supported by all queues. If a queue does not support 39 DequeueUpTo, then an Unimplemented error is returned. 40 41 If the queue is closed and there are more than 0 but less than `n` 42 elements remaining, then instead of returning an OutOfRange error like 43 QueueDequeueMany, less than `n` elements are returned immediately. If 44 the queue is closed and there are 0 elements left in the queue, then 45 an OutOfRange error is returned just like in QueueDequeueMany. 46 Otherwise the behavior is identical to QueueDequeueMany: 47 48 This operation concatenates queue-element component tensors along the 49 0th dimension to make a single component tensor. All of the components 50 in the dequeued tuple will have size `n` in the 0th dimension. 51 52 This operation has k outputs, where `k` is the number of components in 53 the tuples stored in the given queue, and output `i` is the ith 54 component of the dequeued tuple. 55 END 56 } 57