aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/java/src/main/java/org/tensorflow/Output.java
blob: 2e3f8d4eac544a38c4cf68a53757eaf610f314c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* Copyright 2016 The TensorFlow Authors. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/

package org.tensorflow;

/**
 * A symbolic handle to a tensor produced by an {@link Operation}.
 *
 * <p>An Output is a symbolic handle to a tensor. The value of the Tensor is computed by executing
 * the {@link Operation} in a {@link Session}.
 *
 * <p>By implementing the {@link Input} interface, instances of this class could also be passed
 * directly in input to an operation.
 */
public final class Output implements Input {

  /** Handle to the idx-th output of the Operation {@code op}. */
  public Output(Operation op, int idx) {
    operation = op;
    index = idx;
  }

  /** Returns the Operation that will produce the tensor referred to by this Output. */
  public Operation op() {
    return operation;
  }

  /** Returns the index into the outputs of the Operation. */
  public int index() {
    return index;
  }

  /** Returns the (possibly partially known) shape of the tensor referred to by this Output. */
  public Shape shape() {
    return new Shape(operation.shape(index));
  }

  /** Returns the DataType of the tensor referred to by this Output. */
  public DataType dataType() {
    return operation.dtype(index);
  }

  @Override
  public Output asOutput() {
    return this;
  }

  private final Operation operation;
  private final int index;
}