TensorFlow là một thư viện mã nguồn mở hàng đầu được thiết kế để phát triển và triển khai các ứng dụng Machine Learning tiên tiến.
Mục lục bài viết
- Tensorflow là gì?
- Ai đã tạo ra TensorFlow?
- TensorFlow hoạt động như thế nào?
- TensorFlow được sử dụng để làm gì?
- Lợi ích của TensorFlow
- Những trường hợp sử dụng cụ thể của TensorFlow
- Tại sao TensorFlow lại quan trọng?
- TensorFlow và NVIDIA
- Cách cài đặt TensorFlow
- Cách cập nhật TensorFlow
Tensorflow là gì?
Được các nhà khoa học dữ liệu, nhà phát triển phần mềm và nhà giáo dục sử dụng rộng rãi, TensorFlow là một nền tảng mã nguồn mở cho Machine Learning sử dụng biểu đồ luồng dữ liệu. Các node trong biểu đồ biểu diễn những phép toán, trong khi các cạnh biểu đồ biểu diễn những mảng dữ liệu đa chiều (tensor) chảy giữa chúng.
Kiến trúc linh hoạt này cho phép mô tả các thuật toán Machine Learning như một biểu đồ các phép toán được kết nối. Chúng có thể được đào tạo và thực thi trên GPU, CPU và TPU trên nhiều nền tảng khác nhau mà không cần viết lại code, từ thiết bị di động, desktop đến máy chủ cao cấp. Điều này có nghĩa là các lập trình viên ở mọi trình độ đều có thể sử dụng cùng một bộ công cụ để cộng tác, giúp tăng đáng kể hiệu quả của họ. Ban đầu được Google Brain Team phát triển nhằm mục đích tiến hành nghiên cứu Machine Learning và mạng nơ-ron sâu (DNN), hệ thống này đủ tổng quát để có thể áp dụng trong nhiều lĩnh vực khác nhau.
Ai đã tạo ra TensorFlow?
Như bạn đã biết, Google đã phát triển TensorFlow, sau đó tiếp tục sở hữu và duy trì framework này. Nó được tạo ra bởi nhóm nghiên cứu Google Brain, những người thực hiện nghiên cứu cơ bản để thúc đẩy các lĩnh vực chính của trí tuệ máy móc và thúc đẩy sự hiểu biết lý thuyết tốt hơn về Deep Learning.
Google Brain Team đã thiết kế TensorFlow để có thể hoạt động độc lập với cơ sở hạ tầng điện toán của riêng Google, nhưng nó có được nhiều lợi thế khi được một gã khổng lồ thương mại hỗ trợ. Ngoài việc tài trợ cho quá trình phát triển nhanh chóng của dự án, trong những năm qua, Google cũng đã cải thiện TensorFlow để đảm bảo rằng nó dễ triển khai và sử dụng.
Google đã chọn biến TensorFlow thành một framework nguồn mở với mục đích đẩy nhanh quá trình phát triển AI. Là một dự án dựa trên cộng đồng, tất cả người dùng đều có thể giúp cải thiện công nghệ và chia sẻ lợi ích.
TensorFlow hoạt động như thế nào?
Có 3 phần riêng biệt xác định quy trình làm việc của TensorFlow, cụ thể là xử lý trước dữ liệu, xây dựng mô hình và đào tạo mô hình để đưa ra dự đoán. Framework này nhập dữ liệu dưới dạng một mảng đa chiều gọi là tensor và thực thi theo hai cách khác nhau. Phương pháp chính là xây dựng một biểu đồ tính toán xác định luồng dữ liệu để đào tạo mô hình. Phương pháp thứ hai, và thường trực quan hơn, là sử dụng thực thi háo hức, tuân theo các nguyên tắc lập trình bắt buộc và đánh giá những hoạt động ngay lập tức.
Sử dụng kiến trúc TensorFlow, việc đào tạo thường được thực hiện trên desktop hoặc trong trung tâm dữ liệu. Trong cả hai trường hợp, quá trình này được đẩy nhanh bằng cách đặt tensor trên GPU. Sau đó, các mô hình đã đào tạo có thể chạy trên nhiều nền tảng, từ desktop, thiết bị di động và cho đến tận đám mây.
TensorFlow cũng chứa nhiều tính năng hỗ trợ. Ví dụ, TensorBoard, cho phép người dùng theo dõi trực quan quy trình đào tạo, biểu đồ tính toán cơ bản và số liệu cho mục đích gỡ lỗi các lần chạy và đánh giá hiệu suất của mô hình. Tensor Board là framework trực quan hóa hợp nhất cho Tensorflow và Keras.
Keras là một API cấp cao chạy trên TensorFlow. Keras thúc đẩy sự trừu tượng của TensorFlow bằng cách cung cấp một API đơn giản hóa dành cho việc xây dựng nhiều mô hình cho các trường hợp sử dụng phổ biến. Ý tưởng thúc đẩy đằng sau API là có thể dịch từ ý tưởng thành kết quả trong thời gian ngắn nhất có thể.
TensorFlow được sử dụng để làm gì?
TensorFlow được thiết kế để hợp lý hóa quy trình phát triển và thực thi các ứng dụng phân tích nâng cao cho người dùng như nhà khoa học dữ liệu, nhà thống kê và những người làm công việc liên quan đến mô hình dự đoán.
Các doanh nghiệp thuộc nhiều loại hình và quy mô khác nhau sử dụng rộng rãi framework này để tự động hóa quy trình và phát triển các hệ thống mới. Nó đặc biệt hữu ích cho các ứng dụng xử lý song song quy mô rất lớn như mạng nơ-ron. Nó cũng đã được sử dụng trong các thí nghiệm và thử nghiệm cho xe tự lái.
Công ty mẹ của TensorFlow là Google cũng sử dụng nó cho các hoạt động nội bộ, chẳng hạn như cải thiện khả năng truy xuất thông tin của công cụ tìm kiếm và cung cấp năng lượng cho những ứng dụng để tạo phản hồi email tự động, phân loại hình ảnh và nhận dạng ký tự quang học.
Một trong những lợi thế của TensorFlow là nó cung cấp khả năng trừu tượng hóa, nghĩa là các nhà phát triển có thể tập trung vào logic tổng thể của ứng dụng trong khi framework xử lý những chi tiết nhỏ. Nó cũng thuận tiện cho các nhà phát triển cần gỡ lỗi và tìm hiểu sâu hơn về những ứng dụng TensorFlow.
Bộ công cụ trực quan hóa TensorBoard có bảng điều khiển tương tác, dựa trên web cho phép bạn kiểm tra và lập hồ sơ cách đồ thị chạy. Ngoài ra còn có chế độ thực thi nhanh cho phép bạn đánh giá và sửa đổi từng hoạt động đồ thị riêng biệt và minh bạch, thay vì tạo toàn bộ đồ thị dưới dạng một đối tượng duy nhất và đánh giá tất cả cùng một lúc.
Databricks Runtime for Machine Learning bao gồm TensorFlow và TensorBoard, do đó bạn có thể sử dụng các thư viện này mà không cần cài đặt bất kỳ gói nào.
Lợi ích của TensorFlow
TensorFlow có thể được sử dụng để phát triển các mô hình cho nhiều tác vụ khác nhau, bao gồm xử lý ngôn ngữ tự nhiên, nhận dạng hình ảnh, nhận dạng chữ viết tay và những mô phỏng dựa trên tính toán khác nhau như phương trình vi phân riêng phần.
Các lợi ích chính của TensorFlow nằm ở khả năng thực hiện những hoạt động cấp thấp trên nhiều nền tảng tăng tốc, tính toán tự động các gradient, khả năng mở rộng ở cấp độ sản xuất và xuất đồ thị có thể tương tác. Bằng cách cung cấp Keras dưới dạng API cấp cao và thực thi nhanh như một giải pháp thay thế cho mô hình luồng dữ liệu trên TensorFlow, việc viết code luôn dễ dàng và thoải mái.
Là nhà phát triển ban đầu của TensorFlow, Google vẫn ủng hộ mạnh mẽ thư viện này và đã thúc đẩy tốc độ phát triển nhanh chóng của nó. Ví dụ, Google đã tạo ra một trung tâm trực tuyến để chia sẻ nhiều mô hình khác nhau do người dùng tạo ra.
Những trường hợp sử dụng cụ thể của TensorFlow
- Xử lý hình ảnh và phát hiện video. Gã khổng lồ sản xuất máy bay Airbus đang sử dụng TensorFlow để trích xuất và phân tích thông tin từ hình ảnh vệ tinh để cung cấp thông tin có giá trị theo thời gian thực cho khách hàng.
- Thuật toán chuỗi thời gian. Kakao sử dụng TensorFlow để dự đoán tỷ lệ hoàn thành các yêu cầu gọi xe.
- Khả năng mở rộng quy mô cực lớn. NERSC đã mở rộng ứng dụng deep learning khoa học lên hơn 27.000 GPU NVIDIA V100 Tensor Core bằng TensorFlow.
- Mô hình hóa. Sử dụng TensorFlow để học chuyển giao sâu và generative model, PayPal đã có thể nhận ra các kiểu gian lận phức tạp, tạm thời thay đổi trong khi cải thiện trải nghiệm của khách hàng hợp pháp thông qua việc xác định khách hàng nhanh chóng.
- Nhận dạng văn bản. Mô hình TensorFlow tùy chỉnh của SwissCom đã cải thiện hoạt động kinh doanh bằng cách phân loại văn bản, xác định ý muốn của khách hàng khi nhận cuộc gọi.
- Ưu tiên tweet. Twitter đã sử dụng TensorFlow để xây dựng Ranked Timeline, đảm bảo rằng người dùng không bỏ lỡ các tweet quan trọng nhất của họ, ngay cả khi theo dõi hàng nghìn người dùng.
Tại sao TensorFlow lại quan trọng?
Các nhà khoa học dữ liệu
Nhiều tuyến đường khác nhau có sẵn để phát triển các mô hình với TensorFlow nghĩa là công cụ phù hợp cho công việc luôn khả dụng, thể hiện những ý tưởng sáng tạo và thuật toán mới nhanh nhất có thể. Là một trong những thư viện phổ biến nhất để phát triển các mô hình Machine Learning, thường rất dễ tìm code TensorFlow từ các nhà nghiên cứu trước đây, giúp tránh mất thời gian vào code mẫu và code trùng lặp.
Nhà phát triển phần mềm
TensorFlow có thể chạy trên nhiều nền tảng phần cứng và môi trường hoạt động phổ biến. Với việc phát hành TensorFlow 2.0 vào cuối năm 2019, việc triển khai các mô hình TensorFlow trên nhiều nền tảng thậm chí còn dễ dàng hơn. Khả năng tương tác của các mô hình được tạo bằng TensorFlow có nghĩa là việc triển khai không bao giờ là một nhiệm vụ khó khăn.
TensorFlow và NVIDIA
Các đơn vị xử lý đồ họa, hay GPU, với kiến trúc song song khổng lồ bao gồm hàng nghìn lõi hiệu quả nhỏ, có thể khởi chạy hàng nghìn luồng song song cùng lúc để tăng tốc những tác vụ tính toán chuyên sâu.

