TensorFlow là gì? Cách thức hoạt động của nó. Archikiến trúc & tính năng

⚡ Tóm tắt thông minh

TensorFlow là nền tảng mã nguồn mở. Google Được xây dựng cho học máy, biểu diễn mọi phép tính dưới dạng đồ thị luồng dữ liệu của các tensor. Tổng quan này bao gồm kiến ​​trúc, các thành phần, cách thức thực thi phép tính và cách đưa dữ liệu qua đường dẫn đầu vào.

  • 🧮 Đối tượng cốt lõi: Tensor là một mảng n chiều có các giá trị cùng chia sẻ một kiểu dữ liệu và một hình dạng đã biết hoặc biết một phần.
  • 🔗 Mô hình đồ thị: Các nút chứa các phép toán, các cạnh chứa các tensor, và toàn bộ đồ thị có thể được lưu, chuyển đổi và phát lại sau này.
  • 🏗️ Ba giai đoạn Archikiến trúc: Xử lý sơ bộ dữ liệu, xây dựng mô hình, sau đó huấn luyện và đánh giá mô hình.
  • ⚠️ Giới hạn phiên bản: tf.placeholder và tf.Session thuộc về TensorFlow 1.x và đã bị loại bỏ trong phiên bản 2.0, phiên bản này mặc định chạy ở chế độ eager.
  • 💾 Đang tải dữ liệu: Sử dụng pandas để tải các tập dữ liệu nhỏ vào bộ nhớ, và dùng tf.data pipelines cho những dữ liệu quá lớn không thể chứa vừa trong bộ nhớ.
  • 📊 Giám sát: TensorBoard trực quan hóa đồ thị, các chỉ số và phân bố trọng số trong quá trình huấn luyện mô hình.

TensorFlow là gì Archikiến trúc

TensorFlow là gì?

TensorFlow là một nền tảng end-to-end nguồn mở để tạo các ứng dụng Machine Learning. Đó là một thư viện toán học tượng trưng sử dụng luồng dữ liệu và lập trình vi phân để thực hiện các nhiệm vụ khác nhau tập trung vào việc đào tạo và suy luận về mạng lưới thần kinh sâu. Nó cho phép các nhà phát triển tạo các ứng dụng học máy bằng nhiều công cụ, thư viện và tài nguyên cộng đồng khác nhau.

Hiện nay, thư viện học sâu nổi tiếng nhất thế giới là GoogleTensorFlow của 's. Google Công ty ứng dụng học máy vào tất cả các sản phẩm của mình để cải thiện tìm kiếm, dịch thuật, chú thích hình ảnh và đề xuất.

Ví dụ về TensorFlow

Để đưa ra một ví dụ cụ thể, Google Người dùng có thể trải nghiệm tìm kiếm nhanh hơn và chính xác hơn nhờ AI. Nếu người dùng nhập từ khóa vào thanh tìm kiếm, Google Đưa ra gợi ý về từ tiếp theo có thể là gì.

Ví dụ về TensorFlow
Ví dụ về TensorFlow

Google Họ muốn sử dụng máy học để tận dụng tối đa các tập dữ liệu khổng lồ của mình nhằm mang đến cho người dùng trải nghiệm tốt nhất. Ba nhóm khác nhau sử dụng máy học:

  • Các nhà nghiên cứu
  • Nhà khoa học dữ liệu
  • Lập trình viên

Tất cả họ đều có thể sử dụng cùng một bộ công cụ để cộng tác với nhau và nâng cao hiệu quả của mình.

Google Không chỉ lưu trữ các tập dữ liệu lớn, mà còn vận hành cơ sở hạ tầng tính toán khổng lồ, vì vậy TensorFlow được xây dựng để mở rộng quy mô ngay từ đầu. TensorFlow là một thư viện được phát triển bởi... Google Nhóm Brain Team sẽ đẩy nhanh nghiên cứu về học máy và mạng nơ-ron sâu.

Nó được xây dựng để chạy trên nhiều CPU hoặc GPU và thậm chí cả hệ điều hành di động và nó có một số trình bao bọc bằng nhiều ngôn ngữ như Python, C++ or Java.

Lịch sử của TensorFlow

Vài năm trước, học sâu bắt đầu vượt trội hơn tất cả các thuật toán học máy khác khi được cung cấp một lượng dữ liệu khổng lồ. Google Họ nhận thấy có thể sử dụng các mạng nơ-ron sâu này để cải thiện dịch vụ của mình:

  • Gmail
  • Hình chụp
  • Google công cụ tìm kiếm

