สร้างจากแหล่งที่มาบน Windows

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

สร้างแพ็คเกจ TensorFlow pip จากซอร์สและติดตั้งบน Windows

การตั้งค่าสำหรับ Windows

ติดตั้งเครื่องมือสร้างต่อไปนี้เพื่อกำหนดค่าสภาพแวดล้อมการพัฒนา Windows ของคุณ

ติดตั้ง Python และการอ้างอิงแพ็คเกจ TensorFlow

ติดตั้ง Python 3.7+ รุ่น 64 บิตสำหรับ Windows เลือก pip เป็นคุณสมบัติเสริมและเพิ่มไปยังตัวแปรสภาพแวดล้อม %PATH% ของคุณ

ติดตั้งการพึ่งพาแพ็คเกจ TensorFlow pip :

pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps

การขึ้นต่อกันจะแสดงอยู่ใน setup.py ภายใต้ REQUIRED_PACKAGES

ติดตั้ง Bazel

ติดตั้ง Bazel ซึ่งเป็นเครื่องมือสร้างที่ใช้ในการรวบรวม TensorFlow สำหรับเวอร์ชัน Bazel โปรดดู การกำหนดค่าบิลด์ที่ทดสอบแล้ว สำหรับ Windows กำหนดค่า Bazel เพื่อ สร้าง C++

เพิ่มตำแหน่งของโปรแกรมเรียกทำงาน Bazel ให้กับตัวแปรสภาพแวดล้อม %PATH% ของคุณ

ติดตั้ง MSYS2

ติดตั้ง MSYS2 สำหรับเครื่องมือ bin ที่จำเป็นในการสร้าง TensorFlow หากติดตั้ง MSYS2 ไว้ที่ C:\msys64 ให้เพิ่ม C:\msys64\usr\bin ไปยังตัวแปรสภาพแวดล้อม %PATH% ของคุณ จากนั้นใช้ cmd.exe เรียกใช้:

pacman -S git patch unzip

ติดตั้งเครื่องมือสร้าง Visual C++ 2019

ติดตั้ง เครื่องมือสร้าง Visual C++ 2019 สิ่งนี้มาพร้อมกับ Visual Studio 2019 แต่สามารถติดตั้งแยกต่างหาก:

  1. ไปที่การ ดาวน์โหลด Visual Studio
  2. เลือก Redistributables และสร้างเครื่องมือ
  3. ดาวน์โหลดและติดตั้ง:
    • Microsoft Visual C++ 2019 เผยแพร่ต่อได้
    • เครื่องมือสร้าง Microsoft 2019

ติดตั้งการสนับสนุน GPU (ไม่บังคับ)

ดูคู่มือ การสนับสนุน Windows GPU เพื่อติดตั้งไดรเวอร์และซอฟต์แวร์เพิ่มเติมที่จำเป็นสำหรับการเรียกใช้ TensorFlow บน GPU

ดาวน์โหลดซอร์สโค้ด TensorFlow

ใช้ Git เพื่อโคลนที่ เก็บ TensorFlow (ติดตั้ง git กับ MSYS2):

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

repo เริ่มต้นที่สาขาการพัฒนา master คุณยังสามารถตรวจสอบ สาขาการเผยแพร่ เพื่อสร้าง:

git checkout branch_name  # r1.9, r1.10, etc.

ทางเลือก: กำหนดค่าการสร้าง

การสร้าง TensorFlow ได้รับการกำหนดค่าโดยไฟล์ . .bazelrc ในไดเร็กทอรีรากของที่เก็บ สามารถใช้สคริปต์ ./ ./configure หรือ ./configure.py เพื่อปรับการตั้งค่าทั่วไป

หากคุณต้องการเปลี่ยนคอนฟิกูเรชัน ให้รันสคริปต์ ./ ./configure จากไดเร็กทอรีรูทของที่เก็บ

python ./configure.py

สคริปต์นี้แจ้งให้คุณทราบตำแหน่งของการพึ่งพา TensorFlow และขอตัวเลือกการกำหนดค่าบิลด์เพิ่มเติม (เช่น แฟล็กคอมไพเลอร์) ต่อไปนี้แสดงตัวอย่างการทำงานของ python ./configure.py (เซสชันของคุณอาจแตกต่างออกไป):

ตัวเลือกการกำหนดค่า

สำหรับ การรองรับ GPU ให้ระบุเวอร์ชันของ CUDA และ cuDNN หากระบบของคุณติดตั้ง CUDA หรือ cuDNN หลายเวอร์ชัน ให้ตั้งค่าเวอร์ชันอย่างชัดเจนแทนที่จะใช้ค่าดีฟอลต์ ./configure.py สร้างลิงก์สัญลักษณ์ไปยังไลบรารี CUDA ของระบบ ดังนั้นหากคุณอัปเดตเส้นทางไลบรารี CUDA ขั้นตอนการกำหนดค่านี้จะต้องรันอีกครั้งก่อนที่จะสร้าง

