Skip to content

Commit 69826bc

Browse files
committed
Print function signature when converting to String
1 parent bba95c4 commit 69826bc

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-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: 36 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,47 @@ 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\"").append(key).append("\":");
181+
strBuilder.append(" dtype=" + tensorInfo.getDtype().name());
182+
strBuilder.append(", shape=(");
183+
for (int i = 0; i < tensorInfo.getTensorShape().getDimCount(); ++i) {
184+
strBuilder.append(tensorInfo.getTensorShape().getDim(i).getSize());
185+
if (i < tensorInfo.getTensorShape().getDimCount() - 1) {
186+
strBuilder.append(", ");
187+
}
188+
}
189+
strBuilder.append(")\n");
190+
});
158191
}
159192
}

0 commit comments

Comments
 (0)