Họ đã xây dựng một khuôn khổ gọi là TensorFlow để các nhà nghiên cứu và nhà phát triển có thể cùng làm việc trên một mô hình, sau đó triển khai nó ở quy mô mà nhiều người có thể sử dụng.

TensorFlow được phát hành rộng rãi vào tháng 11 năm 2015, và phiên bản 1.0 ra mắt vào tháng 2 năm 2017. Sự thay đổi lớn hơn nhiều đến từ... TensorFlow 2.0 ra mắt vào tháng 9 năm 2019.Điều này đã đặt chế độ thực thi tức thời làm mặc định và sử dụng Keras làm API cấp cao tiêu chuẩn. Từ phiên bản 2.16 trở đi, Keras 3 là mặc định, và mã mô hình tương tự cũng có thể chạy trên JAX hoặc Py.Torcác máy chủ phụ trợ ch.

TensorFlow được phát hành theo giấy phép Apache 2.0, vì vậy bạn có thể sử dụng, sửa đổi và phân phối lại nó, kể cả cho mục đích thương mại, mà không cần trả phí. Google.

TensorFlow hoạt động như thế nào

TensorFlow cho phép bạn xây dựng các biểu đồ và cấu trúc luồng dữ liệu để xác định cách dữ liệu di chuyển qua biểu đồ bằng cách lấy đầu vào dưới dạng mảng đa chiều được gọi là Tensor. Nó cho phép bạn xây dựng một sơ đồ các hoạt động có thể được thực hiện trên các đầu vào này, ở một đầu và ở đầu kia là đầu ra.

TensorFlow Archikiến trúc

Kiến trúc TensorFlow hoạt động dựa trên ba phần:

  • Tiền xử lý dữ liệu
  • Xây dựng mô hình
  • Huấn luyện và ước lượng mô hình

Nó được gọi là TensorFlow vì nó nhận đầu vào dưới dạng mảng đa chiều, còn được gọi là... tenxơ. Bạn có thể xây dựng một loại sơ đồ của các thao tác (được gọi là Biểu đồ) mà bạn muốn thực hiện trên đầu vào đó. Đầu vào đi vào ở một đầu, sau đó nó chảy qua hệ thống gồm nhiều thao tác này và đi ra đầu kia dưới dạng đầu ra.

TensorFlow có thể chạy ở đâu?

Các yêu cầu về phần cứng và phần mềm của TensorFlow được chia thành hai giai đoạn:

Giai đoạn phát triểnĐây là giai đoạn huấn luyện mô hình, thường được thực hiện trên máy tính để bàn hoặc máy tính xách tay.

Giai đoạn chạy hoặc suy luậnSau khi quá trình huấn luyện hoàn tất, mô hình có thể chạy trên nhiều nền tảng khác nhau:

  • Máy tính để bàn đang chạy Windows, macOS hoặc Linux
  • Đám mây như một dịch vụ web
  • Các thiết bị di động như iOS và Android

Bạn có thể huấn luyện nó trên nhiều máy, sau đó bạn có thể chạy nó trên một máy khác khi bạn đã có mô hình được huấn luyện.

Mô hình có thể được huấn luyện và sử dụng trên cả GPU và CPU. GPU ban đầu được thiết kế cho trò chơi điện tử. Khoảng năm 2009, các nhà nghiên cứu tại Stanford đã chỉ ra rằng GPU cực kỳ hiệu quả trong các phép toán ma trận và đại số tuyến tính mà mạng nơ-ron phụ thuộc vào. Học sâu dựa trên rất nhiều phép nhân ma trận. TensorFlow rất nhanh trong việc tính toán phép nhân ma trận vì nó được viết bằng... C++. Mặc dù nó được triển khai ở C++, TensorFlow có thể được truy cập và kiểm soát bởi các ngôn ngữ khác, Python.

Một đặc điểm quan trọng khác là TenorBoard, công cụ này trực quan hóa đồ thị, các chỉ số huấn luyện và sự phân bố trọng số trong quá trình mô hình hoạt động.

Thành phần TensorFlow

máy căng