สร้างและติดตั้งแพ็คเกจ pip

แพ็คเกจ pip สร้างขึ้นในสองขั้นตอน คำสั่งการ bazel build โปรแกรม "ตัวสร้างแพ็คเกจ" จากนั้นคุณเรียกใช้ตัวสร้างแพ็คเกจเพื่อสร้างแพ็คเกจ

สร้างตัวสร้างแพ็คเกจ

tensorflow:master repo ได้รับการอัปเดตเป็น build 2.x ตามค่าเริ่มต้น ติดตั้ง Bazel และใช้ bazel build เพื่อสร้าง TensorFlow package-builder

bazel build //tensorflow/tools/pip_package:build_pip_package

CPU เท่านั้น

ใช้ bazel เพื่อสร้างตัวสร้างแพ็คเกจ TensorFlow ที่รองรับ CPU เท่านั้น:

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

รองรับ GPU

ในการสร้างตัวสร้างแพ็คเกจ TensorFlow พร้อมการรองรับ GPU:

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

ตัวเลือกการสร้าง Bazel

ใช้ตัวเลือกนี้เมื่อสร้างเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับการสร้างแพ็คเกจ: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

ดูการ อ้างอิงบรรทัดคำสั่ง Bazel สำหรับ ตัวเลือกการสร้าง

การสร้าง TensorFlow จากแหล่งที่มาสามารถใช้ RAM จำนวนมากได้ หากระบบของคุณจำกัดหน่วยความจำ ให้จำกัดการใช้ RAM ของ Bazel ด้วย: --local_ram_resources=2048

หากสร้างด้วยการรองรับ GPU ให้เพิ่ม --copt=-nvcc_options=disable-warnings เพื่อระงับข้อความเตือน nvcc

สร้างแพ็คเกจ

คำสั่ง bazel build สร้างไฟล์เรียกทำงานชื่อ build_pip_package ซึ่งเป็นโปรแกรมที่สร้างแพ็คเกจ pip ตัวอย่างเช่น ต่อไปนี้สร้างแพ็คเกจ . .whl ในไดเร็กทอรี C:/tmp/tensorflow_pkg :

bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg

แม้ว่าจะสามารถสร้างทั้งการกำหนดค่า CUDA และไม่ใช่ CUDA ภายใต้แผนผังต้นทางเดียวกัน เราขอแนะนำให้เรียกใช้ bazel clean เมื่อสลับระหว่างการกำหนดค่าทั้งสองนี้ในแผนผังต้นทางเดียวกัน

ติดตั้งแพ็คเกจ

ชื่อไฟล์ของไฟล์ .whl ที่สร้างขึ้นนั้นขึ้นอยู่กับเวอร์ชัน TensorFlow และแพลตฟอร์มของคุณ ใช้การ pip3 install เพื่อติดตั้งแพ็คเกจ เช่น:

pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl

สร้างโดยใช้เชลล์ MSYS

นอกจากนี้ยังสามารถสร้าง TensorFlow โดยใช้เชลล์ MSYS ทำการเปลี่ยนแปลงตามรายการด้านล่าง จากนั้นทำตามคำแนะนำก่อนหน้าสำหรับบรรทัดคำสั่งดั้งเดิมของ Windows ( cmd.exe )

ปิดใช้งานการแปลงเส้นทาง MSYS

