소스에서 빌드

소스에서 TensorFlow pip 패키지를 빌드하고 Ubuntu Linux 및 macOS에 설치합니다. 지침은 다른 시스템에서도 작동할 수 있지만 Ubuntu 및 macOS에서만 테스트되고 지원됩니다.

Linux 및 macOS용 설정

개발 환경을 구성하려면 다음 빌드 도구를 설치하세요.

Python 및 TensorFlow 패키지 종속 항목 설치

우분투

sudo apt install python3-dev python3-pip

맥 OS

Xcode 9.2 이상이 필요합니다.

Homebrew 패키지 관리자를 사용하여 설치합니다.

brew install python

TensorFlow pip 패키지 종속성을 설치합니다(가상 환경을 사용하는 경우 --user 인수 생략).

pip install -U --user pip numpy wheel packaging requests opt_einsum
pip install -U --user keras_preprocessing --no-deps

바젤 설치

TensorFlow를 빌드하려면 Bazel을 설치해야 합니다. Bazelisk 는 Bazel을 설치하는 쉬운 방법이며 TensorFlow에 적합한 Bazel 버전을 자동으로 다운로드합니다. 사용 편의성을 위해 Bazelisk를 PATHbazel 실행 파일로 추가하세요.

Bazelisk를 사용할 수 없는 경우 Bazel을 수동으로 설치할 수 있습니다. TensorFlow의 .bazelversion 파일에서 올바른 Bazel 버전을 설치했는지 확인하세요.

Clang은 LLVM 기반의 C++로 컴파일된 C/C++/Objective-C 컴파일러입니다. TensorFlow 2.13부터 TensorFlow를 빌드하는 기본 컴파일러입니다. 현재 지원되는 버전은 LLVM/Clang 16입니다.

LLVM Debian/Ubuntu nightly 패키지는 Linux에서 수동 설치를 위한 자동 설치 스크립트와 패키지를 제공합니다. 패키지 소스에 llvm apt 저장소를 수동으로 추가하는 경우 다음 명령을 실행해야 합니다.

sudo apt-get update && sudo apt-get install -y llvm-16 clang-16

또는 사전 빌드된 Clang + LLVM 16을 다운로드하여 압축을 풀 수 있습니다.