Tên gọi TensorFlow được lấy trực tiếp từ khung phần mềm cốt lõi của nó: máy căngTrong TensorFlow, tất cả các phép tính đều liên quan đến tensor. Tensor là một vector or ma trận có n kích thước đại diện cho tất cả các loại dữ liệu. Tất cả các giá trị trong một tenxơ chứa kiểu dữ liệu giống hệt nhau với một giá trị đã biết (hoặc đã biết một phần) định hình. Hình dạng của dữ liệu là chiều của ma trận hoặc mảng.

Một tensor có thể được bắt nguồn từ dữ liệu đầu vào hoặc kết quả của một phép tính. Trong TensorFlow, tất cả các hoạt động được thực hiện bên trong một đồ thị. Biểu đồ là một tập hợp các phép tính diễn ra liên tiếp. Mỗi thao tác được gọi là một nút op và được kết nối với nhau.

Biểu đồ phác thảo các hoạt động và kết nối giữa các nút. Tuy nhiên, nó không hiển thị các giá trị. Cạnh của các nút là tensor, tức là một cách để điền dữ liệu vào thao tác.

Đồ thị

TensorFlow sử dụng khung biểu đồ. Biểu đồ tập hợp và mô tả tất cả các tính toán chuỗi được thực hiện trong quá trình đào tạo. Biểu đồ có rất nhiều ưu điểm:

  • Nó hoạt động trên nhiều CPU hoặc GPU, và thậm chí cả trên các hệ điều hành di động.
  • Tính di động của đồ thị cho phép lưu giữ các phép tính để sử dụng ngay hoặc sau này. Đồ thị có thể được lưu để thực hiện trong tương lai.
  • Tất cả các tính toán trong biểu đồ được thực hiện bằng cách kết nối các tensor với nhau
    • Đồ thị có các nút và cạnh. Mỗi nút thực hiện một phép toán và tạo ra một kết quả đầu ra, trong khi các cạnh mô tả mối quan hệ đầu vào và đầu ra giữa các nút. Bản thân các tensor di chuyển dọc theo các cạnh.

Tại sao TensorFlow lại phổ biến?

TensorFlow được sử dụng rộng rãi vì nó dễ tiếp cận ở mọi trình độ chuyên môn. API của nó bao gồm mọi thứ, từ mô hình Keras ba dòng đến mạng CNN hoặc RNN được xây dựng thủ công. Vì quá trình tính toán được thể hiện dưới dạng đồ thị, TensorBoard có thể trực quan hóa mạng và giúp việc gỡ lỗi dễ dàng hơn nhiều. Nó cũng có thể triển khai ở quy mô lớn, chạy trên CPU, GPU và TPU, và trên thiết bị di động thông qua TensorFlow Lite.

TensorFlow vẫn là một trong hai framework học sâu được sử dụng nhiều nhất trên GitHub, cùng với Py.Torch.

TensorFlow Algorithms

TensorFlow đi kèm với các bộ ước lượng cấp cao cho một số thuật toán kinh điển. Trong TensorFlow 1.x, chúng nằm trong thư mục tf.estimator:

  • Hồi quy tuyến tính: tf.estimator.LinearRegressor
  • Phân loại: tf.estimator.LinearClassifier
  • Phân loại học sâu: tf.estimator.DNNClassifier
  • Học sâu và toàn diện: tf.estimator.DNNLinearCombinedClassifier
  • Hồi quy cây tăng cường: tf.estimator.BoostedTreesRegressor
  • Phân loại cây được tăng cường: tf.estimator.BoostedTreesClassifier

TensorFlow so với PythonTorch: Bạn nên chọn cái nào?

TensorFlow và PyTorCh và ch là hai framework học sâu chiếm ưu thế, và sự khác biệt thực tế đã thu hẹp đáng kể kể từ khi TensorFlow 2.0 áp dụng chế độ thực thi tức thời (eager execution).

Tiêu chí TensorFlow PyTorch
Được phát triển bởi Google Brain Mục tiêu AI
Thực hiện Háo hức, với tùy chọn biên dịch đồ thị. Háo hức, với tùy chọn biên dịch
API cấp cao Keras, được xây dựng trong Các thư viện riêng biệt như Lightning
Di động và điện toán biên Đã hoàn thiện, thông qua TensorFlow Lite Cải thiện thông qua việc thực thiTorch
Triển khai trình duyệt TensorFlow.js Cần chuyển đổi sang định dạng ONNX.
Pháo đài điển hình Sản xuất và triển khai Nghiên cứu và thử nghiệm

