Khắc phục: CPU của bạn hỗ trợ Hướng dẫn rằng TensorFlow Binary này không được biên dịch để sử dụng AVX2

Phần mở rộng Vector nâng cao ( AVX , còn được gọi là Phần mở rộng mới của Sandy Bridge ) là phần mở rộng cho kiến ​​trúc tập lệnh x86 dành cho bộ vi xử lý của Intel và AMD do Intel đề xuất vào tháng 3 năm 2008 và được Intel hỗ trợ lần đầu với bộ xử lý Sandy Bridge xuất xưởng vào quý 1 năm 2011 trở về sau của AMD với việc vận chuyển bộ xử lý Bulldozer vào quý 3 năm 2011. AVX cung cấp các tính năng mới, hướng dẫn mới và sơ đồ mã hóa mới.

Thông báo cảnh báo này được in bởi thư viện chia sẻ của TensorFlow. Như thông báo cho biết, thư viện được chia sẻ không bao gồm loại hướng dẫn mà CPU của bạn có thể sử dụng.

Điều gì gây ra cảnh báo này?

Sau TensorFlow 1.6, các tệp nhị phân hiện sử dụng các lệnh AVX có thể không chạy trên các CPU cũ hơn nữa. Vì vậy, các CPU cũ hơn sẽ không thể chạy AVX, trong khi đối với các CPU mới hơn, người dùng cần xây dựng luồng tensorflow từ nguồn cho CPU của họ. Dưới đây là tất cả thông tin bạn cần biết về cảnh báo cụ thể này. Ngoài ra, một phương pháp loại bỏ cảnh báo này để sử dụng trong tương lai.

AVX làm gì?

Đặc biệt, AVX đã giới thiệu FMA (Hợp nhất nhân-cộng); là phép toán nhân-cộng dấu phẩy động và tất cả thao tác này được thực hiện trong một bước duy nhất. Điều này giúp tăng tốc nhiều hoạt động mà không gặp bất kỳ vấn đề gì. Nó làm cho việc tính toán đại số trở nên nhanh chóng và dễ sử dụng hơn, cũng có thể là tích số chấm, nhân ma trận, tích chập, v.v. Và đây là tất cả các phép toán cơ bản và được sử dụng nhiều nhất cho mọi khóa đào tạo học máy. Các CPU hỗ trợ AVX và FMA sẽ nhanh hơn nhiều so với các CPU cũ hơn. Nhưng cảnh báo nói rằng CPU của bạn hỗ trợ AVX, vì vậy đó là một điểm tốt.

Tại sao nó không được sử dụng theo mặc định?

Đó là vì bản phân phối mặc định của TensorFlow được xây dựng mà không có phần mở rộng CPU. Theo phần mở rộng của CPU, nó chỉ ra AVX, AVX2, FMA, v.v. Các hướng dẫn gây ra sự cố này không được bật theo mặc định trên các bản dựng mặc định có sẵn. Lý do chúng không được kích hoạt là để làm cho điều này tương thích hơn với càng nhiều CPU càng tốt. Ngoài ra, để so sánh các phần mở rộng này, chúng chậm hơn rất nhiều trong CPU hơn là GPU. CPU được sử dụng cho máy học quy mô nhỏ trong khi việc sử dụng GPU được mong đợi khi nó được sử dụng cho quá trình đào tạo máy học quy mô lớn hoặc trung bình.

Khắc phục cảnh báo!

Những cảnh báo này chỉ là những thông điệp đơn giản. Mục đích của những cảnh báo này là để thông báo cho bạn về TensorFlow được xây dựng từ nguồn. Khi bạn tạo TensorFlow từ nguồn, nó có thể nhanh hơn trên máy. Vì vậy, tất cả những cảnh báo này đang nói với bạn về việc xây dựng TensorFlow từ nguồn.

Nếu bạn có GPU trên máy của mình, thì bạn có thể bỏ qua những cảnh báo này từ bộ phận hỗ trợ AVX. Bởi vì hầu hết những cái đắt tiền sẽ được gửi trên thiết bị GPU. Và nếu bạn không muốn gặp lỗi này nữa, bạn chỉ cần bỏ qua nó bằng cách thêm vào:

nhập mô-đun hệ điều hành trong mã chương trình chính của bạn và cũng đặt đối tượng ánh xạ cho nó

# Để tắt tính năng nhập cảnh báo os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Nhưng nếu bạn đang sử dụng Unix , hãy sử dụng lệnh export trong bash shell

xuất TF_CPP_MIN_LOG_LEVEL = 2

Nhưng nếu không có GPU và bạn muốn sử dụng CPU nhiều nhất có thể, bạn nên xây dựng TensorFlow từ nguồn được tối ưu hóa cho CPU của bạn với AVX, AVX2 và FMA được bật tại đây.