Saltar a contenido

Instalación de TensorFlow

En este artículo

TensorFlow es una plataforma de código abierto para el aprendizaje automático y el entrenamiento de redes neuronales profundas, desarrollada por Google. Con TensorFlow, puede crear, entrenar y utilizar redes neuronales complejas utilizando una API fácil de usar en Python.

Esta plataforma admite tanto algoritmos tradicionales de aprendizaje automático, como la regresión lineal y logística, como arquitecturas más avanzadas, incluidas las redes neuronales convolucionales (Convolutional Neural Networks, CNN) y las redes neuronales recurrentes (Recurrent Neural Networks, RNN).

Instalación de TensorFlow en Linux

Esta instrucción es adecuada para los siguientes sistemas operativos: Ubuntu 22.04, y verificada para las versiones de Python: Python 3.10.

Nota

Si planea utilizar la aceleración por GPU, instale los controladores NVIDIA y CUDA según esta instrucción.

  1. Instale Python:

    sudo apt install python3.10
    

    En Ubuntu 22.04, esta versión se instala de forma predeterminada, por lo que no recomendamos instalar una versión más reciente.

  2. Instalación de bibliotecas del sistema para TensorRT:

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get install tensorrt
    
  3. Cree un entorno virtual para Python:

    python3 -m venv venv
    
  4. Active el entorno virtual:

    source venv/bin/activate
    

    Tras una activación exitosa, el símbolo del sistema incluirá el nombre del entorno virtual entre paréntesis:

    (venv) user@49069:~$
    

    Nota

    Puede crear tantos entornos virtuales como desee e instalar diferentes bibliotecas (incluso simultáneamente, aunque a veces esto puede causar conflictos).

  5. Instalación de enlaces para TensorRT:

    python3 -m pip install wheel
    python3 -m pip install --pre --upgrade tensorrt
    

    Para verificar la instalación, podemos ejecutar Python en la consola y ejecutar el siguiente script:

    import tensorrt
    print(tensorrt.__version__)
    assert tensorrt.Builder(tensorrt.Logger())
    

    Tras una instalación exitosa, la salida será:

    (tensorflow) user@49069:~/gpu$ python
    Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorrt
    >>> print(tensorrt.__version__)
    10.0.0b6
    >>> assert tensorrt.Builder(tensorrt.Logger())
    >>> import tensorrt_lean as trt
    >>> print(trt.__version__)
    10.0.0b6
    >>> assert trt.Runtime(trt.Logger())
    >>> import tensorrt_dispatch as trt
    >>> print(trt.__version__)
    10.0.0b6
    >>> assert trt.Runtime(trt.Logger())
    >>>
    
  6. Instalación de la versión 8.6.1 de TensorRT.

    wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
    tar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
    
  7. Instalación de la biblioteca TensorFlow con soporte para GPU:

    pip install tensorflow[and-cuda]
    
  8. Salga del entorno virtual:

    deactivate
    
  9. Cree un script para ejecutar TensorFlow:

    echo '#!/bin/bash' > tensorflow.sh
    echo 'source venv/bin/activate' >> tensorflow.sh
    echo 'export CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> tensorflow.sh
    echo 'export LD_LIBRARY_PATH=$CUDNN_PATH/lib:/usr/local/cuda/lib64' >> tensorflow.sh
    echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/TensorRT-8.6.1.6/lib' >> tensorflow.sh
    chmod +x tensorflow.sh
    

Ejecución de TensorFlow

Para ejecutar TensorFlow en un entorno virtual con variables de biblioteca especificadas desde el directorio raíz de su directorio de inicio, utilice el comando:

. tensorflow.sh

Verificación de la instalación de TensorFlow

Para verificar la funcionalidad y el soporte de GPU de la biblioteca, ejecute el siguiente programa Python en la consola:

import tensorflow as tf
print(tf.reduce_sum(tf.random.normal([1000, 1000])))
print(tf.config.list_physical_devices('GPU'))

Tras una instalación exitosa, recibirá una salida similar a esta, que muestra el uso de su GPU.

(venv) user1@49069:~$ python
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
nt(tf.config.list_physical_devices('GPU'))
2024-04-22 23:39:54.472502: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
>>> print(tf.reduce_sum(tf.random.normal([1000, 1000])))
2024-04-22 23:39:55.810888: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1928] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22282 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:07:00.0, compute capability: 8.9
tf.Tensor(332.5041, shape=(), dtype=float32)
>>> print(tf.config.list_physical_devices('GPU'))
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
>>>

Además, puede descargar y ejecutar el script de prueba de Python para entrenar una red neuronal 2c_nn_mnist_customtrain.py desde este repositorio de GitHub.

Al finalizar su ejecución, debería recibir una salida similar a esta:

`bash (venv) user1@49069:~$ python ./2c_nn_mnist_customtrain.py 2024-04-23 10:35:25.832754: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. 2024-04-23 10:35:28.404381: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1928] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22282 MB memory: -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:07:00.0, compute capability: 8.9 WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1713861338.172126 21279 service.cc:145] XLA service 0x7f36a3bd2ec0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices: I0000 00:00:1713861338.172187 21279 service.cc:153] StreamExecutor device (0): NVIDIA GeForce RTX 4090, Compute Capability 8.9 2024-04-23 10:35:38.180648: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:268] disabling MLIR crash reproducer, set env var `MLIR_CRASH_REPRODUCER_DIRECTORY` to enable. 2024-04-23 10:35:38.207205: I external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:465] Loaded cuDNN version 8902 I0000 00:00:1713861338.355523 21279 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process. 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9022 time: 14.9 test-acc: 0.932 (error: 6.75%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9474 time: 4.74 test-acc: 0.953 (error: 4.71%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9628 time: 4.83 test-acc: 0.963 (error: 3.67%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9734 time: 4.86 test-acc: 0.968 (error: 3.25%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9798 time: 4.9 test-acc: 0.97 (error: 3.04%)


Parte del contenido de esta página fue creado o traducido utilizando IA.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×