다음은 Debian/Ubuntu 운영 체제에서 다운로드한 Clang + LLVM 16 바이너리를 설정하기 위해 수행할 수 있는 단계의 예입니다.

  1. 원하는 대상 디렉터리로 변경합니다: cd <desired directory>

  2. 아카이브 파일 로드 및 추출...(아키텍처에 적합):

    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
    
    tar -xvf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
    
    

  3. 추출된 내용(디렉터리 및 파일)을 /usr 에 복사합니다(Sudo 권한이 필요할 수 있으며 올바른 디렉터리는 배포판에 따라 다를 수 있음). 이렇게 하면 Clang 및 LLVM이 효과적으로 설치되고 경로에 추가됩니다. 이전 설치가 있는 경우를 제외하고 아무것도 바꿀 필요가 없습니다. 이 경우 파일을 바꿔야 합니다:

    cp -r clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/* /usr
    

  4. 획득한 Clang + LLVM 16 바이너리 버전 확인:

    clang --version
    

  5. 이제 /usr/bin/clang 새 clang의 실제 경로입니다. ./configure 스크립트를 실행하거나 환경 변수 CCBAZEL_COMPILER 이 경로로 수동으로 설정할 수 있습니다.

GPU 지원 설치(선택 사항, Linux에만 해당)

macOS에는 GPU 지원 이 없습니다 .

GPU에서 TensorFlow를 실행하는 데 필요한 드라이버와 추가 소프트웨어를 설치하려면 GPU 지원 가이드를 읽어보세요.

TensorFlow 소스 코드 다운로드

Git을 사용하여 TensorFlow 저장소를 복제합니다.

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

리포지토리는 기본적으로 master 개발 분기로 설정됩니다. 또한 릴리스 브랜치를 확인하여 빌드할 수도 있습니다.

git checkout branch_name  # r2.2, r2.3, etc.

빌드 구성

TensorFlow 빌드는 저장소 루트 디렉터리의 .bazelrc 파일로 구성됩니다. ./configure 또는 ./configure.py 스크립트를 사용하여 일반 설정을 조정할 수 있습니다.

저장소의 루트 디렉터리에서 ./configure 스크립트를 실행하세요. 이 스크립트는 TensorFlow 종속성의 위치를 ​​묻는 메시지를 표시하고 추가 빌드 구성 옵션(예: 컴파일러 플래그)을 요청합니다. 자세한 내용은 샘플 세션 섹션을 참조하세요.

./configure

이 스크립트의 Python 버전 ./configure.py 도 있습니다. 가상 환경을 사용하는 경우 python configure.py 환경 내 경로의 우선순위를 지정하는 반면, ./configure 환경 외부 경로의 우선순위를 지정합니다. 두 경우 모두 기본값을 변경할 수 있습니다.

샘플 세션

다음은 ./configure 스크립트의 샘플 실행을 보여줍니다(세션은 다를 수 있음).

구성 옵션

GPU 지원

GPU 지원을 위해 구성 중에 cuda=Y 설정하고 CUDA 및 cuDNN 버전을 지정합니다. 시스템에 여러 버전의 CUDA 또는 cuDNN이 설치된 경우 기본값을 사용하는 대신 버전을 명시적으로 설정하세요. ./configure 시스템의 CUDA 라이브러리에 대한 심볼릭 링크를 생성하므로 CUDA 라이브러리 경로를 업데이트하는 경우 빌드하기 전에 이 구성 단계를 다시 실행해야 합니다.

최적화

컴파일 최적화 플래그의 경우 기본값( -march=native )은 생성된 코드를 머신의 CPU 유형에 맞게 최적화합니다. 그러나 다른 CPU 유형에 대해 TensorFlow를 빌드하는 경우 보다 구체적인 최적화 플래그를 고려하세요. 예제는 GCC 매뉴얼을 확인하세요.

사전 구성된 구성

bazel build 명령에 추가할 수 있는 사전 구성된 빌드 구성이 몇 가지 있습니다. 예를 들면 다음과 같습니다.

  • --config=dbg - 디버그 정보로 빌드합니다. 자세한 내용은 CONTRIBUTING.md를 참조하세요.
  • --config=mkl 인텔® MKL-DNN 지원.
  • --config=monolithic —대부분 정적인 모놀리식 빌드를 위한 구성입니다.

pip 패키지 빌드 및 설치

pip 패키지는 두 단계로 빌드됩니다. bazel build 명령은 "패키지 빌더" 프로그램을 생성합니다. 그런 다음 package-builder를 실행하여 패키지를 생성합니다.

패키지 빌더 빌드

bazel build 사용하여 TensorFlow 2.x 패키지 빌더를 만듭니다.

bazel build [--config=option] //tensorflow/tools/pip_package:build_pip_package

Bazel 빌드 옵션

빌드 옵션은 Bazel 명령줄 참조를 참조하세요.

소스에서 TensorFlow를 빌드하면 많은 RAM이 사용될 수 있습니다. 시스템에 메모리가 제한된 경우 --local_ram_resources=2048 사용하여 Bazel의 RAM 사용량을 제한하세요.

공식 TensorFlow 패키지는 Manylinux2014 패키지 표준을 준수하는 Clang 도구 체인으로 구축되었습니다.

패키지 빌드

bazel build 명령은 build_pip_package 라는 실행 파일을 생성합니다. 이는 pip 패키지를 빌드하는 프로그램입니다. 아래와 같이 실행 파일을 실행하여 /tmp/tensorflow_pkg 디렉터리에 .whl 패키지를 빌드합니다.

릴리스 브랜치에서 빌드하려면 다음 안내를 따르세요.

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

마스터에서 빌드하려면 --nightly_flag 사용하여 올바른 종속성을 얻으세요.

./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg

동일한 소스 트리에서 CUDA 구성과 비 CUDA 구성을 모두 빌드할 수 있지만 동일한 소스 트리에서 이러한 두 구성 간에 전환할 때는 bazel clean 실행하는 것이 좋습니다.

패키지 설치

생성된 .whl 파일의 파일 이름은 TensorFlow 버전과 플랫폼에 따라 다릅니다. pip install 사용하여 패키지를 설치합니다. 예:

pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl

Docker Linux 빌드

TensorFlow의 Docker 개발 이미지는 소스에서 Linux 패키지를 빌드하기 위한 환경을 설정하는 쉬운 방법입니다. 이러한 이미지에는 TensorFlow를 빌드하는 데 필요한 소스 코드와 종속성이 이미 포함되어 있습니다. 설치 지침과 사용 가능한 이미지 태그 목록을 보려면 TensorFlow Docker 가이드 로 이동하세요.

CPU 전용

다음 예에서는 :devel 이미지를 사용하여 최신 TensorFlow 소스 코드에서 CPU 전용 패키지를 빌드합니다. 사용 가능한 TensorFlow -devel 태그는 Docker 가이드를 확인하세요.

최신 개발 이미지를 다운로드하고 pip 패키지를 빌드하는 데 사용할 Docker 컨테이너를 시작합니다.

docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel bash

git pull  # within the container, download the latest source code

위의 docker run 명령은 소스 트리의 루트인 /tensorflow_src 디렉터리에서 셸을 시작합니다. 컨테이너의 /mnt 디렉터리에 호스트의 현재 디렉터리를 마운트하고 환경 변수(권한을 설정하는 데 사용됨 - Docker가 이를 까다롭게 만들 수 있음)를 통해 호스트 사용자의 정보를 컨테이너에 전달합니다.

또는 컨테이너 내에 TensorFlow의 호스트 복사본을 빌드하려면 컨테이너의 /tensorflow 디렉터리에 호스트 소스 트리를 마운트합니다.

docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \
    -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash

소스 트리가 설정되면 컨테이너의 가상 환경 내에 TensorFlow 패키지를 빌드합니다.

  1. 선택 사항: 빌드 구성 - 사용자에게 빌드 구성 질문에 답하라는 메시지가 표시됩니다.
  2. pip 패키지를 생성하는 데 사용되는 도구를 빌드합니다.
  3. 도구를 실행하여 pip 패키지를 생성합니다.
  4. 컨테이너 외부에 대한 파일의 소유권 권한을 조정합니다.
./configure  # if necessary

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt  # create package

chown $HOST_PERMS /mnt/tensorflow-version-tags.whl

컨테이너 내에 패키지를 설치하고 확인합니다.

pip uninstall tensorflow  # remove current version

pip install /mnt/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"

호스트 시스템에서 TensorFlow pip 패키지는 현재 디렉터리(호스트 사용자 권한 포함)에 있습니다 ./tensorflow- version - tags .whl

GPU 지원

호스트 시스템에는 NVIDIA® 드라이버 만 필요하므로 Docker는 TensorFlow에 대한 GPU 지원을 구축하는 가장 쉬운 방법입니다( NVIDIA® CUDA® Toolkit을 설치할 필요가 없음). nvidia-docker를 설정하려면 GPU 지원 가이드 및 TensorFlow Docker 가이드를 참조하세요(Linux에만 해당).

다음 예제에서는 TensorFlow :devel-gpu 이미지를 다운로드하고 nvidia-docker 사용하여 GPU 지원 컨테이너를 실행합니다. 이 개발 이미지는 GPU를 지원하는 pip 패키지를 빌드하도록 구성되었습니다.

docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel-gpu bash
git pull  # within the container, download the latest source code

그런 다음 컨테이너의 가상 환경 내에서 GPU를 지원하는 TensorFlow 패키지를 빌드합니다.

./configure  # if necessary

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt  # create package

chown $HOST_PERMS /mnt/tensorflow-version-tags.whl

컨테이너 내에 패키지를 설치 및 확인하고 GPU를 확인합니다.

pip uninstall tensorflow  # remove current version

pip install /mnt/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"

테스트된 빌드 구성

리눅스

CPU

버전 파이썬 버전 컴파일러 빌드 도구
텐서플로우-2.15.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0
텐서플로우-2.14.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0
텐서플로우-2.13.0 3.8-3.11 클랭 16.0.0 바젤 5.3.0
텐서플로우-2.12.0 3.8-3.11 GCC 9.3.1 바젤 5.3.0
텐서플로우-2.11.0 3.7-3.10 GCC 9.3.1 바젤 5.3.0
텐서플로우-2.10.0 3.7-3.10 GCC 9.3.1 바젤 5.1.1
텐서플로우-2.9.0 3.7-3.10 GCC 9.3.1 바젤 5.0.0
텐서플로우-2.8.0 3.7-3.10 GCC 7.3.1 바젤 4.2.1
텐서플로우-2.7.0 3.7-3.9 GCC 7.3.1 바젤 3.7.2
텐서플로우-2.6.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2
텐서플로우-2.5.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2
텐서플로우-2.4.0 3.6-3.8 GCC 7.3.1 바젤 3.1.0
텐서플로우-2.3.0 3.5-3.8 GCC 7.3.1 바젤 3.1.0
텐서플로우-2.2.0 3.5-3.8 GCC 7.3.1 바젤 2.0.0
텐서플로우-2.1.0 2.7, 3.5-3.7 GCC 7.3.1 바젤 0.27.1
텐서플로우-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1
텐서플로우-1.15.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1
텐서플로우-1.14.0 2.7, 3.3-3.7 GCC 4.8 바젤 0.24.1
텐서플로우-1.13.1 2.7, 3.3-3.7 GCC 4.8 바젤 0.19.2
텐서플로우-1.12.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0
텐서플로우-1.11.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0
텐서플로우-1.10.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0
텐서플로우-1.9.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.11.0
텐서플로우-1.8.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.10.0
텐서플로우-1.7.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.10.0
텐서플로우-1.6.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.9.0
텐서플로우-1.5.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.8.0
텐서플로우-1.4.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.5.4
텐서플로우-1.3.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5
텐서플로우-1.2.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5
텐서플로우-1.1.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2
텐서플로우-1.0.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2

GPU

버전 파이썬 버전 컴파일러 빌드 도구 cuDNN 쿠다
텐서플로우-2.15.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0 8.9 12.2
텐서플로우-2.14.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0 8.7 11.8
텐서플로우-2.13.0 3.8-3.11 클랭 16.0.0 바젤 5.3.0 8.6 11.8
텐서플로우-2.12.0 3.8-3.11 GCC 9.3.1 바젤 5.3.0 8.6 11.8
텐서플로우-2.11.0 3.7-3.10 GCC 9.3.1 바젤 5.3.0 8.1 11.2
텐서플로우-2.10.0 3.7-3.10 GCC 9.3.1 바젤 5.1.1 8.1 11.2
텐서플로우-2.9.0 3.7-3.10 GCC 9.3.1 바젤 5.0.0 8.1 11.2
텐서플로우-2.8.0 3.7-3.10 GCC 7.3.1 바젤 4.2.1 8.1 11.2
텐서플로우-2.7.0 3.7-3.9 GCC 7.3.1 바젤 3.7.2 8.1 11.2
텐서플로우-2.6.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2 8.1 11.2
텐서플로우-2.5.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2 8.1 11.2
텐서플로우-2.4.0 3.6-3.8 GCC 7.3.1 바젤 3.1.0 8.0 11.0
텐서플로우-2.3.0 3.5-3.8 GCC 7.3.1 바젤 3.1.0 7.6 10.1
텐서플로우-2.2.0 3.5-3.8 GCC 7.3.1 바젤 2.0.0 7.6 10.1
텐서플로우-2.1.0 2.7, 3.5-3.7 GCC 7.3.1 바젤 0.27.1 7.6 10.1
텐서플로우-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1 7.4 10.0
tensorflow_gpu-1.15.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1 7.4 10.0
tensorflow_gpu-1.14.0 2.7, 3.3-3.7 GCC 4.8 바젤 0.24.1 7.4 10.0
tensorflow_gpu-1.13.1 2.7, 3.3-3.7 GCC 4.8 바젤 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2 5.1 8

맥 OS

CPU

버전 파이썬 버전 컴파일러 빌드 도구
텐서플로우-2.15.0 3.9-3.11 xcode 10.15의 Clang 바젤 6.1.0
텐서플로우-2.14.0 3.9-3.11 xcode 10.15의 Clang 바젤 6.1.0
텐서플로우-2.13.0 3.8-3.11 xcode 10.15의 Clang 바젤 5.3.0
텐서플로우-2.12.0 3.8-3.11 xcode 10.15의 Clang 바젤 5.3.0
텐서플로우-2.11.0 3.7-3.10 xcode 10.14의 Clang 바젤 5.3.0
텐서플로우-2.10.0 3.7-3.10 xcode 10.14의 Clang 바젤 5.1.1
텐서플로우-2.9.0 3.7-3.10 xcode 10.14의 Clang 바젤 5.0.0
텐서플로우-2.8.0 3.7-3.10 xcode 10.14의 Clang 바젤 4.2.1
텐서플로우-2.7.0 3.7-3.9 xcode 10.11의 Clang 바젤 3.7.2
텐서플로우-2.6.0 3.6-3.9 xcode 10.11의 Clang 바젤 3.7.2
텐서플로우-2.5.0 3.6-3.9 xcode 10.11의 Clang 바젤 3.7.2
텐서플로우-2.4.0 3.6-3.8 xcode 10.3의 Clang 바젤 3.1.0
텐서플로우-2.3.0 3.5-3.8 xcode 10.1의 클랭 바젤 3.1.0
텐서플로우-2.2.0 3.5-3.8 xcode 10.1의 클랭 바젤 2.0.0
텐서플로우-2.1.0 2.7, 3.5-3.7 xcode 10.1의 클랭 바젤 0.27.1
텐서플로우-2.0.0 2.7, 3.5-3.7 xcode 10.1의 클랭 바젤 0.27.1
텐서플로우-2.0.0 2.7, 3.3-3.7 xcode 10.1의 클랭 바젤 0.26.1
텐서플로우-1.15.0 2.7, 3.3-3.7 xcode 10.1의 클랭 바젤 0.26.1
텐서플로우-1.14.0 2.7, 3.3-3.7 xcode의 클랭 바젤 0.24.1
텐서플로우-1.13.1 2.7, 3.3-3.7 xcode의 클랭 바젤 0.19.2
텐서플로우-1.12.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.15.0
텐서플로우-1.11.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.15.0
텐서플로우-1.10.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.15.0
텐서플로우-1.9.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.11.0
텐서플로우-1.8.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.10.1
텐서플로우-1.7.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.10.1
텐서플로우-1.6.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.8.1
텐서플로우-1.5.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.8.1
텐서플로우-1.4.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.5.4
텐서플로우-1.3.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.5
텐서플로우-1.2.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.5
텐서플로우-1.1.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2
텐서플로우-1.0.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2

GPU

버전 파이썬 버전 컴파일러 빌드 도구 cuDNN 쿠다
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2 5.1 8
,

소스에서 TensorFlow pip 패키지를 빌드하고 Ubuntu Linux 및 macOS에 설치합니다. 지침은 다른 시스템에서도 작동할 수 있지만 Ubuntu 및 macOS에서만 테스트되고 지원됩니다.

Linux 및 macOS용 설정

개발 환경을 구성하려면 다음 빌드 도구를 설치하세요.

Python 및 TensorFlow 패키지 종속 항목 설치

우분투

sudo apt install python3-dev python3-pip

맥 OS

Xcode 9.2 이상이 필요합니다.

Homebrew 패키지 관리자를 사용하여 설치합니다.

brew install python

TensorFlow pip 패키지 종속성을 설치합니다(가상 환경을 사용하는 경우 --user 인수 생략).

pip install -U --user pip numpy wheel packaging requests opt_einsum
pip install -U --user keras_preprocessing --no-deps

바젤 설치

TensorFlow를 빌드하려면 Bazel을 설치해야 합니다. Bazelisk 는 Bazel을 설치하는 쉬운 방법이며 TensorFlow에 적합한 Bazel 버전을 자동으로 다운로드합니다. 사용 편의성을 위해 Bazelisk를 PATHbazel 실행 파일로 추가하세요.

Bazelisk를 사용할 수 없는 경우 Bazel을 수동으로 설치할 수 있습니다. TensorFlow의 .bazelversion 파일에서 올바른 Bazel 버전을 설치했는지 확인하세요.

Clang은 LLVM 기반의 C++로 컴파일된 C/C++/Objective-C 컴파일러입니다. TensorFlow 2.13부터 TensorFlow를 빌드하는 기본 컴파일러입니다. 현재 지원되는 버전은 LLVM/Clang 16입니다.

LLVM Debian/Ubuntu nightly 패키지는 Linux에서 수동 설치를 위한 자동 설치 스크립트와 패키지를 제공합니다. 패키지 소스에 llvm apt 저장소를 수동으로 추가하는 경우 다음 명령을 실행해야 합니다.

sudo apt-get update && sudo apt-get install -y llvm-16 clang-16

또는 사전 빌드된 Clang + LLVM 16을 다운로드하여 압축을 풀 수 있습니다.

다음은 Debian/Ubuntu 운영 체제에서 다운로드한 Clang + LLVM 16 바이너리를 설정하기 위해 수행할 수 있는 단계의 예입니다.

  1. 원하는 대상 디렉터리로 변경합니다: cd <desired directory>

  2. 아카이브 파일 로드 및 추출...(아키텍처에 적합):

    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
    
    tar -xvf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
    
    

  3. 추출된 내용(디렉터리 및 파일)을 /usr 에 복사합니다(Sudo 권한이 필요할 수 있으며 올바른 디렉터리는 배포판에 따라 다를 수 있음). 이렇게 하면 Clang 및 LLVM이 효과적으로 설치되고 경로에 추가됩니다. 이전 설치가 있는 경우를 제외하고 아무것도 바꿀 필요가 없습니다. 이 경우 파일을 바꿔야 합니다:

    cp -r clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04/* /usr
    

  4. 획득한 Clang + LLVM 16 바이너리 버전 확인:

    clang --version
    

  5. 이제 /usr/bin/clang 새 clang의 실제 경로입니다. ./configure 스크립트를 실행하거나 환경 변수 CCBAZEL_COMPILER 이 경로로 수동으로 설정할 수 있습니다.

GPU 지원 설치(선택 사항, Linux에만 해당)

macOS에는 GPU 지원 이 없습니다 .

GPU에서 TensorFlow를 실행하는 데 필요한 드라이버와 추가 소프트웨어를 설치하려면 GPU 지원 가이드를 읽어보세요.

TensorFlow 소스 코드 다운로드

Git을 사용하여 TensorFlow 저장소를 복제합니다.

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

리포지토리는 기본적으로 master 개발 분기로 설정됩니다. 또한 릴리스 브랜치를 확인하여 빌드할 수도 있습니다.

git checkout branch_name  # r2.2, r2.3, etc.

빌드 구성

TensorFlow 빌드는 저장소 루트 디렉터리의 .bazelrc 파일로 구성됩니다. ./configure 또는 ./configure.py 스크립트를 사용하여 일반 설정을 조정할 수 있습니다.

저장소의 루트 디렉터리에서 ./configure 스크립트를 실행하세요. 이 스크립트는 TensorFlow 종속성의 위치를 ​​묻는 메시지를 표시하고 추가 빌드 구성 옵션(예: 컴파일러 플래그)을 요청합니다. 자세한 내용은 샘플 세션 섹션을 참조하세요.

./configure

이 스크립트의 Python 버전 ./configure.py 도 있습니다. 가상 환경을 사용하는 경우 python configure.py 환경 내 경로의 우선순위를 지정하는 반면, ./configure 환경 외부 경로의 우선순위를 지정합니다. 두 경우 모두 기본값을 변경할 수 있습니다.

샘플 세션

다음은 ./configure 스크립트의 샘플 실행을 보여줍니다(세션은 다를 수 있음).

구성 옵션

GPU 지원

GPU 지원을 위해 구성 중에 cuda=Y 설정하고 CUDA 및 cuDNN 버전을 지정합니다. 시스템에 여러 버전의 CUDA 또는 cuDNN이 설치된 경우 기본값을 사용하는 대신 버전을 명시적으로 설정하세요. ./configure 시스템의 CUDA 라이브러리에 대한 심볼릭 링크를 생성하므로 CUDA 라이브러리 경로를 업데이트하는 경우 빌드하기 전에 이 구성 단계를 다시 실행해야 합니다.

최적화

컴파일 최적화 플래그의 경우 기본값( -march=native )은 생성된 코드를 머신의 CPU 유형에 맞게 최적화합니다. 그러나 다른 CPU 유형에 대해 TensorFlow를 빌드하는 경우 보다 구체적인 최적화 플래그를 고려하세요. 예제는 GCC 매뉴얼을 확인하세요.

사전 구성된 구성

bazel build 명령에 추가할 수 있는 사전 구성된 빌드 구성이 몇 가지 있습니다. 예를 들면 다음과 같습니다.

  • --config=dbg - 디버그 정보로 빌드합니다. 자세한 내용은 CONTRIBUTING.md를 참조하세요.
  • --config=mkl 인텔® MKL-DNN 지원.
  • --config=monolithic —대부분 정적인 모놀리식 빌드를 위한 구성입니다.

pip 패키지 빌드 및 설치

pip 패키지는 두 단계로 빌드됩니다. bazel build 명령은 "패키지 빌더" 프로그램을 생성합니다. 그런 다음 package-builder를 실행하여 패키지를 생성합니다.

패키지 빌더 빌드

bazel build 사용하여 TensorFlow 2.x 패키지 빌더를 만듭니다.

bazel build [--config=option] //tensorflow/tools/pip_package:build_pip_package

Bazel 빌드 옵션

빌드 옵션은 Bazel 명령줄 참조를 참조하세요.

소스에서 TensorFlow를 빌드하면 많은 RAM이 사용될 수 있습니다. 시스템에 메모리가 제한된 경우 --local_ram_resources=2048 사용하여 Bazel의 RAM 사용량을 제한하세요.

공식 TensorFlow 패키지는 Manylinux2014 패키지 표준을 준수하는 Clang 도구 체인으로 구축되었습니다.

패키지 빌드

bazel build 명령은 build_pip_package 라는 실행 파일을 생성합니다. 이는 pip 패키지를 빌드하는 프로그램입니다. 아래와 같이 실행 파일을 실행하여 /tmp/tensorflow_pkg 디렉터리에 .whl 패키지를 빌드합니다.

릴리스 브랜치에서 빌드하려면 다음 안내를 따르세요.

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

마스터에서 빌드하려면 --nightly_flag 사용하여 올바른 종속성을 얻으세요.

./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg

동일한 소스 트리에서 CUDA 구성과 비 CUDA 구성을 모두 빌드할 수 있지만 동일한 소스 트리에서 이러한 두 구성 간에 전환할 때는 bazel clean 실행하는 것이 좋습니다.

패키지 설치

생성된 .whl 파일의 파일 이름은 TensorFlow 버전과 플랫폼에 따라 다릅니다. pip install 사용하여 패키지를 설치합니다. 예:

pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl

Docker Linux 빌드

TensorFlow의 Docker 개발 이미지는 소스에서 Linux 패키지를 빌드하기 위한 환경을 설정하는 쉬운 방법입니다. 이러한 이미지에는 TensorFlow를 빌드하는 데 필요한 소스 코드와 종속성이 이미 포함되어 있습니다. 설치 지침과 사용 가능한 이미지 태그 목록을 보려면 TensorFlow Docker 가이드 로 이동하세요.

CPU 전용

다음 예에서는 :devel 이미지를 사용하여 최신 TensorFlow 소스 코드에서 CPU 전용 패키지를 빌드합니다. 사용 가능한 TensorFlow -devel 태그는 Docker 가이드를 확인하세요.

최신 개발 이미지를 다운로드하고 pip 패키지를 빌드하는 데 사용할 Docker 컨테이너를 시작합니다.

docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel bash

git pull  # within the container, download the latest source code

위의 docker run 명령은 소스 트리의 루트인 /tensorflow_src 디렉터리에서 셸을 시작합니다. 컨테이너의 /mnt 디렉터리에 호스트의 현재 디렉터리를 마운트하고 환경 변수(권한을 설정하는 데 사용됨 - Docker가 이를 까다롭게 만들 수 있음)를 통해 호스트 사용자의 정보를 컨테이너에 전달합니다.

또는 컨테이너 내에 TensorFlow의 호스트 복사본을 빌드하려면 컨테이너의 /tensorflow 디렉터리에 호스트 소스 트리를 마운트합니다.

docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \
    -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash

소스 트리가 설정되면 컨테이너의 가상 환경 내에 TensorFlow 패키지를 빌드합니다.

  1. 선택 사항: 빌드 구성 - 사용자에게 빌드 구성 질문에 답하라는 메시지가 표시됩니다.
  2. pip 패키지를 생성하는 데 사용되는 도구를 빌드합니다.
  3. 도구를 실행하여 pip 패키지를 생성합니다.
  4. 컨테이너 외부에 대한 파일의 소유권 권한을 조정합니다.
./configure  # if necessary

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt  # create package

chown $HOST_PERMS /mnt/tensorflow-version-tags.whl

컨테이너 내에 패키지를 설치하고 확인합니다.

pip uninstall tensorflow  # remove current version

pip install /mnt/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"

호스트 시스템에서 TensorFlow pip 패키지는 현재 디렉터리(호스트 사용자 권한 포함)에 있습니다 ./tensorflow- version - tags .whl

GPU 지원

호스트 시스템에는 NVIDIA® 드라이버 만 필요하므로 Docker는 TensorFlow에 대한 GPU 지원을 구축하는 가장 쉬운 방법입니다( NVIDIA® CUDA® Toolkit을 설치할 필요가 없음). nvidia-docker를 설정하려면 GPU 지원 가이드 및 TensorFlow Docker 가이드를 참조하세요(Linux에만 해당).

다음 예에서는 TensorFlow :devel-gpu 이미지를 다운로드하고 nvidia-docker 사용하여 GPU 지원 컨테이너를 실행합니다. 이 개발 이미지는 GPU를 지원하는 pip 패키지를 빌드하도록 구성되었습니다.

docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel-gpu bash
git pull  # within the container, download the latest source code

그런 다음 컨테이너의 가상 환경 내에서 GPU를 지원하는 TensorFlow 패키지를 빌드합니다.

./configure  # if necessary

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt  # create package

chown $HOST_PERMS /mnt/tensorflow-version-tags.whl

컨테이너 내에 패키지를 설치 및 확인하고 GPU를 확인합니다.

pip uninstall tensorflow  # remove current version

pip install /mnt/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"

테스트된 빌드 구성

리눅스

CPU

버전 파이썬 버전 컴파일러 빌드 도구
텐서플로우-2.15.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0
텐서플로우-2.14.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0
텐서플로우-2.13.0 3.8-3.11 클랭 16.0.0 바젤 5.3.0
텐서플로우-2.12.0 3.8-3.11 GCC 9.3.1 바젤 5.3.0
텐서플로우-2.11.0 3.7-3.10 GCC 9.3.1 바젤 5.3.0
텐서플로우-2.10.0 3.7-3.10 GCC 9.3.1 바젤 5.1.1
텐서플로우-2.9.0 3.7-3.10 GCC 9.3.1 바젤 5.0.0
텐서플로우-2.8.0 3.7-3.10 GCC 7.3.1 바젤 4.2.1
텐서플로우-2.7.0 3.7-3.9 GCC 7.3.1 바젤 3.7.2
텐서플로우-2.6.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2
텐서플로우-2.5.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2
텐서플로우-2.4.0 3.6-3.8 GCC 7.3.1 바젤 3.1.0
텐서플로우-2.3.0 3.5-3.8 GCC 7.3.1 바젤 3.1.0
텐서플로우-2.2.0 3.5-3.8 GCC 7.3.1 바젤 2.0.0
텐서플로우-2.1.0 2.7, 3.5-3.7 GCC 7.3.1 바젤 0.27.1
텐서플로우-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1
텐서플로우-1.15.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1
텐서플로우-1.14.0 2.7, 3.3-3.7 GCC 4.8 바젤 0.24.1
텐서플로우-1.13.1 2.7, 3.3-3.7 GCC 4.8 바젤 0.19.2
텐서플로우-1.12.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0
텐서플로우-1.11.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0
텐서플로우-1.10.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0
텐서플로우-1.9.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.11.0
텐서플로우-1.8.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.10.0
텐서플로우-1.7.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.10.0
텐서플로우-1.6.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.9.0
텐서플로우-1.5.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.8.0
텐서플로우-1.4.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.5.4
텐서플로우-1.3.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5
텐서플로우-1.2.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5
텐서플로우-1.1.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2
텐서플로우-1.0.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2

GPU

버전 파이썬 버전 컴파일러 빌드 도구 cuDNN 쿠다
텐서플로우-2.15.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0 8.9 12.2
텐서플로우-2.14.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0 8.7 11.8
텐서플로우-2.13.0 3.8-3.11 클랭 16.0.0 바젤 5.3.0 8.6 11.8
텐서플로우-2.12.0 3.8-3.11 GCC 9.3.1 바젤 5.3.0 8.6 11.8
텐서플로우-2.11.0 3.7-3.10 GCC 9.3.1 바젤 5.3.0 8.1 11.2
텐서플로우-2.10.0 3.7-3.10 GCC 9.3.1 바젤 5.1.1 8.1 11.2
텐서플로우-2.9.0 3.7-3.10 GCC 9.3.1 바젤 5.0.0 8.1 11.2
텐서플로우-2.8.0 3.7-3.10 GCC 7.3.1 바젤 4.2.1 8.1 11.2
텐서플로우-2.7.0 3.7-3.9 GCC 7.3.1 바젤 3.7.2 8.1 11.2
텐서플로우-2.6.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2 8.1 11.2
텐서플로우-2.5.0 3.6-3.9 GCC 7.3.1 바젤 3.7.2 8.1 11.2
텐서플로우-2.4.0 3.6-3.8 GCC 7.3.1 바젤 3.1.0 8.0 11.0
텐서플로우-2.3.0 3.5-3.8 GCC 7.3.1 바젤 3.1.0 7.6 10.1
텐서플로우-2.2.0 3.5-3.8 GCC 7.3.1 바젤 2.0.0 7.6 10.1
텐서플로우-2.1.0 2.7, 3.5-3.7 GCC 7.3.1 바젤 0.27.1 7.6 10.1
텐서플로우-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1 7.4 10.0
tensorflow_gpu-1.15.0 2.7, 3.3-3.7 GCC 7.3.1 바젤 0.26.1 7.4 10.0
tensorflow_gpu-1.14.0 2.7, 3.3-3.7 GCC 4.8 바젤 0.24.1 7.4 10.0
tensorflow_gpu-1.13.1 2.7, 3.3-3.7 GCC 4.8 바젤 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 GCC 4.8 바젤 0.4.2 5.1 8

맥 OS

CPU

버전 파이썬 버전 컴파일러 빌드 도구
텐서플로우-2.15.0 3.9-3.11 xcode 10.15의 Clang 바젤 6.1.0
텐서플로우-2.14.0 3.9-3.11 xcode 10.15의 Clang 바젤 6.1.0
텐서플로우-2.13.0 3.8-3.11 xcode 10.15의 Clang 바젤 5.3.0
텐서플로우-2.12.0 3.8-3.11 xcode 10.15의 Clang 바젤 5.3.0
텐서플로우-2.11.0 3.7-3.10 xcode 10.14의 Clang 바젤 5.3.0
텐서플로우-2.10.0 3.7-3.10 xcode 10.14의 Clang 바젤 5.1.1
텐서플로우-2.9.0 3.7-3.10 xcode 10.14의 Clang 바젤 5.0.0
텐서플로우-2.8.0 3.7-3.10 xcode 10.14의 Clang 바젤 4.2.1
텐서플로우-2.7.0 3.7-3.9 xcode 10.11의 Clang 바젤 3.7.2
텐서플로우-2.6.0 3.6-3.9 xcode 10.11의 Clang 바젤 3.7.2
텐서플로우-2.5.0 3.6-3.9 xcode 10.11의 Clang 바젤 3.7.2
텐서플로우-2.4.0 3.6-3.8 xcode 10.3의 Clang 바젤 3.1.0
텐서플로우-2.3.0 3.5-3.8 xcode 10.1의 클랭 바젤 3.1.0
텐서플로우-2.2.0 3.5-3.8 xcode 10.1의 클랭 바젤 2.0.0
텐서플로우-2.1.0 2.7, 3.5-3.7 xcode 10.1의 클랭 바젤 0.27.1
텐서플로우-2.0.0 2.7, 3.5-3.7 xcode 10.1의 클랭 바젤 0.27.1
텐서플로우-2.0.0 2.7, 3.3-3.7 xcode 10.1의 클랭 바젤 0.26.1
텐서플로우-1.15.0 2.7, 3.3-3.7 xcode 10.1의 클랭 바젤 0.26.1
텐서플로우-1.14.0 2.7, 3.3-3.7 xcode의 클랭 바젤 0.24.1
텐서플로우-1.13.1 2.7, 3.3-3.7 xcode의 클랭 바젤 0.19.2
텐서플로우-1.12.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.15.0
텐서플로우-1.11.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.15.0
텐서플로우-1.10.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.15.0
텐서플로우-1.9.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.11.0
텐서플로우-1.8.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.10.1
텐서플로우-1.7.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.10.1
텐서플로우-1.6.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.8.1
텐서플로우-1.5.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.8.1
텐서플로우-1.4.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.5.4
텐서플로우-1.3.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.5
텐서플로우-1.2.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.5
텐서플로우-1.1.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2
텐서플로우-1.0.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2

GPU

버전 파이썬 버전 컴파일러 빌드 도구 cuDNN 쿠다
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 xcode의 클랭 바젤 0.4.2 5.1 8