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.

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ì.

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.
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:
- Xác định biến
X_1 = tf.placeholder(tf.float32, name = "X_1") X_2 = tf.placeholder(tf.float32, name = "X_2")
- Xác định phép tính
multiply = tf.multiply(X_1, X_2, name = "multiply")
- 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:
- Tạo dữ liệu
import numpy as np
x_input = np.random.sample((1,2))
print(x_input)
- Tạo trình giữ chỗ
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
- Xác định phương pháp tập dữ liệu
dataset = tf.data.Dataset.from_tensor_slices(x)
- Tạo đường dẫn
iterator = dataset.make_initializable_iterator() get_next = iterator.get_next()
- 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))