Một thập kỷ trước, các nhà nghiên cứu đã phát hiện ra rằng GPU rất thành thạo trong những phép toán ma trận cũng như các phép tính đại số và deep learning phụ thuộc rất nhiều vào cả hai.
TensorFlow chạy nhanh hơn tới 50% trên GPU NVIDIA Pascal mới nhất và có thể mở rộng tốt trên nhiều GPU. Giờ đây, bạn có thể đào tạo các mô hình trong nhiều giờ thay vì nhiều ngày.
TensorFlow được viết bằng cả C++ được tối ưu hóa và NVIDIA CUDA Toolkit, cho phép các mô hình chạy trên GPU tại thời điểm đào tạo và suy luận để tăng tốc đáng kể.
Hỗ trợ GPU TensorFlow yêu cầu một số driver và thư viện. Để đơn giản hóa quá trình cài đặt và tránh xung đột thư viện, bạn nên tận dụng image TensorFlow Docker có hỗ trợ GPU. Thiết lập này chỉ yêu cầu driver GPU NVIDIA và cài đặt NVIDIA-docker. Người dùng có thể kéo các container từ NGC (NVIDIA GPU Cloud) được cấu hình sẵn với những mô hình được đào tạo trước và hỗ trợ thư viện TensorFlow.
Cách cài đặt TensorFlow
Hướng dẫn đầy đủ có sẵn trên tensorflow.org, nhưng sau đây là những điều cơ bản.
Yêu cầu hệ thống
- Python 3.7 trở lên
- pip 19.0 trở lên (yêu cầu hỗ trợ manylinux2010 và TensorFlow 2 yêu cầu phiên bản pip mới hơn)
- Ubuntu 16.04 trở lên (64 bit)
- macOS 10.12.6 (Sierra) trở lên (64 bit) (không hỗ trợ GPU)
- Windows 7 trở lên (64 bit)
Yêu cầu phần cứng
Bắt đầu từ TensorFlow 1.6, các file nhị phân sử dụng các lệnh AVX có thể không chạy trên những CPU cũ hơn.
Hỗ trợ GPU yêu cầu card hỗ trợ CUDA (Ubuntu và Windows)
1. Cài đặt môi trường phát triển Python trên hệ thống
Kiểm tra xem môi trường Python của bạn đã được cấu hình chưa:
python3 - -version
pip3 - -version
Nếu các gói này đã được cài đặt, hãy bỏ qua bước tiếp theo.
Nếu không, hãy cài đặt Python, trình quản lý gói pip và venv.
Nếu không có trong môi trường ảo, hãy sử dụng python3 -m pip cho các lệnh bên dưới. Điều này đảm bảo rằng bạn nâng cấp và sử dụng pip Python thay vì pip hệ thống.
2. Tạo môi trường ảo (khuyến nghị)
Môi trường ảo Python được sử dụng để cô lập cài đặt gói khỏi hệ thống.
3. Cài đặt gói pip TensorFlow
Chọn một trong các gói TensorFlow sau để cài đặt từ PyPI:
- tensorflow - Bản phát hành ổn định mới nhất có hỗ trợ CPU và GPU (Ubuntu và Windows)
- tf-nightly - Bản build Preview (không ổn định). Ubuntu và Windows có hỗ trợ GPU
- tensorflow==1.15 - Phiên bản cuối cùng của TensorFlow 1.x.
Xác minh cài đặt. Nếu một tensor được trả về, bạn đã cài đặt TensorFlow thành công.
Lưu ý: Một số cơ chế cài đặt yêu cầu URL của gói Python TensorFlow. Giá trị bạn chỉ định phụ thuộc vào phiên bản Python của bạn.
Cách cập nhật TensorFlow
Trình quản lý gói pip cung cấp một phương pháp đơn giản để nâng cấp TensorFlow, bất kể môi trường nào.
Điều kiện tiên quyết:
- Đã cài đặt và cấu hình Python 3.6-3.9 (kiểm tra phiên bản Python trước khi bắt đầu).
- Đã cài đặt TensorFlow 2.
- Trình quản lý gói pip phiên bản 19.0 trở lên (kiểm tra phiên bản pip và nâng cấp nếu cần).
- Truy cập vào môi trường dòng lệnh/terminal hoặc notebook.
Để nâng cấp TensorFlow lên phiên bản mới hơn:
1. Mở terminal (CTRL+ALT+T).
2. Kiểm tra phiên bản TensorFlow hiện đã cài đặt:
pip3 show tensorflow
Lệnh hiển thị thông tin về gói, bao gồm cả phiên bản.
3. Nâng cấp TensorFlow lên phiên bản mới hơn bằng cách:
pip3 install - -upgrade tensorflow==<version>
Hãy đảm bảo bạn chọn phiên bản tương thích với bản phát hành Python của mình, nếu không phiên bản sẽ không cài đặt được. Đối với môi trường notebook, hãy sử dụng lệnh sau và khởi động lại kernel sau khi hoàn tất:
!pip install - -upgrade tensorflow==<version>
Lệnh này sẽ tự động xóa phiên bản cũ cùng với những dependency và cài đặt bản nâng cấp mới hơn.
4. Kiểm tra phiên bản đã nâng cấp bằng cách chạy:
pip3 show tensorflow