แก้ไข: CPU ของคุณรองรับคำแนะนำว่าไบนารี TensorFlow นี้ไม่ได้คอมไพล์เพื่อใช้ AVX2
ส่วนขยายเวกเตอร์ขั้นสูง (AVXหรือที่เรียกว่าSandy Bridge ส่วนขยายใหม่) เป็นส่วนขยายของสถาปัตยกรรมชุดคำสั่ง x86 สำหรับไมโครโปรเซสเซอร์จาก Intel และ AMD ที่เสนอโดย Intel ในเดือนมีนาคม 2008 และได้รับการสนับสนุนครั้งแรกโดย Intel ด้วยโปรเซสเซอร์ Sandy Bridge ที่จัดส่งในไตรมาสที่ 1 ปี 2011 และหลังจากนั้นโดย AMD ด้วยโปรเซสเซอร์ Bulldozer ที่จัดส่งในไตรมาสที่ 3 ปี 2011 AVX มีคุณสมบัติใหม่ คำแนะนำใหม่ และรูปแบบการเข้ารหัสใหม่
ข้อความเตือนนี้พิมพ์โดยไลบรารีที่ใช้ร่วมกันของ TensorFlow ตามที่ข้อความระบุ ไลบรารีที่แชร์ไม่มีประเภทของคำสั่งที่ CPU ของคุณสามารถใช้ได้
อะไรทำให้เกิดคำเตือนนี้
หลังจาก TensorFlow 1.6 ตอนนี้ไบนารีใช้คำสั่ง AVX ซึ่งอาจไม่ทำงานบน CPU รุ่นเก่าอีกต่อไป ดังนั้นซีพียูรุ่นเก่าจะไม่สามารถรัน AVX ได้ ในขณะที่สำหรับซีพียูที่ใหม่กว่า ผู้ใช้จำเป็นต้องสร้างเทนเซอร์โฟลว์จากแหล่งที่มาสำหรับซีพียูของตน ด้านล่างนี้คือข้อมูลทั้งหมดที่คุณต้องรู้เกี่ยวกับคำเตือนนี้ นอกจากนี้ วิธีการกำจัดคำเตือนนี้สำหรับใช้ในอนาคต
AVX ทำอะไร?
โดยเฉพาะอย่างยิ่ง AVX ได้เปิดตัว FMA (Fused multiply-add); ซึ่งเป็นการดำเนินการคูณบวกเลขทศนิยม และการดำเนินการทั้งหมดนี้เสร็จสิ้นในขั้นตอนเดียว ซึ่งช่วยให้ดำเนินการได้รวดเร็วขึ้นโดยไม่มีปัญหาใดๆ มันทำให้การคำนวณพีชคณิตรวดเร็วและใช้งานง่ายยิ่งขึ้น รวมทั้งผลิตภัณฑ์ดอท การคูณเมทริกซ์ การบิดเบี้ยว ฯลฯ และนี่คือการดำเนินการพื้นฐานที่ใช้บ่อยที่สุดสำหรับการฝึกอบรมแมชชีนเลิร์นนิงทุกครั้ง CPU ที่รองรับ AVX และ FMA จะเร็วกว่ารุ่นเก่ามาก แต่คำเตือนระบุว่า CPU ของคุณรองรับ AVX ดังนั้นจึงเป็นจุดที่ดี
เหตุใดจึงไม่ใช้โดยค่าเริ่มต้น
นั่นเป็นเพราะการกระจายเริ่มต้นของ TensorFlow ถูกสร้างขึ้นโดยไม่มีส่วนขยายของ CPU โดยส่วนขยายของ CPU จะระบุ AVX, AVX2, FMA ฯลฯ คำแนะนำที่ทำให้เกิดปัญหานี้ไม่ได้เปิดใช้งานตามค่าเริ่มต้นในบิลด์เริ่มต้นที่มีอยู่ เหตุผลที่พวกเขาไม่ได้เปิดใช้งานคือทำให้สิ่งนี้เข้ากันได้กับซีพียูให้มากที่สุด นอกจากนี้ ในการเปรียบเทียบส่วนขยายเหล่านี้ CPU จะช้ากว่า GPU มาก CPU ใช้ในการเรียนรู้ของเครื่องขนาดเล็กในขณะที่คาดว่าจะใช้ GPU เมื่อใช้สำหรับการฝึกอบรมการเรียนรู้ด้วยเครื่องขนาดกลางหรือขนาดใหญ่
แก้ไขคำเตือน!
คำเตือนเหล่านี้เป็นเพียงข้อความธรรมดา จุดประสงค์ของคำเตือนเหล่านี้คือการแจ้งให้คุณทราบเกี่ยวกับ TensorFlow ที่สร้างขึ้นจากแหล่งที่มา เมื่อคุณสร้าง TensorFlow จากแหล่งที่มา จะทำให้เครื่องเร็วขึ้น ดังนั้นคำเตือนทั้งหมดเหล่านี้กำลังบอกคุณเกี่ยวกับการสร้าง TensorFlow จากแหล่งที่มา
หากคุณมี GPU ในเครื่องของคุณ คุณสามารถละเว้นคำเตือนเหล่านี้ได้จากการสนับสนุน AVX เพราะอันที่แพงที่สุดจะถูกส่งไปยังอุปกรณ์ GPU และถ้าคุณไม่ต้องการเห็นข้อผิดพลาดนี้อีกต่อไป คุณสามารถเพิกเฉยได้โดยการเพิ่มสิ่งนี้:
นำเข้า โมดูลระบบปฏิบัติการ ในรหัสโปรแกรมหลักของคุณและตั้งค่าอ็อบเจ็กต์การแมปให้ด้วย
#สำหรับปิดการเตือน นำเข้าระบบปฏิบัติการ ระบบปฏิบัติการสภาพแวดล้อม['TF_CPP_MIN_LOG_LEVEL'] = '2'
แต่ถ้าคุณอยู่บน Unixจากนั้นใช้คำสั่ง export ใน bash shell
ส่งออก TF_CPP_MIN_LOG_LEVEL=2
แต่ถ้าไม่มี GPU และคุณต้องการใช้ CPU ให้มากที่สุด คุณควรสร้าง TensorFlow จากแหล่งที่มาที่ปรับให้เหมาะสมสำหรับ CPU ของคุณด้วย AVX, AVX2 และ FMA ที่เปิดใช้งานที่นี่