Câu trả lời thực tế: hãy chọn TensorFlow khi mô hình cần được triển khai lên thiết bị di động, trình duyệt hoặc hệ thống máy chủ được quản lý, và chọn Python.TorKhi bạn đang lặp lại quá trình phát triển kiến ​​trúc mô hình, Keras 3, ngôn ngữ mặc định từ TensorFlow 2.16 trở đi, càng làm cho quyết định trở nên dễ dàng hơn, bởi vì cùng một mã Keras có thể chạy trên TensorFlow, JAX hoặc Python.Torphần phụ trợ ch.

Cách thức hoạt động của các phép tính trong TensorFlow

⚠️ Lưu ý về phiên bản: Các hướng dẫn chi tiết bên dưới sử dụng TenorFlow 1.x Theo kiểu đồ thị và phiên, đây là cách rõ ràng nhất để thấy đồ thị luồng dữ liệu hoạt động như thế nào. Các phương thức tf.placeholder(), tf.Session() và make_initializable_iterator() đã bị loại bỏ trong TensorFlow 2.0. và sẽ gây ra lỗi AttributeError trên bản cài đặt hiện tại. Phần này TensorFlow 1.x so với TensorFlow 2.x Phần dưới đây sẽ đưa ra phiên bản hiện đại tương đương cho mỗi ví dụ.

import numpy as np
import tensorflow as tf

Trong hai dòng mã đầu tiên, chúng tôi đã nhập tensorflow dưới dạng tf. Với Python, việc sử dụng tên viết tắt cho thư viện là một thông lệ. Ưu điểm là tránh phải gõ đầy đủ tên thư viện khi cần sử dụng. Chẳng hạn, chúng ta có thể nhập tensorflow dưới dạng tf và gọi tf khi chúng ta muốn sử dụng hàm tensorflow

Hãy cùng thực hành quy trình làm việc cơ bản của TensorFlow với các ví dụ đơn giản. Chúng ta hãy tạo một đồ thị tính toán thực hiện phép nhân hai số với nhau.

Trong ví dụ này, chúng ta sẽ nhân X_1 và X_2 với nhau. TensorFlow sẽ tạo một nút để kết nối phép toán. Trong ví dụ của chúng ta, nó được gọi là multiply. Khi đồ thị được xác định, công cụ tính toán của TensorFlow sẽ thực hiện phép nhân X_1 và X_2 với nhau.

Tính toán hoạt động trong TensorFlow

Ví dụ về TensorFlow

Cuối cùng, chúng ta sẽ chạy phiên TensorFlow để chạy biểu đồ tính toán với các giá trị X_1 và X_2 rồi in kết quả của phép nhân.

Hãy định nghĩa các nút đầu vào X_1 và X_2. Khi tạo một nút trong TensorFlow, chúng ta phải chọn loại nút cần tạo. Các nút X1 và X2 sẽ là các nút giữ chỗ (placeholder). Nút giữ chỗ sẽ gán một giá trị mới mỗi khi chúng ta thực hiện phép tính. Chúng ta sẽ tạo chúng dưới dạng nút giữ chỗ TF.dot.

Bước 1: Xác định biến

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

Một placeholder cần có kiểu dữ liệu. Đây là các số, vì vậy tf.float32 là lựa chọn phù hợp. Tham số name là tùy chọn nhưng hữu ích, vì nó là nhãn xuất hiện trong hình ảnh trực quan hóa đồ thị trên TensorBoard. X_2 được định nghĩa theo cách tương tự.

Bước 2: Xác định phép tính

multiply = tf.multiply(X_1, X_2, name = "multiply")

Giờ chúng ta có thể định nghĩa nút thực hiện phép nhân. Trong TensorFlow, chúng ta có thể làm điều đó bằng cách tạo một nút tf.multiply.

Chúng ta sẽ chuyển các nút X_1 và X_2 sang nút nhân. Nó yêu cầu tensorflow liên kết các nút đó trong biểu đồ tính toán, vì vậy chúng tôi yêu cầu nó lấy các giá trị từ x và y rồi nhân kết quả. Chúng ta cũng hãy đặt tên cho nút nhân là nhân. Đó là toàn bộ định nghĩa cho biểu đồ tính toán đơn giản của chúng tôi.

Bước 3: Thực hiện thao tác

