สร้างแพ็กเกจ pip ของ TensorFlow จากซอร์สโค้ดและติดตั้งบน Ubuntu Linux และ macOS แม้ว่าคำแนะนำนี้อาจใช้ได้กับระบบอื่น แต่ได้รับการทดสอบและรองรับเฉพาะบน Ubuntu และ macOS เท่านั้น
การตั้งค่าสำหรับ Linux และ macOS
ติดตั้งเครื่องมือสร้างต่อไปนี้เพื่อกำหนดค่าสภาพแวดล้อมการพัฒนาของคุณ
ติดตั้ง Python และการอ้างอิงแพ็คเกจ TensorFlow
อูบุนตู
sudo apt install python3-dev python3-pipแมคโอเอส
ต้องใช้ Xcode 9.2 ขึ้นไป
ติดตั้งโดยใช้ตัวจัดการแพ็คเกจ Homebrew :
brew install python ติดตั้งแพ็คเกจ pip ของ TensorFlow (หากใช้สภาพแวดล้อมเสมือน ให้ละเว้นอาร์กิวเมนต์ --user )
pip install -U --user pipติดตั้ง Bazel
ในการสร้าง TensorFlow คุณจะต้องติดตั้ง Bazel ซึ่ง Bazelisk เป็นวิธีง่ายๆ ในการติดตั้ง Bazel และจะดาวน์โหลด Bazel เวอร์ชันที่ถูกต้องสำหรับ TensorFlow โดยอัตโนมัติ เพื่อความสะดวกในการใช้งาน ให้เพิ่ม Bazelisk เป็นไฟล์ปฏิบัติการ bazel ใน PATH ของคุณ
หากไม่มี Bazelisk คุณสามารถ ติดตั้ง Bazel ด้วยตนเองได้ ตรวจสอบให้แน่ใจว่าคุณติดตั้ง Bazel เวอร์ชันที่ถูกต้องจากไฟล์ . bazelversion ของ TensorFlow
ติดตั้ง Clang (แนะนำเฉพาะ Linux เท่านั้น)
Clang คือคอมไพเลอร์ C/C++/Objective-C ที่คอมไพเลอร์ด้วยภาษา C++ ที่ใช้ LLVM เป็นคอมไพเลอร์เริ่มต้นสำหรับสร้าง TensorFlow โดยเริ่มตั้งแต่ TensorFlow 2.13 เป็นต้นไป เวอร์ชันที่รองรับปัจจุบันคือ LLVM/Clang 17
แพ็กเกจ LLVM Debian/Ubuntu nightly มีสคริปต์ติดตั้งอัตโนมัติและแพ็กเกจสำหรับการติดตั้งด้วยตนเองบน Linux โปรดตรวจสอบให้แน่ใจว่าคุณรันคำสั่งต่อไปนี้หากคุณเพิ่มที่เก็บ llvm apt ลงในซอร์สของแพ็กเกจด้วยตนเอง:
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17 ตอนนี้ /usr/lib/llvm-17/bin/clang คือเส้นทางจริงไปยัง clang ในกรณีนี้
นอกจากนี้คุณสามารถดาวน์โหลดและแตกไฟล์ Clang + LLVM 17 ที่สร้างไว้ล่วงหน้าได้
ด้านล่างนี้เป็นตัวอย่างขั้นตอนที่คุณสามารถดำเนินการเพื่อตั้งค่าไฟล์ไบนารี Clang + LLVM 17 ที่ดาวน์โหลดบนระบบปฏิบัติการ Debian/Ubuntu:
เปลี่ยนเป็นไดเร็กทอรีปลายทางที่ต้องการ:
cd <desired directory>โหลดและแตกไฟล์เก็บถาวร...(เหมาะกับสถาปัตยกรรมของคุณ):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xztar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xzคัดลอกเนื้อหาที่แยกออกมา (ไดเร็กทอรีและไฟล์) ไปที่
/usr(คุณอาจต้องใช้สิทธิ์ sudo และไดเร็กทอรีที่ถูกต้องอาจแตกต่างกันไปตามรุ่น) การทำเช่นนี้จะติดตั้ง Clang และ LLVM และเพิ่มลงในพาธ คุณไม่จำเป็นต้องแทนที่สิ่งใด เว้นแต่คุณจะมีการติดตั้งไว้ก่อนหน้านี้ ซึ่งในกรณีนี้คุณควรแทนที่ไฟล์:cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usrตรวจสอบเวอร์ชันไบนารี Clang + LLVM 17 ที่ได้รับ:
clang --versionตอนนี้
/usr/bin/clangคือพาธจริงไปยัง clang ใหม่ของคุณแล้ว คุณสามารถรันสคริปต์./configureหรือตั้งค่าตัวแปรสภาพแวดล้อมCCและBAZEL_COMPILERด้วยตนเองไปยังพาธนี้ได้
ติดตั้งการรองรับ GPU (ทางเลือก, Linux เท่านั้น)
ไม่มี การรองรับ GPU สำหรับ macOS
อ่านคำแนะนำ การสนับสนุน GPU เพื่อติดตั้งไดรเวอร์และซอฟต์แวร์เพิ่มเติมที่จำเป็นสำหรับการรัน TensorFlow บน GPU
ดาวน์โหลดซอร์สโค้ด TensorFlow
ใช้ Git เพื่อโคลน ที่เก็บข้อมูล TensorFlow :
git clone https://github.com/tensorflow/tensorflow.gitcd tensorflow
รีโพจะตั้งค่าเริ่มต้นเป็นสาขาการพัฒนา master คุณยังสามารถตรวจสอบ สาขาการเผยแพร่ เพื่อสร้างได้:
git checkout branch_name # r2.2, r2.3, etc.
กำหนดค่าการสร้าง
การสร้าง TensorFlow ได้รับการกำหนดค่าโดยไฟล์ .bazelrc ในไดเร็กทอรีรูทของที่เก็บ สคริปต์ . ./configure configure หรือ ./configure.py สามารถใช้เพื่อปรับการตั้งค่าทั่วไปได้
โปรดเรียกใช้สคริปต์ ./configure จากไดเร็กทอรีรูทของที่เก็บ สคริปต์นี้จะแจ้งให้คุณทราบตำแหน่งของการอ้างอิง TensorFlow และขอตัวเลือกการกำหนดค่าการสร้างเพิ่มเติม (เช่น แฟล็กคอมไพเลอร์) ดูรายละเอียดเพิ่มเติมในหัวข้อ เซสชันตัวอย่าง
./configure
นอกจากนี้ยังมีสคริปต์ . ./configure.py เวอร์ชัน Python อีกด้วย หากใช้สภาพแวดล้อมเสมือน python configure.py จะจัดลำดับความสำคัญของเส้นทางภายในสภาพแวดล้อม ในขณะที่ ./configure configure จะจัดลำดับความสำคัญของเส้นทางภายนอกสภาพแวดล้อม ในทั้งสองกรณี คุณสามารถเปลี่ยนค่าเริ่มต้นได้
ตัวอย่างเซสชั่น
ต่อไปนี้แสดงตัวอย่างการรันสคริปต์ ./configure (เซสชันของคุณอาจแตกต่างกัน):
ตัวเลือกการกำหนดค่า
รองรับ GPU
จาก v.2.18.0
สำหรับ การรองรับ GPU ให้ตั้งค่า cuda=Y ระหว่างการกำหนดค่า และระบุเวอร์ชันของ CUDA และ cuDNN หากจำเป็น Bazel จะดาวน์โหลดแพ็กเกจ CUDA และ CUDNN โดยอัตโนมัติ หรือชี้ไปที่การแจกจ่าย CUDA/CUDNN/NCCL บนระบบไฟล์ภายใน หากจำเป็น
ก่อนเวอร์ชัน 2.18.0
สำหรับ การรองรับ GPU ให้ตั้งค่า cuda=Y ระหว่างการกำหนดค่า และระบุเวอร์ชันของ CUDA และ cuDNN หากระบบของคุณติดตั้ง CUDA หรือ cuDNN หลายเวอร์ชัน ให้ตั้งค่าเวอร์ชันนั้นอย่างชัดเจนแทนที่จะใช้ค่าเริ่มต้น . ./configure configure จะสร้างลิงก์สัญลักษณ์ไปยังไลบรารี CUDA ของระบบ ดังนั้น หากคุณอัปเดตพาธไลบรารี CUDA ของคุณ ขั้นตอนการกำหนดค่านี้จะต้องถูกดำเนินการอีกครั้งก่อนการสร้าง
การเพิ่มประสิทธิภาพ
สำหรับแฟล็กการปรับแต่งประสิทธิภาพการคอมไพล์ ค่าเริ่มต้น ( -march=native ) จะปรับแต่งโค้ดที่สร้างขึ้นให้เหมาะกับประเภท CPU ของเครื่องของคุณ อย่างไรก็ตาม หากกำลังสร้าง TensorFlow สำหรับประเภท CPU อื่น โปรดพิจารณาแฟล็กการปรับแต่งประสิทธิภาพที่เฉพาะเจาะจงมากขึ้น โปรดตรวจสอบ คู่มือ GCC เพื่อดูตัวอย่าง
การกำหนดค่าล่วงหน้า
มีการกำหนดค่าการสร้างล่วงหน้าบางส่วนที่สามารถเพิ่มลงในคำสั่ง bazel build ได้ ตัวอย่างเช่น:
-
--config=dbg— สร้างด้วยข้อมูลการดีบัก ดูรายละเอียดเพิ่มเติม ในไฟล์ CONTRIBUTING.md -
--config=mkl—รองรับ Intel® MKL-DNN -
--config=monolithic— การกำหนดค่าสำหรับการสร้างแบบโมโนลิธิกส่วนใหญ่แบบคงที่
สร้างและติดตั้งแพ็กเกจ pip
ตัวเลือกการสร้าง Bazel
ดูที่ การอ้างอิงบรรทัดคำสั่ง Bazel เพื่อดู ตัวเลือกการสร้าง
การสร้าง TensorFlow จากซอร์สโค้ดอาจใช้ RAM จำนวนมาก หากระบบของคุณมีหน่วยความจำจำกัด ให้จำกัดการใช้ RAM ของ Bazel ด้วยคำสั่ง --local_ram_resources=2048
แพ็คเกจ TensorFlow อย่างเป็นทางการ ถูกสร้างขึ้นด้วยเครื่องมือ Clang ที่สอดคล้องกับมาตรฐานแพ็คเกจ manylinux2014
สร้างแพ็คเกจ
ในการสร้างแพ็กเกจ pip คุณต้องระบุแฟล็ก --repo_env=WHEEL_NAME แพ็กเกจจะถูกสร้างขึ้นตามชื่อที่ให้มา เช่น:
ในการสร้างแพ็คเกจ CPU ของ Tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu
ในการสร้างแพ็คเกจ GPU ของ Tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
ในการสร้างแพ็คเกจ Tensorflow TPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
ในการสร้างแพ็กเกจรายคืน ให้ตั้งค่า tf_nightly แทน tensorflow เช่น เพื่อสร้างแพ็กเกจ CPU รายคืน:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tf_nightly_cpu
ผลลัพธ์ที่ได้คือล้อที่สร้างขึ้นจะอยู่ใน
bazel-bin/tensorflow/tools/pip_package/wheel_house/
ติดตั้งแพ็กเกจ
ชื่อไฟล์ .whl ที่สร้างขึ้นจะขึ้นอยู่กับเวอร์ชัน TensorFlow และแพลตฟอร์มของคุณ ใช้ pip install เพื่อติดตั้งแพ็กเกจ เช่น:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Docker Linux สร้าง
อิมเมจการพัฒนา Docker ของ TensorFlow เป็นวิธีง่ายๆ ในการตั้งค่าสภาพแวดล้อมสำหรับการสร้างแพ็กเกจ Linux จากซอร์สโค้ด อิมเมจเหล่านี้มีซอร์สโค้ดและส่วนอ้างอิงที่จำเป็นสำหรับการสร้าง TensorFlow อยู่แล้ว ไปที่ คู่มือ TensorFlow Docker เพื่อดูคำแนะนำในการติดตั้งและ รายการแท็กอิมเมจที่พร้อมใช้งาน
เฉพาะ CPU
ตัวอย่างต่อไปนี้ใช้อิมเมจ :devel เพื่อสร้างแพ็กเกจ CPU อย่างเดียวจากซอร์สโค้ด TensorFlow เวอร์ชันล่าสุด ดูแท็ก -devel ของ TensorFlow ที่มีอยู่ใน คู่มือ Docker
ดาวน์โหลดภาพการพัฒนาล่าสุดและเริ่มต้นคอนเทนเนอร์ Docker ที่คุณจะใช้ในการสร้างแพ็คเกจ pip :
docker pull tensorflow/tensorflow:develdocker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel bashgit 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 ภายในสภาพแวดล้อมเสมือนของคอนเทนเนอร์:
- ทางเลือก: กำหนดค่าการสร้าง — ตัวเลือกนี้จะแจ้งให้ผู้ใช้ตอบคำถามเกี่ยวกับการกำหนดค่าการสร้าง
- สร้างแพ็กเกจ pip
- ปรับเปลี่ยนสิทธิ์การเป็นเจ้าของไฟล์สำหรับภายนอกคอนเทนเนอร์
./configure # if necessarybazel build //tensorflow/tools/pip_package:wheel \ --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
ติดตั้งและตรวจสอบแพ็คเกจภายในคอนเทนเนอร์:
pip uninstall tensorflow # remove current versionpip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whlcd /tmp # don't import from source directorypython -c "import tensorflow as tf; print(tf.__version__)"
บนเครื่องโฮสต์ของคุณ แพ็ก เกจ pip ของ TensorFlow อยู่ในไดเร็กทอรีปัจจุบัน (พร้อมสิทธิ์ผู้ใช้โฮสต์): ./tensorflow- version - tags .whl
รองรับ GPU
Docker เป็นวิธีที่ง่ายที่สุดในการสร้างการรองรับ GPU สำหรับ TensorFlow เนื่องจากเครื่อง โฮสต์ ต้องการเพียง ไดรเวอร์ NVIDIA® (ไม่จำเป็นต้องติดตั้ง NVIDIA® CUDA® Toolkit ) โปรดดู คู่มือการรองรับ GPU และ คู่มือ TensorFlow Docker เพื่อตั้งค่า nvidia-docker (เฉพาะ Linux เท่านั้น)
ตัวอย่างต่อไปนี้จะดาวน์โหลดอิมเมจ TensorFlow :devel-gpu และใช้ nvidia-docker เพื่อรันคอนเทนเนอร์ที่เปิดใช้งาน GPU อิมเมจการพัฒนานี้ได้รับการกำหนดค่าให้สร้างแพ็กเกจ pip ที่รองรับ GPU:
docker pull tensorflow/tensorflow:devel-gpudocker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel-gpu bashgit pull # within the container, download the latest source code
จากนั้นภายในสภาพแวดล้อมเสมือนของคอนเทนเนอร์ ให้สร้างแพ็คเกจ TensorFlow พร้อมการรองรับ GPU:
./configure # if necessarybazel build //tensorflow/tools/pip_package:wheel \ --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow --config=cuda \ --config=cuda_wheel --config=optchown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
ติดตั้งและตรวจสอบแพ็คเกจภายในคอนเทนเนอร์และตรวจสอบ GPU:
pip uninstall tensorflow # remove current versionpip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whlcd /tmp # don't import from source directorypython -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"
ทดสอบการกำหนดค่าการสร้าง
ลินุกซ์
ซีพียู
| เวอร์ชัน | เวอร์ชัน Python | คอมไพเลอร์ | สร้างเครื่องมือ |
|---|---|---|---|
| เทนเซอร์โฟลว์-2.20.0 | 3.9-3.13 | แคล้ง 18.1.8 | บาเซล 7.4.1 |
| เทนเซอร์โฟลว์-2.19.0 | 3.9-3.12 | แคล้ง 18.1.8 | บาเซล 6.5.0 |
| เทนเซอร์โฟลว์-2.18.0 | 3.9-3.12 | แคลง 17.0.6 | บาเซล 6.5.0 |
| เทนเซอร์โฟลว์-2.17.0 | 3.9-3.12 | แคลง 17.0.6 | บาเซล 6.5.0 |
| เทนเซอร์โฟลว์-2.16.1 | 3.9-3.12 | แคลง 17.0.6 | บาเซล 6.5.0 |
| เทนเซอร์โฟลว์-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 | จีซีซี 4.8 | บาเซล 0.24.1 |
| เทนเซอร์โฟลว์-1.13.1 | 2.7, 3.3-3.7 | จีซีซี 4.8 | บาเซล 0.19.2 |
| เทนเซอร์โฟลว์-1.12.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.15.0 |
| เทนเซอร์โฟลว์-1.11.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.15.0 |
| เทนเซอร์โฟลว์-1.10.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.15.0 |
| เทนเซอร์โฟลว์-1.9.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.11.0 |
| เทนเซอร์โฟลว์-1.8.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.10.0 |
| เทนเซอร์โฟลว์-1.7.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.10.0 |
| เทนเซอร์โฟลว์-1.6.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.9.0 |
| เทนเซอร์โฟลว์-1.5.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.8.0 |
| เทนเซอร์โฟลว์-1.4.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.5.4 |
| เทนเซอร์โฟลว์-1.3.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.5 |
| เทนเซอร์โฟลว์-1.2.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.5 |
| เทนเซอร์โฟลว์-1.1.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.2 |
| เทนเซอร์โฟลว์-1.0.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.2 |
จีพียู
| เวอร์ชัน | เวอร์ชัน Python | คอมไพเลอร์ | สร้างเครื่องมือ | cuDNN | คูด้า |
|---|---|---|---|---|---|
| เทนเซอร์โฟลว์-2.20.0 | 3.9-3.13 | แคล้ง 18.1.8 | บาเซล 7.4.1 | 9.3 | 12.5 |
| เทนเซอร์โฟลว์-2.19.0 | 3.9-3.12 | แคล้ง 18.1.8 | บาเซล 6.5.0 | 9.3 | 12.5 |
| เทนเซอร์โฟลว์-2.18.0 | 3.9-3.12 | แคลง 17.0.6 | บาเซล 6.5.0 | 9.3 | 12.5 |
| เทนเซอร์โฟลว์-2.17.0 | 3.9-3.12 | แคลง 17.0.6 | บาเซล 6.5.0 | 8.9 | 12.3 |
| เทนเซอร์โฟลว์-2.16.1 | 3.9-3.12 | แคลง 17.0.6 | บาเซล 6.5.0 | 8.9 | 12.3 |
| เทนเซอร์โฟลว์-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 |
| เทนเซอร์โฟลว์_จีพียู-1.15.0 | 2.7, 3.3-3.7 | GCC 7.3.1 | บาเซล 0.26.1 | 7.4 | 10.0 |
| เทนเซอร์โฟลว์_จีพียู-1.14.0 | 2.7, 3.3-3.7 | จีซีซี 4.8 | บาเซล 0.24.1 | 7.4 | 10.0 |
| เทนเซอร์โฟลว์_จีพียู-1.13.1 | 2.7, 3.3-3.7 | จีซีซี 4.8 | บาเซล 0.19.2 | 7.4 | 10.0 |
| เทนเซอร์โฟลว์_จีพียู-1.12.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.15.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.11.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.15.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.10.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.15.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.9.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.11.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.8.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.10.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.7.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.9.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.6.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.9.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.5.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.8.0 | 7 | 9 |
| เทนเซอร์โฟลว์_จีพียู-1.4.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.5.4 | 6 | 8 |
| เทนเซอร์โฟลว์_จีพียู-1.3.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.5 | 6 | 8 |
| เทนเซอร์โฟลว์_จีพียู-1.2.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.5 | 5.1 | 8 |
| เทนเซอร์โฟลว์_จีพียู-1.1.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.2 | 5.1 | 8 |
| เทนเซอร์โฟลว์_จีพียู-1.0.0 | 2.7, 3.3-3.6 | จีซีซี 4.8 | บาเซล 0.4.2 | 5.1 | 8 |
แมคโอเอส
ซีพียู
| เวอร์ชัน | เวอร์ชัน Python | คอมไพเลอร์ | สร้างเครื่องมือ |
|---|---|---|---|
| เทนเซอร์โฟลว์-2.16.1 | 3.9-3.12 | Clang จาก Xcode 13.6 | บาเซล 6.5.0 |
| เทนเซอร์โฟลว์-2.15.0 | 3.9-3.11 | เสียงดังกราวจาก xcode 10.15 | บาเซล 6.1.0 |
| เทนเซอร์โฟลว์-2.14.0 | 3.9-3.11 | เสียงดังกราวจาก xcode 10.15 | บาเซล 6.1.0 |
| เทนเซอร์โฟลว์-2.13.0 | 3.8-3.11 | เสียงดังกราวจาก xcode 10.15 | บาเซล 5.3.0 |
| เทนเซอร์โฟลว์-2.12.0 | 3.8-3.11 | เสียงดังกราวจาก xcode 10.15 | บาเซล 5.3.0 |
| เทนเซอร์โฟลว์-2.11.0 | 3.7-3.10 | เสียงดังกราวจาก xcode 10.14 | บาเซล 5.3.0 |
| เทนเซอร์โฟลว์-2.10.0 | 3.7-3.10 | เสียงดังกราวจาก xcode 10.14 | บาเซล 5.1.1 |
| เทนเซอร์โฟลว์-2.9.0 | 3.7-3.10 | เสียงดังกราวจาก xcode 10.14 | บาเซล 5.0.0 |
| เทนเซอร์โฟลว์-2.8.0 | 3.7-3.10 | เสียงดังกราวจาก xcode 10.14 | บาเซล 4.2.1 |
| เทนเซอร์โฟลว์-2.7.0 | 3.7-3.9 | เสียงดังกราวจาก xcode 10.11 | บาเซล 3.7.2 |
| เทนเซอร์โฟลว์-2.6.0 | 3.6-3.9 | เสียงดังกราวจาก xcode 10.11 | บาเซล 3.7.2 |
| เทนเซอร์โฟลว์-2.5.0 | 3.6-3.9 | เสียงดังกราวจาก xcode 10.11 | บาเซล 3.7.2 |
| เทนเซอร์โฟลว์-2.4.0 | 3.6-3.8 | เสียงดังกราวจาก xcode 10.3 | บาเซล 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 |
จีพียู
| เวอร์ชัน | เวอร์ชัน Python | คอมไพเลอร์ | สร้างเครื่องมือ | cuDNN | คูด้า |
|---|---|---|---|---|---|
| เทนเซอร์โฟลว์_จีพียู-1.1.0 | 2.7, 3.3-3.6 | เสียงดังกราวจาก xcode | บาเซล 0.4.2 | 5.1 | 8 |
| เทนเซอร์โฟลว์_จีพียู-1.0.0 | 2.7, 3.3-3.6 | เสียงดังกราวจาก xcode | บาเซล 0.4.2 | 5.1 | 8 |