Fix: CPU Anda Mendukung Petunjuk bahwa TensorFlow Binary ini tidak dikompilasi untuk menggunakan AVX2

Advanced Vector Extensions ( AVX , juga dikenal sebagai Sandy Bridge New Extensions ) adalah ekstensi untuk arsitektur set instruksi x86 untuk mikroprosesor dari Intel dan AMD yang diusulkan oleh Intel pada Maret 2008 dan pertama kali didukung oleh Intel dengan pengiriman prosesor Sandy Bridge pada Q1 2011 dan kemudian oleh AMD dengan prosesor Bulldozer yang dikirim pada Q3 2011. AVX menyediakan fitur baru, instruksi baru, dan skema pengkodean baru.

Pesan peringatan ini dicetak oleh pustaka bersama TensorFlow. Seperti yang ditunjukkan pesan tersebut, pustaka bersama tidak menyertakan jenis instruksi yang dapat digunakan CPU Anda.

Apa Penyebab Peringatan Ini?

Setelah TensorFlow 1.6, biner sekarang menggunakan instruksi AVX yang mungkin tidak lagi berjalan di CPU lama. Jadi CPU yang lebih lama tidak akan dapat menjalankan AVX, sedangkan untuk yang lebih baru, pengguna perlu membangun tensorflow dari sumber untuk CPU mereka. Di bawah ini adalah semua informasi yang perlu Anda ketahui tentang peringatan khusus ini. Juga, metode tentang menghilangkan peringatan ini untuk penggunaan di masa mendatang.

Apa yang dilakukan AVX?

Secara khusus, AVX memperkenalkan FMA (Fused multiply-add); yang merupakan operasi tambah-perkalian floating-point, dan semua operasi ini dilakukan dalam satu langkah. Ini membantu mempercepat banyak operasi tanpa masalah. Itu membuat komputasi aljabar lebih cepat dan mudah digunakan, juga hasil kali-titik, perkalian matriks, konvolusi, dll. Dan ini semua adalah operasi yang paling banyak digunakan dan dasar untuk setiap pelatihan pembelajaran mesin. CPU yang mendukung AVX dan FMA akan jauh lebih cepat daripada yang sebelumnya. Tetapi peringatan tersebut menyatakan bahwa CPU Anda mendukung AVX, jadi itu poin yang bagus.

Mengapa tidak digunakan secara default?

Itu karena distribusi default TensorFlow dibuat tanpa ekstensi CPU. Menurut ekstensi CPU, ia menyatakan AVX, AVX2, FMA, dll. Instruksi yang memicu masalah ini tidak diaktifkan secara default pada build default yang tersedia. Alasan mereka tidak diaktifkan adalah untuk membuatnya lebih kompatibel dengan sebanyak mungkin CPU. Juga untuk membandingkan ekstensi ini, mereka jauh lebih lambat di CPU daripada GPU. CPU digunakan pada pembelajaran mesin skala kecil sementara penggunaan GPU diharapkan ketika digunakan untuk pelatihan pembelajaran mesin skala menengah atau besar.

Memperbaiki Peringatan!

Peringatan ini hanyalah pesan sederhana. Tujuan peringatan ini adalah untuk memberi tahu Anda tentang TensorFlow yang dibuat dari sumber. Saat Anda membuat TensorFlow dari sumbernya, ini bisa lebih cepat di mesin. Jadi semua peringatan ini memberi tahu Anda tentang build TensorFlow dari sumber.

Jika Anda memiliki GPU di mesin Anda, maka Anda dapat mengabaikan peringatan ini dari dukungan AVX. Karena yang paling mahal akan dikirim ke perangkat GPU. Dan jika Anda tidak ingin melihat kesalahan ini lagi, Anda dapat mengabaikannya dengan menambahkan ini:

impor modul OS dalam kode program utama Anda dan juga setel objek pemetaan untuknya

# Untuk menonaktifkan peringatan impor os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Tetapi jika Anda menggunakan Unix , gunakan perintah ekspor di bash shell

ekspor TF_CPP_MIN_LOG_LEVEL = 2

Tetapi jika tidak memiliki GPU, dan Anda ingin menggunakan CPU Anda sebanyak mungkin, Anda harus membangun TensorFlow dari sumber yang dioptimalkan untuk CPU Anda dengan AVX, AVX2, dan FMA diaktifkan di sini.