Để thực hiện các phép toán trên đồ thị, chúng ta cần tạo một phiên. Trong TensorFlow, điều này được thực hiện bằng tf.Session(). Bây giờ chúng ta đã có một phiên, chúng ta có thể yêu cầu phiên chạy các phép toán trên đồ thị tính toán của mình bằng cách gọi session. Để chạy phép tính, chúng ta cần sử dụng run.

Khi thực hiện phép nhân, nó cần giá trị của các nút X_1 và X_2, vì vậy bạn cần cung cấp chúng trong quá trình chạy. Chúng ta có thể làm điều đó bằng cách cung cấp một tham số có tên là feed_dict. Chúng ta truyền giá trị 1, 2, 3 cho X_1 và 4, 5, 6 cho X_2.

Chúng tôi in kết quả bằng print(result). Chúng ta sẽ thấy 4, 10 và 18 cho 1×4, 2×5 và 3×6

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

multiply = tf.multiply(X_1, X_2, name = "multiply")

with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})
    print(result)
[ 4. 10. 18.]

Tùy chọn tải dữ liệu vào TensorFlow

Bước đầu tiên trước khi đào tạo một thuật toán học máy Đó là việc tải dữ liệu. Có hai cách phổ biến để tải dữ liệu:

1. Tải dữ liệu vào bộ nhớĐây là phương pháp đơn giản nhất. Bạn tải tất cả dữ liệu vào bộ nhớ dưới dạng một mảng duy nhất. Bạn viết mã đơn giản. Python Về vấn đề này, không có phần nào là đặc thù của TensorFlow cả.

2. Quy trình xử lý dữ liệu TensorFlowTensorFlow cung cấp API tích hợp sẵn để tải dữ liệu, áp dụng các phép biến đổi và cung cấp dữ liệu cho mô hình. Phương pháp này hoạt động rất tốt, đặc biệt khi bạn có tập dữ liệu lớn. Ví dụ, các bản ghi hình ảnh thường có dung lượng rất lớn và không thể chứa hết trong bộ nhớ. Hệ thống xử lý dữ liệu tự động quản lý bộ nhớ.

Sử dụng giải pháp nào?

Tải dữ liệu vào bộ nhớ

Nếu tập dữ liệu của bạn không quá lớn, tức là dưới 10 gigabyte, bạn có thể sử dụng phương pháp đầu tiên. Dữ liệu có thể vừa với bộ nhớ. Bạn có thể sử dụng thư viện nổi tiếng có tên Pandas để nhập tệp CSV. Bạn sẽ tìm hiểu thêm về gấu trúc trong hướng dẫn tiếp theo.

Tải dữ liệu bằng pipeline TensorFlow

Phương pháp thứ hai hoạt động tốt nhất nếu bạn có tập dữ liệu lớn. Chẳng hạn, nếu bạn có tập dữ liệu 50 gigabyte và máy tính của bạn chỉ có 16 gigabyte bộ nhớ thì máy sẽ gặp sự cố.

Trong trường hợp này, bạn cần xây dựng một pipeline TensorFlow. Pipeline sẽ tải dữ liệu theo từng lô, hay từng phần nhỏ. Mỗi lô dữ liệu sẽ được đẩy vào pipeline và sẵn sàng cho quá trình huấn luyện. Xây dựng pipeline là một giải pháp tuyệt vời vì nó cho phép bạn sử dụng điện toán song song. Điều đó có nghĩa là TensorFlow sẽ huấn luyện mô hình trên nhiều CPU. Điều này giúp tăng tốc độ tính toán và làm cho việc huấn luyện các mạng lớn hơn trở nên khả thi.

Tóm lại: hãy tải các tập dữ liệu nhỏ vào bộ nhớ bằng pandas, và sử dụng pipeline TensorFlow khi dữ liệu lớn hoặc khi bạn muốn tải song song trên nhiều CPU.

Cách tạo đường ống TensorFlow

Dưới đây là các bước để tạo đường dẫn TensorFlow:

Trong ví dụ trước, chúng ta đã thêm thủ công ba giá trị cho X_1 và X_2. Bây giờ, chúng ta sẽ xem cách tải dữ liệu vào TensorFlow:

Bước 1) Tạo dữ liệu

Trước hết, hãy sử dụng thư viện gọn gàng để tạo hai giá trị ngẫu nhiên.

import numpy as np
x_input = np.random.sample((1,2))
print(x_input)

