tensorflow / tensorflow/java

Unintuitive out of memory errors, and odd OOMs

Abierto
#186 4 comentarios 0 reacciones 0 asignados Ver en GitHub

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

I'm experimenting with TensorScope, and thus using large amounts of memory for tensors. However, when I try this, I get odd oom-related errors.

Example (kotlin):

repeat(1000) {
    TFloat32.tensorOf(Shape.of(10000, 10000))
}

gives

2021-01-11 20:36:45.599992: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.625897: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.626092: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.626180: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2021-01-11 20:36:45.626262: W external/org_tensorflow/tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
Exception in thread "main" java.lang.NullPointerException
	at org.tensorflow.internal.buffer.TensorBuffers.tensorMemory(TensorBuffers.java:180)
	at org.tensorflow.internal.buffer.TensorBuffers.toFloats(TensorBuffers.java:102)
	at org.tensorflow.internal.types.TFloat32Mapper.mapDense(TFloat32Mapper.java:34)
	at org.tensorflow.internal.types.TFloat32Mapper.mapDense(TFloat32Mapper.java:30)
	at org.tensorflow.RawTensor.asTypedTensor(RawTensor.java:215)
	at org.tensorflow.Tensor.of(Tensor.java:90)
	at org.tensorflow.Tensor.of(Tensor.java:63)
	at org.tensorflow.types.TFloat32.tensorOf(TFloat32.java:79)
	at tester.TensorScopeKt.main(TensorScope.kt:8)
	at tester.TensorScopeKt.main(TensorScope.kt)

I'd think this is a fairly straight forward OOM, just without nice error messages, but the used memory in Task Manager (I'm on Windows) barely moves. I do start using heap memory, but it caps 100MB, even with -Xmx6g. Is there some limit on tensor allocations I'm not aware of?

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza reproduciendo el ejemplo de Kotlin mediante TFloat32.tensorOf y sigue el fallo reportado en org/tensorflow/internal/buffer/TensorBuffers.java:180. Compara las advertencias de asignación nativa con la excepción del lado de Java y define done como informar de los fallos de asignación con un error preciso y accionable, en lugar de la NullPointerException observada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, kotlin
Área
machine-learning
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.