es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tensorflow en Mac M1: “Suma de verificación incorrecta para objeto liberado”

Recientemente comencé a usar una Mac con Apple Silicon. Instalé Tensorflow a través de Anaconda, versión 2.6.2, que era la última versión que pude encontrar.

Cuando ejecuto el código de entrenamiento, el entrenamiento parece comenzar a inicializarse hasta que se produce un error de memoria. Luego se queda congelado hasta que lo detengo manualmente.

La salida impresa se ve así:

(machine<em>learning) eric@mac-mini cr</em>battle<em>predictor % python3 main.py
2021-12-25 22:11:24.286059: I tensorflow/core/platform/cpu</em>feature<em>guard.cc:142] Este binario de TensorFlow está optimizado con la biblioteca de redes neuronales profundas oneAPI (oneDNN) para usar las siguientes instrucciones de la CPU en operaciones críticas de rendimiento: SSE4.1 SSE4.2
Para habilitarlas en otras operaciones, reconstruye TensorFlow con las banderas del compilador adecuado.
  0%|                                                                                                                                                                                                    | 0/350 [00:00<?, ?epoch/s]2021-12-25 22:11:24.368779: I tensorflow/compiler/mlir/mlir</em>graph<em>optimization</em>pass.cc:185] Ninguna de las optimizaciones de MLIR está habilitada (2 registradas)
python3(48188,0x304135000) malloc: Checksum incorrecto para el objeto liberado 0x7fe41cac4e80: probablemente se modificó después de ser liberado.
Valor corrupto: 0x7fe42c07e480
python3(48188,0x304135000) malloc: <em>*</em> establezca un punto de interrupción en malloc<em>error</em>break para depurar
zsh: abort      python3 main.py
(machine<em>learning) eric@mac-mini cr</em>battle<em>predictor % /Users/eric/.conda/envs/machine</em>learning/lib/python3.9/multiprocessing/resource<em>tracker.py:216: Advertencia de usuario: resource</em>tracker: Parece haber 1 objeto de semáforo con fugas para limpiar al cerrar el programa
  warnings.warn('resource_tracker: Parece haber %d '

Por alguna razón, muy ocasionalmente (aproximadamente 1 de cada 7 intentos), el error no aparece y, según puedo ver, el entrenamiento avanza normalmente, sin problemas.

Reconozco que se ha planteado un problema similar aquí. Sin embargo, la única solución proporcionada fue asegurarme de estar utilizando el intérprete correcto y la versión más reciente de TensorFlow. Estoy usando Python 3.9.7 y TensorFlow 2.6.2, y me aseguré de que mi programa también estuviera utilizando estas versiones.

¿Qué causa este problema? Estoy dispuesto a compartir cualquier información necesaria.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que te estás encontrando con un error de memoria mientras ejecutas Tensorflow en tu Mac Apple Silicon. Según la salida, el error ocurre cuando hay un checksum incorrecto para un objeto liberado, lo que sugiere que hay un problema con la asignación de memoria en tu programa.

    Una posible causa de este problema podría estar relacionada con la compatibilidad de Tensorflow con el chip Apple M1. Hasta ahora, Tensorflow no es compatible oficialmente con el chip Apple M1, aunque existen algunos métodos alternativos disponibles para instalarlo usando Anaconda u otros métodos.

    Otra posible causa podría estar relacionada con los parámetros o la arquitectura específica de tu modelo de aprendizaje automático. Es posible que el modelo esté tratando de asignar demasiada memoria, lo que causa el error. Podrías intentar reducir el tamaño del lote (batch size), aumentar la memoria de intercambio (swap memory) o utilizar una arquitectura de modelo más ligera para ver si resuelve el problema.

    Por último, también es posible que haya un problema con tu instalación o configuración del entorno. Podrías intentar reinstalar Anaconda y Tensorflow, o crear un nuevo entorno virtual para aislar el problema. Comprobar la compatibilidad de versiones entre diferentes paquetes también puede ser útil.

    En general, solucionar problemas de memoria puede ser desafiante y puede requerir experimentación con diferentes configuraciones y parámetros para identificar la causa raíz. Si el problema persiste, podrías considerar buscar ayuda en la comunidad de Tensorflow o consultar con un experto en el campo.

Comments are closed.