การแก้ไข: CPU ของคุณรองรับคำแนะนำว่า TensorFlow Binary นี้ไม่ได้รวบรวมเพื่อใช้ AVX2

Advanced Vector Extensions ( AVXหรือที่เรียกว่าSandy Bridge New Extensions ) เป็นส่วนขยายของสถาปัตยกรรมชุดคำสั่ง x86 สำหรับไมโครโปรเซสเซอร์จาก Intel และ AMD ที่ Intel เสนอในเดือนมีนาคม 2551 และได้รับการสนับสนุนครั้งแรกโดย Intel พร้อมกับโปรเซสเซอร์ Sandy Bridge ที่จัดส่งในไตรมาสที่ 1 ปี 2554 และหลังจากนั้น โดย AMD พร้อมกับโปรเซสเซอร์ Bulldozer ที่จัดส่งในไตรมาสที่ 3 ปี 2554 AVX มีคุณสมบัติใหม่คำแนะนำใหม่และรูปแบบการเข้ารหัสใหม่

ข้อความเตือนนี้พิมพ์โดยไลบรารีที่ใช้ร่วมกันของ TensorFlow ตามที่ข้อความระบุไลบรารีที่ใช้ร่วมกันจะไม่มีคำสั่งที่ CPU ของคุณสามารถใช้ได้

คำเตือนนี้ทำให้เกิดอะไร

หลังจาก TensorFlow 1.6 ตอนนี้ไบนารีใช้คำสั่ง AVX ซึ่งอาจไม่ทำงานบน CPU รุ่นเก่าอีกต่อไป ดังนั้นซีพียูรุ่นเก่าจะไม่สามารถรัน AVX ได้ในขณะที่ซีพียูรุ่นใหม่กว่านั้นผู้ใช้ต้องสร้างเทนเซอร์โฟลว์จากซอร์สสำหรับซีพียูของตน ด้านล่างนี้เป็นข้อมูลทั้งหมดที่คุณจำเป็นต้องรู้เกี่ยวกับคำเตือนนี้ นอกจากนี้วิธีการกำจัดคำเตือนนี้เพื่อใช้ในอนาคต

AVX ทำอะไร?

โดยเฉพาะอย่างยิ่ง AVX เปิดตัว FMA (Fused multiply-add); ซึ่งเป็นการดำเนินการเพิ่มจุดลอยตัวและการดำเนินการทั้งหมดนี้ทำได้ในขั้นตอนเดียว ซึ่งจะช่วยเร่งการดำเนินการจำนวนมากโดยไม่มีปัญหา มันทำให้การคำนวณพีชคณิตใช้งานได้รวดเร็วและง่ายดายยิ่งขึ้นรวมถึงดอทโปรดัคการคูณเมทริกซ์คอนโวลูชั่น ฯลฯ และนี่คือการดำเนินการขั้นพื้นฐานและใช้มากที่สุดสำหรับการฝึกอบรมแมชชีนเลิร์นนิงทุกครั้ง ซีพียูที่รองรับ AVX และ FMA จะเร็วกว่ารุ่นเก่ามาก แต่คำเตือนระบุว่า CPU ของคุณรองรับ AVX ดังนั้นจึงเป็นจุดที่ดี

เหตุใดจึงไม่ใช้เป็นค่าเริ่มต้น

นั่นเป็นเพราะการกระจายเริ่มต้นของ TensorFlow ถูกสร้างขึ้นโดยไม่มีส่วนขยายของ CPU โดยส่วนขยายของ CPU จะระบุ AVX, AVX2, FMA และอื่น ๆ คำแนะนำที่ทำให้เกิดปัญหานี้ไม่ได้เปิดใช้งานโดยค่าเริ่มต้นในรุ่นเริ่มต้นที่มีอยู่ เหตุผลที่พวกเขาไม่ได้เปิดใช้งานคือทำให้สิ่งนี้เข้ากันได้กับซีพียูให้มากที่สุด นอกจากนี้หากต้องการเปรียบเทียบส่วนขยายเหล่านี้ CPU จะทำงานช้ากว่า GPU มาก CPU ถูกใช้ในแมชชีนเลิร์นนิงขนาดเล็กในขณะที่คาดว่าจะใช้ GPU ได้เมื่อใช้สำหรับการฝึกอบรมแมชชีนเลิร์นนิงขนาดกลางหรือขนาดใหญ่

แก้ไขคำเตือน!

คำเตือนเหล่านี้เป็นเพียงข้อความธรรมดา ๆ คำเตือนเหล่านี้มีวัตถุประสงค์เพื่อแจ้งให้คุณทราบเกี่ยวกับ TensorFlow ที่สร้างขึ้นจากแหล่งที่มา เมื่อคุณสร้าง TensorFlow จากแหล่งที่มาเครื่องสามารถทำงานได้เร็วขึ้น ดังนั้นคำเตือนทั้งหมดนี้จะบอกคุณเกี่ยวกับการสร้าง TensorFlow จากแหล่งที่มา

หากคุณมี GPU ในเครื่องของคุณคุณสามารถเพิกเฉยต่อคำเตือนเหล่านี้ได้จากฝ่ายสนับสนุน AVX เนื่องจากของแพงส่วนใหญ่จะถูกส่งไปบนอุปกรณ์ GPU และหากคุณไม่ต้องการเห็นข้อผิดพลาดนี้อีกต่อไปคุณสามารถเพิกเฉยได้โดยเพิ่มสิ่งนี้:

นำเข้าโมดูล OSในรหัสโปรแกรมหลักของคุณและตั้งค่าวัตถุการแมปด้วย

# สำหรับการปิดใช้งานการนำเข้าคำเตือนos os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

แต่ถ้าคุณใช้Unixให้ใช้คำสั่ง export ใน bash shell

ส่งออก TF_CPP_MIN_LOG_LEVEL = 2

แต่ถ้าไม่มี GPU และคุณต้องการใช้ CPU ของคุณให้มากที่สุดคุณควรสร้าง TensorFlow จากแหล่งที่มาที่ปรับให้เหมาะกับ CPU ของคุณโดยเปิดใช้งาน AVX, AVX2 และ FMA ที่นี่