[[0.8835775 0.23766977]]

Bước 2) Tạo trình giữ chỗ

Giống như trong ví dụ trước, chúng ta tạo một trình giữ chỗ có tên X. Chúng ta cần chỉ định rõ ràng hình dạng của tensor. Trong trường hợp, chúng ta sẽ tải một mảng chỉ có hai giá trị. Chúng ta có thể viết hình dạng như shape=[1,2]

# using a placeholder
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')

Bước 3) Xác định phương thức tập dữ liệu

Tiếp theo, chúng ta cần xác định Bộ dữ liệu nơi chúng ta có thể điền giá trị của trình giữ chỗ x. Chúng ta cần sử dụng phương thức tf.data.Dataset.from_tensor_slices

dataset = tf.data.Dataset.from_tensor_slices(x)

Bước 4) Tạo đường ống

Ở bước bốn, chúng ta cần khởi tạo đường dẫn nơi dữ liệu sẽ chảy. Chúng ta cần tạo một iterator với make_initializable_iterator. Chúng tôi đặt tên nó là iterator. Sau đó, chúng ta cần gọi iterator này để cung cấp lô dữ liệu tiếp theo, get_next. Chúng tôi đặt tên bước này là get_next. Lưu ý rằng trong ví dụ của chúng tôi, chỉ có một lô dữ liệu chỉ có hai giá trị.

iterator = dataset.make_initializable_iterator() 
get_next = iterator.get_next()

Bước 5) Thực hiện thao tác

Bước cuối cùng tương tự như ví dụ trước. Chúng tôi bắt đầu một phiên và chạy trình vòng lặp hoạt động. Chúng tôi cung cấp cho Feed_dict giá trị được tạo bởi cục mịch. Hai giá trị này sẽ điền vào phần giữ chỗ x. Sau đó chúng ta chạy get_next để in kết quả.

with tf.Session() as sess:
    # feed the placeholder with data
    sess.run(iterator.initializer, feed_dict={ x: x_input }) 
    print(sess.run(get_next))
[0.8835775  0.23766978]

TensorFlow 1.x so với TensorFlow 2.x: Những thay đổi nào đã được thực hiện?

TensorFlow 2.0 đã thực hiện một sự thay đổi hoàn toàn về API dành cho người dùng. Hiểu được sự khác biệt này rất quan trọng, bởi vì phần lớn mã hướng dẫn trực tuyến, bao gồm cả các ví dụ ở trên, đều nhắm đến kiểu 1.x.

GIỚI THIỆU TenorFlow 1.x TenorFlow 2.x
Mô hình thực thi Hãy định nghĩa đồ thị, sau đó chạy nó. Theo mặc định, các thao tác được thực hiện ngay lập tức.
Dữ liệu cấp liệu tf.placeholder cộng với feed_dict Qua Python giá trị hoặc tensor trực tiếp
Vận hành hoạt động tf.Session().run() Gọi hàm, không cần phiên làm việc.
API cấp cao tf.estimator Keras, tf.keras
Tối ưu hóa đồ thị Luôn luôn dựa trên đồ thị Chọn tham gia bằng cách sử dụng decorator @tf.function
Lặp lại một tập dữ liệu make_initializable_iterator() Trơn Python vòng lặp for trên tập dữ liệu

Ví dụ về phép nhân, được viết lại. Ba bước và một phiên được gộp lại thành một dòng duy nhất, bởi vì thao tác được thực thi ngay khi được gọi:

import tensorflow as tf

X_1 = tf.constant([1, 2, 3], dtype=tf.float32)
X_2 = tf.constant([4, 5, 6], dtype=tf.float32)

result = tf.multiply(X_1, X_2, name="multiply")
print(result.numpy())        # [ 4. 10. 18.]

Quy trình xử lý dữ liệu đầu vào đã được viết lại. Không cần đối tượng giữ chỗ hay đối tượng lặp nào cả:

import numpy as np
import tensorflow as tf

x_input = np.random.sample((1, 2))
dataset = tf.data.Dataset.from_tensor_slices(x_input)

for batch in dataset:
    print(batch.numpy())

Nếu bạn cần tốc độ của một đồ thị đã biên dịch, hãy gói hàm đó trong `@tf.function` và sử dụng TensorFlow. tracNó tự động hợp nhất thành một. Các tập lệnh 1.x cũ cũng có thể được chạy mà không cần thay đổi thông qua không gian tên tf.compat.v1, mặc dù đường dẫn đó chỉ dành cho việc bảo trì và không nên được sử dụng cho các công việc mới.

