Ana içeriğe geç

TensorFlow Kurulumu

Bu makalede

TensorFlow, Google tarafından geliştirilen makine öğrenimi ve derin sinir ağı eğitimi için açık kaynaklı bir platformdur. TensorFlow ile Python'da kullanıcı dostu bir API kullanarak karmaşık sinir ağları oluşturabilir, eğitebilir ve kullanabilirsiniz.

Bu platform, doğrusal ve lojistik regresyon gibi geleneksel makine öğrenimi algoritmalarının yanı sıra, konvolüsyonel sinir ağları (Convolutional Neural Networks, CNN) ve yinelemeli sinir ağları (Recurrent Neural Networks, RNN) dahil olmak üzere daha gelişmiş mimarileri de destekler.

Linux'ta TensorFlow Kurulumu

Bu talimat aşağıdaki işletim sistemleri için uygundur: Ubuntu 22.04 ve doğrulanmış Python sürümleri: Python 3.10.

Not

GPU hızlandırmayı kullanmayı planlıyorsanız, lütfen bu talimata göre NVIDIA sürücülerini ve CUDA'yı yükleyin.

  1. Python'u yükleyin:

    sudo apt install python3.10
    

    Ubuntu 22.04'te bu sürüm varsayılan olarak yüklüdür, bu nedenle daha yeni bir sürüm yüklemenizi önermiyoruz.

  2. TensorRT için sistem kütüphanelerinin yüklenmesi:

    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. Python için sanal ortam oluşturun:

    python3 -m venv venv
    
  4. Sanal ortamı etkinleştirin:

    source venv/bin/activate
    

    Etkinleştirme başarılı olduğunda, komut istemi parantez içinde sanal ortamın adını içerecektir:

    (venv) user@49069:~$
    

    Not

    İstediğiniz kadar sanal ortam oluşturabilir ve farklı kütüphaneleri (aynı anda dahil olmak üzere, ancak bazen bu çakışmalara neden olabilir) yükleyebilirsiniz.

  5. TensorRT için bağlayıcıların yüklenmesi:

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

    Yüklemeyi doğrulamak için konsolda Python'u çalıştırabilir ve aşağıdaki betiği çalıştırabilirsiniz:

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

    Başarılı bir yükleme sonrası çıktı şu şekilde olacaktır:

    (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. TensorRT sürüm 8.6.1'in yüklenmesi.

    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. GPU desteği ile TensorFlow kütüphanesinin yüklenmesi:

    pip install tensorflow[and-cuda]
    
  8. Sanal ortamdan çıkın:

    deactivate
    
  9. TensorFlow'u çalıştırmak için bir betik oluşturun:

    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
    

TensorFlow'u Çalıştırma

Ana dizininizin kök dizininden belirtilen kütüphane değişkenleriyle sanal ortamda TensorFlow'u çalıştırmak için şu komutu kullanın:

. tensorflow.sh

TensorFlow Kurulumunu Doğrulama

Kütüphanenin işlevselliğini ve GPU desteğini doğrulamak için konsolda aşağıdaki Python programını başlatın:

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

Başarılı bir yükleme sonrası, GPU kullanımınızı gösteren buna benzer bir çıktı alacaksınız.

(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')]
>>>

Ayrıca, bu GitHub deposundan sinir ağı eğitimi için test Python betiğini 2c_nn_mnist_customtrain.py indirip çalıştırabilirsiniz.

Çalışması tamamlandığında, buna benzer bir çıktı almalısınız:

(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%)