MSYS แปลงอาร์กิวเมนต์ที่มีลักษณะเหมือนพาธ Unix เป็นพาธ Windows โดยอัตโนมัติ และสิ่งนี้ใช้ไม่ได้กับ bazel (ป้ายกำกับ //path/to:bin ถือเป็นเส้นทางสัมบูรณ์ของ Unix เนื่องจากเริ่มต้นด้วยเครื่องหมายทับ)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

กำหนดเส้นทางของคุณ

เพิ่มไดเร็กทอรีการติดตั้ง Bazel และ Python ให้กับตัวแปรสภาพแวดล้อม $PATH ของคุณ หากติดตั้ง Bazel ไว้ที่ C:\tools\bazel.exe และ Python เป็น C:\Python36\python.exe ให้ตั้งค่า PATH ของคุณด้วย:

# Use Unix-style with ':' as separator
export PATH="/c/tools:$PATH"
export PATH="/c/Python36:$PATH"

สำหรับการรองรับ GPU ให้เพิ่มไดเร็กทอรี CUDA และ cuDNN ใน $PATH ของคุณ :

export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin:$PATH"
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/extras/CUPTI/libx64:$PATH"
export PATH="/c/tools/cuda/bin:$PATH"

การกำหนดค่าบิลด์ทดสอบแล้ว

ซีพียู

รุ่น รุ่นหลาม คอมไพเลอร์ สร้างเครื่องมือ
เทนเซอร์โฟลว์-2.11.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซล 5.3.0
เทนเซอร์โฟลว์-2.10.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซิล 5.1.1
เทนเซอร์โฟลว์-2.9.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซิล 5.0.0
เทนเซอร์โฟลว์-2.8.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซล 4.2.1
เทนเซอร์โฟลว์-2.7.0 3.7-3.9 เอ็มเอสวีซี 2019 บาเซิล 3.7.2
เทนเซอร์โฟลว์-2.6.0 3.6-3.9 เอ็มเอสวีซี 2019 บาเซิล 3.7.2
เทนเซอร์โฟลว์-2.5.0 3.6-3.9 เอ็มเอสวีซี 2019 บาเซิล 3.7.2
เทนเซอร์โฟลว์-2.4.0 3.6-3.8 เอ็มเอสวีซี 2019 บาเซล 3.1.0
เทนเซอร์โฟลว์-2.3.0 3.5-3.8 เอ็มเอสวีซี 2019 บาเซล 3.1.0
เทนเซอร์โฟลว์-2.2.0 3.5-3.8 เอ็มเอสวีซี 2019 บาเซิล 2.0.0
เทนเซอร์โฟลว์-2.1.0 3.5-3.7 เอ็มเอสวีซี 2019 บาเซิล 0.27.1-0.29.1
เทนเซอร์โฟลว์-2.0.0 3.5-3.7 เอ็มเอสวีซี 2017 บาเซล 0.26.1
เทนเซอร์โฟลว์-1.15.0 3.5-3.7 เอ็มเอสวีซี 2017 บาเซล 0.26.1
เทนเซอร์โฟลว์-1.14.0 3.5-3.7 เอ็มเอสวีซี 2017 บาเซิล 0.24.1-0.25.2
เทนเซอร์โฟลว์-1.13.0 3.5-3.7 MSVC 2015 ปรับปรุง 3 บาเซล 0.19.0-0.21.0
เทนเซอร์โฟลว์-1.12.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 บาเซล 0.15.0
เทนเซอร์โฟลว์-1.11.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 บาเซล 0.15.0
เทนเซอร์โฟลว์-1.10.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.9.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.8.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.7.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.6.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.5.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.4.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.3.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.2.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.1.0 3.5 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3
เทนเซอร์โฟลว์-1.0.0 3.5 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3

จีพียู

รุ่น รุ่นหลาม คอมไพเลอร์ สร้างเครื่องมือ cuDNN CUDA
tensorflow_gpu-2.11.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซล 5.3.0 8.1 11.2
tensorflow_gpu-2.10.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซิล 5.1.1 8.1 11.2
tensorflow_gpu-2.9.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซิล 5.0.0 8.1 11.2
tensorflow_gpu-2.8.0 3.7-3.10 เอ็มเอสวีซี 2019 บาเซล 4.2.1 8.1 11.2
tensorflow_gpu-2.7.0 3.7-3.9 เอ็มเอสวีซี 2019 บาเซิล 3.7.2 8.1 11.2
tensorflow_gpu-2.6.0 3.6-3.9 เอ็มเอสวีซี 2019 บาเซิล 3.7.2 8.1 11.2
tensorflow_gpu-2.5.0 3.6-3.9 เอ็มเอสวีซี 2019 บาเซิล 3.7.2 8.1 11.2
tensorflow_gpu-2.4.0 3.6-3.8 เอ็มเอสวีซี 2019 บาเซล 3.1.0 8.0 11.0
tensorflow_gpu-2.3.0 3.5-3.8 เอ็มเอสวีซี 2019 บาเซล 3.1.0 7.6 10.1
tensorflow_gpu-2.2.0 3.5-3.8 เอ็มเอสวีซี 2019 บาเซิล 2.0.0 7.6 10.1
tensorflow_gpu-2.1.0 3.5-3.7 เอ็มเอสวีซี 2019 บาเซิล 0.27.1-0.29.1 7.6 10.1
tensorflow_gpu-2.0.0 3.5-3.7 เอ็มเอสวีซี 2017 บาเซล 0.26.1 7.4 10
tensorflow_gpu-1.15.0 3.5-3.7 เอ็มเอสวีซี 2017 บาเซล 0.26.1 7.4 10
tensorflow_gpu-1.14.0 3.5-3.7 เอ็มเอสวีซี 2017 บาเซิล 0.24.1-0.25.2 7.4 10
tensorflow_gpu-1.13.0 3.5-3.7 MSVC 2015 ปรับปรุง 3 บาเซล 0.19.0-0.21.0 7.4 10
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 บาเซล 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 บาเซล 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 ปรับปรุง 3 คอมเมค v3.6.3 5.1 8