Unexpected behavior from `tf.math.greaterEqual`
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
- Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
Custom code - OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
macOS BigSur 11.1 - TensorFlow installed from (source or binary):
TensorFlow Java latest GitHub, based on karl/tensor-ttype
I have the following code snippet.
Operand<TFloat32> r = tf.random.randomUniform(tf.constant(Shape.of(3,2)), TFloat32.class,
RandomUniform.seed(1001L));
Operand<TFloat32> rate1 = tf.constant(0.5f);
Operand<TBool> mask = tf.math.greaterEqual(r, rate1);
The generated random sequence (shape 3,2) is:
0,0). 0.028465
0,1). 0.936395
1.0). 0.035310
1,1). 0.230565
2,0). 0.269415
2,1). 0.145439
Describe the current behavior
When I run this code, I get mask values of:
0,0). false
0,1). true
1,0). false
1,1). false
2,0). false
2,1). true
Describe the expected behavior
I expected mask values to be:
0,0). false
0,1). true
1,0). false
1,1). false
2,0). false
2,1). false
The last random number, 0.145439, is less than 0.5.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
try (TestSession session = TestSession.createTestSession(TestSession.Mode.GRAPH)) {
Ops tf = session.getTF();
Operand<TFloat32> random = tf.random.randomUniform(tf.constant(Shape.of(3,2), TFloat32.class,
RandomUniform.seed(1001L));
Operand<TFloat32> rate = tf.constant(0.5f);
Operand<TBool> mask = tf.math.greaterEqual(r, rate);
System.out.println("******** MASK ***************");
System.out.println("random:");
session.print(random);
System.out.println("rate1:");
session.print(rate1);
System.out.println("mask:");
session.print(mask);
System.out.println("******** MASK ***************");
}
If I do this code in Python it works as expected:
import tensorflow as tf
a = [
[0.028465 , 0.936395],
[0.035310 , 0.230565],
[0.269415 , 0.145439]
]
print(a);
rate = 0.5
b = tf.math.greater_equal(a, rate);
print(b)
Output:
[[0.028465, 0.936395], [0.03531, 0.230565], [0.269415, 0.145439]]
tf.Tensor(
[[False True]
[False False]
[False False]], shape=(3, 2), dtype=bool)
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
Comienza con el fragmento de Java y la TestSession en modo GRAPH, y luego compara el tensor generado y el resultado de tf.math.greaterEqual con el ejemplo de Python. Reproduce la discrepancia notificada en el elemento final e identifica si la produce el binding de Java o la configuración de la prueba; se considera terminado cuando el comportamiento está explicado y se ha verificado una prueba de regresión o un cambio correctivo.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, tensorflow
- Área
- machine-learning
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100