Skip to content

Commit 9897cdd

Browse files
committed
Print function signature when converting to String
1 parent bba95c4 commit 9897cdd

File tree

2 files changed

+44
-3
lines changed

2 files changed

+44
-3
lines changed

tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/ConcreteFunction.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,11 @@ public void close() {
268268
}
269269
}
270270

271+
@Override
272+
public String toString() {
273+
return signature.toString();
274+
}
275+
271276
private enum Ownership {
272277
GRAPH_AND_SESSION, SESSION_ONLY, NONE;
273278
}

tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Signature.java

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.tensorflow;
1717

18+
import java.util.Map;
1819
import java.util.Set;
1920
import org.tensorflow.ndarray.Shape;
2021
import org.tensorflow.proto.framework.DataType;
@@ -145,15 +146,50 @@ public Set<String> outputNames() {
145146
return signatureDef.getOutputsMap().keySet();
146147
}
147148

149+
@Override
150+
public String toString() {
151+
StringBuilder strBuilder = new StringBuilder("Signature for \"" + key +"\":\n");
152+
if (!methodName().isEmpty()) {
153+
strBuilder.append("\tMethod: \"").append(methodName()).append("\"\n");
154+
}
155+
if (signatureDef.getInputsCount() > 0) {
156+
strBuilder.append("\tInputs:\n");
157+
printTensorInfo(signatureDef.getInputsMap(), strBuilder);
158+
}
159+
if (signatureDef.getOutputsCount() > 0) {
160+
strBuilder.append("\tOutputs:\n");
161+
printTensorInfo(signatureDef.getOutputsMap(), strBuilder);
162+
}
163+
return strBuilder.toString();
164+
}
165+
166+
Signature(String key, SignatureDef signatureDef) {
167+
this.key = key;
168+
this.signatureDef = signatureDef;
169+
}
170+
148171
SignatureDef asSignatureDef() {
149172
return signatureDef;
150173
}
151174

152175
private final String key;
153176
private final SignatureDef signatureDef;
154177

155-
Signature(String key, SignatureDef signatureDef) {
156-
this.key = key;
157-
this.signatureDef = signatureDef;
178+
private static void printTensorInfo(Map<String, TensorInfo> tensorMap, StringBuilder strBuilder) {
179+
tensorMap.forEach((key, tensorInfo) -> {
180+
strBuilder.append("\t\t\"")
181+
.append(key)
182+
.append("\":")
183+
.append(" dtype=")
184+
.append(tensorInfo.getDtype().name())
185+
.append(", shape=(");
186+
for (int i = 0; i < tensorInfo.getTensorShape().getDimCount(); ++i) {
187+
strBuilder.append(tensorInfo.getTensorShape().getDim(i).getSize());
188+
if (i < tensorInfo.getTensorShape().getDimCount() - 1) {
189+
strBuilder.append(", ");
190+
}
191+
}
192+
strBuilder.append(")\n");
193+
});
158194
}
159195
}

0 commit comments

Comments
 (0)