Unexpected problem in creating a tensor on saved model session.
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 928
- Forks
- 227
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
System information
- OS Platform and Distribution: Linux Ubuntu 20.04 x64
- TensorFlow installed from: pip for Python 3.9; Maven for Java
- TensorFlow version : 2.7.0 on Python; 0.3.3 on Java
- Java version : openjdk 11.0.11 2021-04-20
- Python version : 3.9
- CUDA/cuDNN version: cuda_11.5.r11.5/compiler.30411180_0
- GPU model and memory: Nvidia Geforce 960m
Describe the current behavior
The model (a Keras Sequential) is saved using python's "tf.saved_model.save". This model is then loaded in Java using SavedModelBundle from which the related graph is extracted. Then and Ops is created using this graph. When trying to create a tensor using .constant method, an exception is thrown on line 413, /core/op/Constant.java saying
Duplicate node name in graph: 'Const'
I checked my graph nodes using getNodeList of MetaGraph and there is only one node named "Const".
Describe the expected behavior
Successful creation of Tensor as there is no duplicate in the graph nodes.
Code to reproduce the issue
SavedModelBundle model = SavedModelBundle.load("/path/to/model");
Graph graph = model.graph();
MetaGraphDef mataGF = model.metaGraphDef();
var nodes = mataGF.getGraphDef().getNodeList().toArray();
Ops tf = Ops.create(graph);
double[] labels = {0.52,0.65,0.23,0.54,0.65,0.16,0.97};
var input = tf.constant(labels);
Other info / logs
Here is a list of all the 37 nodes. Only node 31 is called Const;

Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Reproduce el fallo con SavedModelBundle, Graph, Ops y tf.constant del issue; después, inspecciona core/op/Constant.java alrededor de la línea 413 y compara los nodos del grafo de MetaGraphDef con el grafo utilizado por Ops. Se considera terminado cuando el tensor labels proporcionado se puede crear a partir del grafo del modelo guardado sin un error de nodo duplicado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- machine-learning
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100