TensorFlow: Những điểm chính cần lưu ý và Code Tài liệu tham khảo

  • Ý nghĩa của TensorFlow: TensorFlow là thư viện deep learning nổi tiếng nhất trong những năm gần đây. Người thực hành sử dụng TensorFlow có thể xây dựng bất kỳ cấu trúc deep learning nào, như CNN, RNN hoặc mạng nơ-ron nhân tạo đơn giản.
  • TensorFlow chủ yếu được sử dụng bởi giới học thuật, các công ty khởi nghiệp và các tập đoàn lớn. Google Hầu hết mọi thứ đều sử dụng TensorFlow. Google các sản phẩm hàng ngày bao gồm Gmail, Ảnh và Google Máy tìm kiếm.
  • Google Nhóm nghiên cứu Brain đã phát triển TensorFlow để thu hẹp khoảng cách giữa các nhà nghiên cứu và các nhà phát triển sản phẩm. Năm 2015, họ đã công khai TensorFlow; nó đang nhanh chóng trở nên phổ biến. Hiện nay, TensorFlow là thư viện học sâu có nhiều kho lưu trữ nhất trên GitHub.
  • Các chuyên gia sử dụng TensorFlow vì nó dễ dàng triển khai ở quy mô lớn, trên đám mây, trên trình duyệt hoặc trên các thiết bị di động chạy iOS và iOS. Android.

TensorFlow hoạt động theo phiên. Mỗi phiên được định nghĩa bởi một đồ thị với các phép tính khác nhau. Một ví dụ đơn giản là phép nhân hai số. Trong TensorFlow, cần ba bước:

  1. Xác định biến
X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")
  1. Xác định phép tính
multiply = tf.multiply(X_1, X_2, name = "multiply")
  1. Thực hiện thao tác
with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1: [1, 2, 3], X_2: [4, 5, 6]})
    print(result)

Một phương pháp phổ biến trong TensorFlow là tạo một pipeline để tải dữ liệu. Nếu bạn làm theo năm bước sau, bạn sẽ có thể tải dữ liệu vào TensorFlow:

  1. Tạo dữ liệu
import numpy as np
x_input = np.random.sample((1,2))
print(x_input)
  1. Tạo trình giữ chỗ
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
  1. Xác định phương pháp tập dữ liệu
dataset = tf.data.Dataset.from_tensor_slices(x)
  1. Tạo đường dẫn
iterator = dataset.make_initializable_iterator()
get_next = iterator.get_next()
  1. Thực hiện chương trình
with tf.Session() as sess:
    sess.run(iterator.initializer, feed_dict={x: x_input})
    print(sess.run(get_next))

Câu Hỏi Thường Gặp

tf.placeholder thuộc về TensorFlow 1.x và đã bị loại bỏ trong phiên bản 2.0, phiên bản này thực thi ngay lập tức và không cần placeholder. Hãy truyền trực tiếp các giá trị hoặc sử dụng tf.compat.v1 để chạy các script cũ mà không cần thay đổi.

Tensor là một mảng n chiều trong đó mọi phần tử đều có cùng một kiểu dữ liệu. Một giá trị vô hướng có hạng 0, một vectơ có hạng 1, một ma trận có hạng 2, và một batch ảnh thường có hạng 4.

Keras là API cấp cao để định nghĩa và huấn luyện mô hình, trong khi TensorFlow là công cụ tính toán cơ bản. Từ phiên bản 2.16 trở đi, TensorFlow tích hợp Keras 3, cũng có thể chạy trên JAX hoặc Python.Torch.

TensorFlow phù hợp với AI trong môi trường sản xuất: phân loại hình ảnh, xử lý ngôn ngữ tự nhiên, hệ thống đề xuất và bất kỳ mô hình nào cần được triển khai trên thiết bị di động, trình duyệt hoặc cụm máy chủ.

Đúng vậy. Trợ lý AI có thể viết lại mã phiên và mã giữ chỗ thành các mã tương đương tức thời và đánh dấu các hàm đã bị xóa. Hãy kiểm tra kết quả đầu ra bằng số so với mã gốc trước khi loại bỏ kịch bản cũ.

Tóm tắt bài viết này với: