Trình chuyển đổi Python sang JS

Vậy là bạn đã thực hiện những bước đầu tiên với TensorFlow. js, đã thử các mô hình tạo sẵn của chúng tôi hoặc thậm chí có thể tạo mô hình của riêng bạn - nhưng bạn đã thấy một số nghiên cứu tiên tiến xuất hiện trong Python và bạn tò mò muốn xem liệu nó có chạy trong trình duyệt web để thực hiện ý tưởng tuyệt vời mà bạn đã trở thành hay không . Nghe có vẻ quen?

TenorFlow. js đã tạo một công cụ thuận tiện để chuyển đổi các mô hình ở định dạng SavingModel sang TensorFlow. js thông qua trình chuyển đổi dòng lệnh để bạn có thể tận hưởng việc sử dụng các mô hình như vậy với phạm vi tiếp cận và quy mô của web

Bạn sẽ học được gì

Trong phòng thực hành mã này, bạn sẽ học cách sử dụng TensorFlow. trình chuyển đổi dòng lệnh js để chuyển một SavingModel được tạo bởi Python sang mô hình. json cần thiết để thực thi ở phía máy khách trong trình duyệt web

Đặc biệt

  • Cách tạo một mô hình Python ML đơn giản và lưu nó vào định dạng bắt buộc mà TensorFlow cần. trình chuyển đổi js
  • Cách cài đặt và sử dụng TensorFlow. js trên SavingModel mà bạn đã xuất từ ​​Python
  • Lấy các tệp kết quả từ chuyển đổi và sử dụng trong ứng dụng web JS của bạn
  • Hiểu những việc cần làm khi xảy ra sự cố [không phải tất cả các kiểu máy sẽ chuyển đổi] và những tùy chọn bạn có

Hãy tưởng tượng bạn có thể thực hiện một số nghiên cứu mới được phát hành và cung cấp mô hình đó cho hàng triệu nhà phát triển JS trên toàn cầu. Hoặc có thể bạn sẽ tự sử dụng điều này trong sáng tạo của riêng mình, điều mà bất kỳ ai trên thế giới sau đó cũng có thể trải nghiệm nếu nó chạy trong trình duyệt web, vì không yêu cầu thiết lập môi trường hoặc phụ thuộc phức tạp. Sẵn sàng để có được hack?

Xin lưu ý. Codelab này tập trung vào cách sử dụng và bắt đầu với TensorFlow. js, vì vậy bản thân hành động tạo mô hình sẽ sử dụng mã soạn sẵn để chúng tôi có thể lấy một số tệp để sử dụng trong hướng dẫn của mình. Để tìm hiểu cách tạo mô hình của riêng bạn chi tiết hơn, hãy xem phần này của chúng tôi

Chia sẻ những gì bạn chuyển đổi với chúng tôi

Bạn có thể sử dụng những gì chúng ta học hôm nay để thử và chuyển đổi một số mô hình yêu thích của bạn từ Python. Nếu bạn quản lý để làm như vậy thành công và tạo một trang web demo hoạt động của mô hình đang hoạt động, hãy gắn thẻ chúng tôi trên phương tiện truyền thông xã hội bằng cách sử dụng thẻ bắt đầu bằng #MadeWithTFJS để có cơ hội cho dự án của bạn được giới thiệu trên blog TensorFlow của chúng tôi hoặc thậm chí là các sự kiện hiển thị và kể trong tương lai. Chúng tôi rất muốn thấy nhiều nghiên cứu tuyệt vời hơn được chuyển lên web và cho phép nhiều người hơn sử dụng các mô hình đó theo những cách đổi mới hoặc sáng tạo giống như ví dụ tuyệt vời này

2. TensorFlow là gì. js?

TenorFlow. js là một thư viện máy học mã nguồn mở có thể chạy bất cứ nơi nào JavaScript có thể. Nó dựa trên thư viện TensorFlow ban đầu được viết bằng Python và nhằm mục đích tạo lại trải nghiệm của nhà phát triển này và bộ API cho hệ sinh thái JavaScript

nó có thể được sử dụng ở đâu?

Với tính di động của JavaScript, giờ đây bạn có thể viết bằng 1 ngôn ngữ và thực hiện quá trình học máy trên tất cả các nền tảng sau một cách dễ dàng

  • Phía máy khách trong trình duyệt web sử dụng vanilla JavaScript
  • Phía máy chủ và thậm chí cả các thiết bị IoT như Raspberry Pi sử dụng Node. js
  • Ứng dụng máy tính để bàn sử dụng Electron
  • Ứng dụng di động gốc sử dụng React Native

TenorFlow. js cũng hỗ trợ nhiều chương trình phụ trợ trong mỗi môi trường này [môi trường dựa trên phần cứng thực tế mà nó có thể thực thi bên trong chẳng hạn như CPU ​​hoặc WebGL chẳng hạn. "Phần phụ trợ" trong ngữ cảnh này không có nghĩa là môi trường phía máy chủ - phần phụ trợ để thực thi có thể là phía máy khách trong WebGL chẳng hạn] để đảm bảo tính tương thích và cũng giúp mọi thứ chạy nhanh. Hiện tại TensorFlow. js hỗ trợ

  • Thực thi WebGL trên cạc đồ họa [GPU] của thiết bị - đây là cách nhanh nhất để thực thi các mô hình lớn hơn [kích thước trên 3 MB] với khả năng tăng tốc GPU
  • Thực thi Web Assembly [WASM] trên CPU - để cải thiện hiệu suất CPU trên các thiết bị, bao gồm cả điện thoại di động thế hệ cũ chẳng hạn. Điều này phù hợp hơn với các mô hình nhỏ hơn [kích thước nhỏ hơn 3 MB], thực sự có thể thực thi nhanh hơn trên CPU với WASM so với WebGL do chi phí tải nội dung lên bộ xử lý đồ họa
  • Thực thi CPU - dự phòng nếu không có môi trường nào khác khả dụng. Đây là chậm nhất trong ba nhưng luôn ở đó cho bạn

Ghi chú. Bạn có thể chọn buộc một trong những phần phụ trợ này nếu bạn biết mình sẽ thực thi trên thiết bị nào hoặc đơn giản là bạn có thể để TensorFlow. js quyết định cho bạn nếu bạn không chỉ định điều này

Siêu năng lực phía khách hàng

Chạy TenorFlow. js trong trình duyệt web trên máy khách có thể dẫn đến một số lợi ích đáng xem xét

Riêng tư

Bạn có thể đào tạo và phân loại dữ liệu trên máy khách mà không cần gửi dữ liệu đến máy chủ web của bên thứ 3. Đôi khi, đây có thể là một yêu cầu để tuân thủ luật pháp địa phương, chẳng hạn như GDPR chẳng hạn hoặc khi xử lý bất kỳ dữ liệu nào mà người dùng có thể muốn giữ trên máy của họ và không được gửi cho bên thứ ba

Tốc độ

Vì bạn không phải gửi dữ liệu đến máy chủ từ xa, suy luận [hành động phân loại dữ liệu] có thể nhanh hơn. Thậm chí tốt hơn, bạn có quyền truy cập trực tiếp vào các cảm biến của thiết bị như máy ảnh, micrô, GPS, gia tốc kế, v.v. nếu người dùng cấp cho bạn quyền truy cập

Phạm vi tiếp cận và quy mô

Với một cú nhấp chuột, bất kỳ ai trên thế giới cũng có thể nhấp vào liên kết bạn gửi cho họ, mở trang web trong trình duyệt của họ và sử dụng những gì bạn đã tạo. Không cần thiết lập Linux phía máy chủ phức tạp với trình điều khiển CUDA và hơn thế nữa chỉ để sử dụng hệ thống máy học

Phí tổn

Không có máy chủ nghĩa là thứ duy nhất bạn cần trả tiền là CDN để lưu trữ các tệp HTML, CSS, JS và mô hình của bạn. Chi phí của một CDN rẻ hơn nhiều so với việc giữ một máy chủ [có thể có gắn card đồ họa] hoạt động 24/7

Các tính năng phía máy chủ

Tận dụng nút. js triển khai TensorFlow. js cho phép các tính năng sau

Hỗ trợ CUDA đầy đủ

Về phía máy chủ, để tăng tốc card đồ họa, bạn phải cài đặt trình điều khiển NVIDIA CUDA để TensorFlow hoạt động với card đồ họa [không giống như trong trình duyệt sử dụng WebGL - không cần cài đặt]. Tuy nhiên, với sự hỗ trợ CUDA đầy đủ, bạn hoàn toàn có thể tận dụng các khả năng cấp thấp hơn của card đồ họa, dẫn đến thời gian đào tạo và suy luận nhanh hơn. Hiệu suất ngang bằng với triển khai Python TensorFlow vì cả hai đều chia sẻ cùng một chương trình phụ trợ C++

Kích thước mô hình

Đối với các mô hình tiên tiến từ nghiên cứu, bạn có thể đang làm việc với các mô hình rất lớn, có thể có kích thước hàng gigabyte. Các mô hình này hiện không thể chạy trong trình duyệt web do giới hạn sử dụng bộ nhớ trên mỗi tab trình duyệt. Để chạy các mô hình lớn hơn này, bạn có thể sử dụng Node. js trên máy chủ của riêng bạn với các thông số kỹ thuật phần cứng mà bạn yêu cầu để chạy một mô hình như vậy một cách hiệu quả

IOT

Nút. js được hỗ trợ trên các máy tính bảng đơn phổ biến như Raspberry Pi, điều này có nghĩa là bạn có thể thực thi TensorFlow. js trên các thiết bị như vậy

Tốc độ

Nút. js được viết bằng JavaScript, điều đó có nghĩa là nó được hưởng lợi từ việc biên dịch kịp thời. Điều này có nghĩa là bạn có thể thường thấy hiệu suất tăng khi sử dụng Node. js vì nó sẽ được tối ưu hóa trong thời gian chạy, đặc biệt là đối với bất kỳ tiền xử lý nào bạn có thể đang thực hiện. Một ví dụ tuyệt vời về điều này có thể được thấy trong nghiên cứu điển hình này cho thấy Hugging Face đã sử dụng Node như thế nào. js để tăng hiệu suất gấp 2 lần cho mô hình xử lý ngôn ngữ tự nhiên của họ

Bây giờ bạn đã hiểu những điều cơ bản về TensorFlow. js, nơi nó có thể chạy và một số lợi ích, hãy bắt đầu làm những điều hữu ích với nó

3. Thiết lập hệ thống của bạn

Đối với hướng dẫn này, chúng tôi sẽ sử dụng Ubuntu - một bản phân phối Linux phổ biến được nhiều người sử dụng và có sẵn trên Google Cloud Compute Engine làm hình ảnh cơ sở nếu bạn chọn theo dõi trên máy ảo dựa trên đám mây

Tại thời điểm viết bài, chúng ta có thể chọn hình ảnh của Ubuntu 18. 04. 4 LTS khi đó là những gì chúng ta sẽ sử dụng. Tất nhiên, bạn có thể sử dụng máy của riêng mình hoặc thậm chí là một hệ điều hành khác nếu bạn chọn làm như vậy, nhưng các hướng dẫn cài đặt và phần phụ thuộc có thể khác nhau giữa các hệ thống

Cài đặt TensorFlow [phiên bản Python]

Bây giờ, vì có thể bạn đang cố gắng chuyển đổi một số mô hình dựa trên Python hiện có mà bạn đã tìm thấy/hoặc sẽ viết, nên trước khi chúng tôi có thể xuất tệp "SavedModel" từ Python, bạn sẽ cần thiết lập phiên bản Python của TensorFlow trên phiên bản của mình nếu

SSH vào máy đám mây mà bạn đã tạo ở trên, sau đó nhập thông tin sau vào cửa sổ đầu cuối

cửa sổ đầu cuối

sudo apt update
sudo apt-get install python3

Điều này sẽ đảm bảo chúng tôi đã cài đặt Python 3 trên máy. Trăn 3. 4 hoặc cao hơn phải được cài đặt để sử dụng TensorFlow

Để xác minh phiên bản chính xác đã được cài đặt, hãy nhập thông tin sau

cửa sổ đầu cuối

python3 --version

Bạn sẽ thấy một số đầu ra cho biết số phiên bản, chẳng hạn như

python3 --version
3. Nếu bạn thấy điều này được in chính xác và nó cao hơn 3. 4 chúng tôi đã sẵn sàng để tiếp tục

Tiếp theo, chúng tôi sẽ cài đặt PIP cho Python 3, trình quản lý gói của Python và sau đó cập nhật nó. Loại

cửa sổ đầu cuối

sudo apt install python3-pip
pip3 install --upgrade pip

Một lần nữa, chúng tôi có thể xác minh cài đặt pip3 qua

cửa sổ đầu cuối

pip3 --version

Tại thời điểm viết bài, chúng tôi thấy

python3 --version
4 được in ra thiết bị đầu cuối sau khi thực hiện lệnh này

Trước khi chúng tôi có thể cài đặt TensorFlow, nó yêu cầu gói "setuptools" của Python phải là phiên bản 41. 0. 0 hoặc cao hơn. Chạy lệnh sau để đảm bảo nó được cập nhật lên phiên bản mới nhất

cửa sổ đầu cuối

pip3 install -U setuptools

Cuối cùng, bây giờ chúng ta có thể cài đặt TensorFlow cho Python

cửa sổ đầu cuối

pip3 install tensorflow

Quá trình này có thể mất chút thời gian để hoàn thành, vì vậy vui lòng đợi cho đến khi nó thực hiện xong

Cảnh báo. Trong hướng dẫn này, chúng tôi đang cài đặt phiên bản TensorFlow chỉ dành cho CPU để thiết lập nhanh. Nếu muốn sử dụng GPU của phiên bản, bạn cần cài đặt phiên bản GPU của TensorFlow - phiên bản này có thể giúp bạn có thời gian đào tạo nhanh hơn nhiều. Tuy nhiên, phiên bản này phụ thuộc vào việc cài đặt trình điều khiển NVIDIA CUDA, điều này nằm ngoài phạm vi của phòng thí nghiệm mã này. Bạn có thể tìm thêm chi tiết về cách cài đặt phiên bản GPU của TensorFlow tại đây

Hãy kiểm tra xem TensorFlow đã được cài đặt đúng chưa. Tạo một tệp Python có tên

python3 --version
5 trong thư mục hiện tại của bạn

cửa sổ đầu cuối

nano test.py

Khi nano mở ra, chúng ta có thể viết một số mã Python để in phiên bản TensorFlow đã cài đặt

kiểm tra. py

import tensorflow as tf
print[tf.__version__]

Nhấn

python3 --version
6 để ghi các thay đổi vào đĩa và sau đó nhấn
python3 --version
7 để thoát khỏi trình chỉnh sửa nano

Bây giờ chúng ta có thể chạy tệp Python này để xem phiên bản TensorFlow được in ra màn hình

cửa sổ đầu cuối

python3 test.py

Tại thời điểm viết bài, chúng tôi thấy

python3 --version
8 được in ra bảng điều khiển cho phiên bản Python TensorFlow đã cài đặt của chúng tôi

Cảnh báo. Nếu bạn thấy nhiều cảnh báo bật lên liên quan đến numpy, chỉ cần nhập thông tin sau vào terminal để nâng cấp phiên bản numpy của bạn

python3 --version
9

sudo apt install python3-pip
pip3 install --upgrade pip
0

Bạn vẫn có thể thấy một số cảnh báo liên quan đến GPU / libcudart - điều này không sao vì chúng tôi đã cài đặt phiên bản CPU của TensorFlow chứ không phải phiên bản GPU. Bạn có thể bỏ qua những

4. Tạo một mô hình Python

Bước tiếp theo của phòng thí nghiệm lập trình này sẽ hướng dẫn cách tạo một mô hình Python đơn giản để chỉ ra cách chúng ta có thể lưu mô hình được đào tạo kết quả này ở định dạng "SavedModel" để sau đó sử dụng với TensorFlow của chúng ta. trình chuyển đổi dòng lệnh js. Nguyên tắc sẽ tương tự đối với bất kỳ mô hình Python nào mà bạn đang cố gắng chuyển đổi, nhưng chúng tôi sẽ giữ mã này đơn giản để mọi người có thể hiểu

Hãy chỉnh sửa bài kiểm tra của chúng tôi. py chúng tôi đã tạo trong phần đầu tiên và cập nhật mã như sau

kiểm tra. py

import tensorflow as tf
print[tf.__version__]

# Import NumPy - package for working with arrays in Python.
import numpy as np

# Import useful keras functions - this is similar to the
# TensorFlow.js Layers API functionality.
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense

# Create a new dense layer with 1 unit, and input shape of [1].
layer0 = Dense[units=1, input_shape=[1]]
model = Sequential[[layer0]]

# Compile the model using stochastic gradient descent as optimiser
# and the mean squared error loss function.
model.compile[optimizer='sgd', loss='mean_absolute_error']

# Provide some training data! Here we are using some fictional data 
# for house square footage and house price [which is simply 1000x the 
# square footage] which our model must learn for itself.
xs = np.array[[800.0, 850.0, 900.0, 950.0, 980.0, 1000.0, 1050.0, 1075.0, 1100.0, 1150.0, 1200.0, 1250.0, 1300.0, 1400.0, 1500.0, 1600.0, 1700.0, 1800.0, 1900.0, 2000.0], dtype=float]

ys = np.array[[800000.0, 850000.0, 900000.0, 950000.0, 980000.0, 1000000.0, 1050000.0, 1075000.0, 1100000.0, 1150000.0, 1200000.0,  1250000.0, 1300000.0, 1400000.0, 1500000.0, 1600000.0, 1700000.0, 1800000.0, 1900000.0, 2000000.0], dtype=float]

# Train the model for 500 epochs.
model.fit[xs, ys, epochs=500, verbose=0]

# Test the trained model on a test input value
print[model.predict[[1200.0]]]

# Save the model we just trained to the "SavedModel" format to the
# same directory our test.py file is located.
tf.saved_model.save[model, './']

Mã này sẽ đào tạo một hồi quy tuyến tính rất đơn giản để học cách ước tính mối quan hệ giữa x [đầu vào] và y [đầu ra] của chúng tôi được cung cấp. Sau đó, chúng tôi sẽ lưu mô hình được đào tạo kết quả vào đĩa. Kiểm tra các bình luận nội tuyến để biết thêm chi tiết về những gì mỗi dòng làm

Nếu chúng tôi kiểm tra thư mục của mình sau khi chạy chương trình này [bằng cách gọi

sudo apt install python3-pip
pip3 install --upgrade pip
1], bây giờ chúng tôi sẽ thấy một số tệp và thư mục mới được tạo trong thư mục hiện tại của chúng tôi

  • kiểm tra. py
  • đã lưu_model. pb
  • tài sản
  • biến

Bây giờ chúng tôi đã tạo các tệp mà chúng tôi cần để TensorFlow sử dụng. js để chuyển đổi mô hình này để chạy trong trình duyệt

5. Chuyển đổi SavingModel thành TensorFlow. định dạng js

Cài đặt TensorFlow. trình chuyển đổi js

Để cài đặt bộ chuyển đổi, hãy chạy lệnh sau

cửa sổ đầu cuối

python3 --version
0

Điều đó thật dễ dàng

Xin lưu ý. Ngoài ra còn có một trình hướng dẫn mà bạn có thể cài đặt bằng cách sử dụng

sudo apt install python3-pip
pip3 install --upgrade pip
2

Sau khi cài đặt, bạn có thể chạy lệnh

sudo apt install python3-pip
pip3 install --upgrade pip
3 thay vào đó, lệnh này sẽ hướng dẫn bạn qua quá trình chuyển đổi theo cách thân thiện hơn như được hiển thị tại đây

Giả sử chúng ta đang sử dụng trình chuyển đổi dòng lệnh [_______3_______4] chứ không phải phiên bản trình hướng dẫn được hiển thị ở trên, chúng tôi có thể gọi lệnh sau để chuyển đổi mô hình đã lưu mà chúng tôi vừa tạo và chuyển rõ ràng các tham số cho trình chuyển đổi

cửa sổ đầu cuối

python3 --version
1

Chuyện gì đang xảy ra ở đây?

Trong mã ví dụ của chúng tôi ở trên, bạn sẽ lưu ý rằng chúng tôi đã nhập máy ảnh và sử dụng các API lớp cấp cao hơn của nó để tạo mô hình của chúng tôi. Nếu bạn chưa sử dụng máy ảnh trong mã Python của mình, bạn có thể muốn sử dụng định dạng đầu vào khác

  • máy ảnh - để tải định dạng máy ảnh [loại tệp HDF5]
  • tf_saved_model - để tải mô hình sử dụng API lõi tensorflow thay vì máy ảnh
  • tf_frozen_model - để tải mô hình có chứa trọng số cố định
  • tf_hub - để tải một mô hình được tạo từ trung tâm tensorflow

Bạn có thể tìm hiểu thêm về các định dạng khác tại đây

2 tham số tiếp theo chỉ định thư mục chứa mô hình đã lưu - trong bản demo ở trên, chúng tôi chỉ định thư mục hiện tại và cuối cùng, chúng tôi chỉ định thư mục nào chúng tôi muốn xuất chuyển đổi của mình sang thư mục mà chúng tôi chỉ định ở trên là thư mục có tên "

sudo apt install python3-pip
pip3 install --upgrade pip
5" trong

Chạy lệnh trên sẽ tạo một thư mục mới trong thư mục hiện tại có tên là

sudo apt install python3-pip
pip3 install --upgrade pip
5 chứa
sudo apt install python3-pip
pip3 install --upgrade pip
7

  • mô hình. json
  • Nhóm1-shard1of1. thùng rác

Đây là những tệp chúng ta cần để chạy mô hình trong trình duyệt web. Lưu các tệp này vì chúng tôi sẽ sử dụng chúng trong phần tiếp theo

Xin lưu ý. TensorFlow phía khách hàng. js sẽ luôn bao gồm một tệp

sudo apt install python3-pip
pip3 install --upgrade pip
8 và ít nhất một tệp
sudo apt install python3-pip
pip3 install --upgrade pip
9. Các tệp nhị phân được chia nhỏ thành các khối có kích thước 4 MB để tối ưu hóa việc phân phối song song các nội dung đó tới trình duyệt web ở phía máy khách

6. Sử dụng mô hình đã chuyển đổi của chúng tôi trong trình duyệt

Lưu trữ các tệp đã chuyển đổi

Trước tiên, chúng tôi phải đặt các tệp

sudo apt install python3-pip
pip3 install --upgrade pip
8 và
pip3 --version
1 được tạo trên máy chủ web để chúng tôi có thể truy cập chúng qua trang web của mình. Đối với bản demo này, chúng tôi sẽ sử dụng Glitch. com để các bạn dễ theo dõi. Tuy nhiên, nếu bạn đến từ nền tảng kỹ thuật web, bạn có thể chọn kích hoạt một máy chủ http đơn giản trên phiên bản máy chủ Ubuntu hiện tại của mình để thực hiện việc này thay thế. Sự lựa chọn là của bạn

Đang tải tệp lên Glitch

  1. Đăng nhập vào Glitch. com
  2. Sử dụng liên kết này để. Cái này chứa các tệp html, css và js khung nhập TensorFlow. thư viện js để chúng tôi sẵn sàng sử dụng
  3. Nhấp vào thư mục "nội dung" trong bảng điều khiển bên trái
  4. Nhấp vào "tải nội dung lên" và chọn
    pip3 --version
    
    2 để tải lên thư mục này. Bây giờ nó sẽ trông như thế này sau khi được tải lên.
  5. Nếu bạn nhấp vào tệp
    pip3 --version
    
    2 mà bạn vừa tải lên, bạn sẽ có thể sao chép URL tới vị trí của nó. Sao chép đường dẫn này ngay bây giờ như được hiển thị.
  6. Bây giờ hãy chỉnh sửa
    sudo apt install python3-pip
    pip3 install --upgrade pip
    
    8 bằng trình soạn thảo văn bản yêu thích của bạn trên máy cục bộ của bạn và tìm kiếm [sử dụng CTRL+F] cho tệp
    pip3 --version
    
    2 sẽ được đề cập ở đâu đó trong đó

Thay thế tên tệp này bằng url bạn đã sao chép từ bước 5, nhưng xóa

pip3 --version
6 ở đầu mà trục trặc tạo ra từ đường dẫn đã sao chép

Sau khi chỉnh sửa, nó sẽ giống như thế này [lưu ý cách đường dẫn máy chủ chính đã bị xóa nên chỉ giữ lại tên tệp đã tải lên].

7. Bây giờ hãy lưu và tải tệp
sudo apt install python3-pip
pip3 install --upgrade pip
8 đã chỉnh sửa này lên trục trặc bằng cách nhấp vào nội dung, sau đó nhấp vào nút "tải nội dung lên" [quan trọng]. Nếu bạn không sử dụng nút vật lý và kéo và thả, nó sẽ được tải lên dưới dạng tệp có thể chỉnh sửa thay vì trên CDN, tệp này sẽ không nằm trong cùng thư mục và đường dẫn tương đối được giả định khi TensorFlow. js cố tải xuống các tệp nhị phân cho một mô hình nhất định. Nếu làm đúng bạn sẽ thấy 2 file trong thư mục
pip3 --version
8 như thế này.

Tuyệt vời. Bây giờ chúng tôi đã sẵn sàng sử dụng các tệp đã lưu của mình với một số mã thực tế trong trình duyệt

Cảnh báo. Nếu bạn quyết định không sử dụng Glitch. com và thay vào đó đang chạy máy chủ web của riêng bạn, không cần chỉnh sửa tệp

sudo apt install python3-pip
pip3 install --upgrade pip
8 miễn là bạn đang cung cấp các tệp từ cùng một thư mục trên máy chủ web của mình. Chỉ cần đảm bảo chúng nằm trong cùng một thư mục và có thể truy cập được từ mã phía máy khách

Đang tải mô hình

Bây giờ chúng tôi đã lưu trữ các tệp đã chuyển đổi của mình, chúng tôi có thể viết một trang web đơn giản để tải các tệp này và sử dụng chúng để đưa ra dự đoán. Mở

pip3 install -U setuptools
0 trong thư mục dự án Glitch và thay thế nội dung của tệp này bằng nội dung sau sau khi bạn đã thay đổi
pip3 install -U setuptools
1 để trỏ đến Glitch đã tạo. liên kết com cho tệp
sudo apt install python3-pip
pip3 install --upgrade pip
8 mà bạn đã tải lên trên Glitch

script. js

python3 --version
2

Chạy đoạn mã trên sau khi bạn thay đổi hằng số

pip3 install -U setuptools
3 để trỏ đến đường dẫn
sudo apt install python3-pip
pip3 install --upgrade pip
8 của bạn, kết quả sẽ hiển thị bên dưới

Xin lưu ý. Để chạy mã của bạn, chỉ cần nhấp vào "hiển thị" ở đầu trang web Glitch, sau đó chọn "cửa sổ mới" hoặc "bên cạnh mã" để xem bản xem trước trực tiếp của mã đang chạy

Nếu chúng tôi kiểm tra bảng điều khiển của trình duyệt web [Nhấn F12 để hiển thị các công cụ dành cho nhà phát triển trong trình duyệt], chúng tôi cũng có thể xem mô tả mô hình cho mô hình đã tải sẽ in

So sánh điều này với mã Python của chúng tôi khi bắt đầu codelab này, chúng tôi có thể xác nhận rằng đây chính là mạng mà chúng tôi đã tạo với 1 đầu vào dày đặc và một lớp dày đặc với 1 nút

Xin chúc mừng. Bạn vừa chạy một mô hình được đào tạo Python đã chuyển đổi trong trình duyệt web

7. Mô hình không chuyển đổi

Sẽ có lúc các mô hình phức tạp hơn được biên dịch để sử dụng các thao tác ít phổ biến hơn sẽ không được hỗ trợ để chuyển đổi. Phiên bản dựa trên trình duyệt của TensorFlow. js là bản viết lại hoàn chỉnh của TensorFlow và do đó, chúng tôi hiện không hỗ trợ tất cả các hoạt động cấp thấp mà API TensorFlow C++ có [có 1000] - mặc dù theo thời gian, nhiều hoạt động hơn sẽ được thêm vào khi chúng tôi phát triển và khi các hoạt động cốt lõi trở nên ổn định hơn

Tại thời điểm viết bài này, một hàm như vậy trong TensorFlow Python tạo ra một op không được hỗ trợ khi xuất dưới dạng mô hình đã lưu là

pip3 install -U setuptools
5. Nếu chúng tôi cố gắng chuyển đổi một mô hình đã lưu sử dụng mô hình này trong Python [hỗ trợ các hoạt động kết quả mà nó tạo ra], chúng tôi sẽ thấy một lỗi tương tự như lỗi được hiển thị bên dưới

Ở đây chúng ta có thể thấy được đánh dấu bằng màu đỏ rằng cuộc gọi

pip3 install -U setuptools
5 được biên dịch để tạo ra một op có tên
pip3 install -U setuptools
7 không được TensorFlow hỗ trợ. js trong trình duyệt web tại thời điểm viết codelab này

Xin lưu ý. Bạn có thể tìm thấy danh sách TensorFlow hiện được hỗ trợ. js hoạt động ở đây. Xin lưu ý rằng điều này chỉ dành cho việc triển khai trình duyệt web phía máy khách của TensorFlow. js và không áp dụng cho Node. phiên bản js của TensorFlow. js sử dụng cùng các liên kết C++ mà Python có, vì vậy tất cả các mô hình đã lưu có thể chạy mà không cần chuyển đổi trong Node. js khi sử dụng TensorFlow. js ở phía máy chủ

phải làm gì?

Bạn có hai lựa chọn

  1. Thực hiện op còn thiếu này trong TensorFlow. js - chúng tôi là một dự án mã nguồn mở và hoan nghênh đóng góp cho những thứ như hoạt động mới. Kiểm tra hướng dẫn này về cách viết ops mới cho TensorFlow. js. Nếu bạn quản lý để làm điều này, thì bạn có thể sử dụng cờ
    pip3 install -U setuptools
    
    8 trên trình chuyển đổi dòng lệnh của chúng tôi để bỏ qua lỗi này và tiếp tục chuyển đổi bằng mọi cách [nó sẽ cho rằng tùy chọn này có sẵn trong bản dựng TensorFlow mới của bạn. js bạn đã tạo có hỗ trợ op bị thiếu]
  2. Xác định phần nào trong mã Python của bạn đã tạo ra thao tác không được hỗ trợ trong tệp
    pip3 install -U setuptools
    
    9 mà bạn đã xuất. Trong một bộ mã nhỏ, điều này có thể dễ xác định, nhưng trong các mô hình phức tạp hơn, điều này có thể yêu cầu điều tra khá nhiều vì hiện tại không có phương pháp nào để xác định lệnh gọi hàm Python cấp cao đã tạo ra một op nhất định một lần trong định dạng tệp
    pip3 install -U setuptools
    
    9. Tuy nhiên, sau khi được định vị, bạn có thể thay đổi điều này để sử dụng một phương pháp khác được hỗ trợ

8. Xin chúc mừng

Xin chúc mừng, bạn đã thực hiện những bước đầu tiên trong việc sử dụng mô hình Python thông qua TensorFlow. js trong trình duyệt web

Tóm tắt lại

Trong phòng thí nghiệm mã này, chúng tôi đã học cách

  1. Thiết lập môi trường Linux của chúng tôi để cài đặt TensorFlow dựa trên Python
  2. Xuất Python 'SavedModel'
  3. Cài đặt TensorFlow. trình chuyển đổi dòng lệnh js
  4. Sử dụng TensorFlow. trình chuyển đổi dòng lệnh js để tạo các tệp phía máy khách cần thiết
  5. Sử dụng các tệp được tạo trong ứng dụng web thực
  6. Xác định các mô hình sẽ không chuyển đổi và những gì cần được thực hiện để cho phép chúng chuyển đổi trong tương lai

Cái gì tiếp theo?

Hãy nhớ gắn thẻ chúng tôi trong bất kỳ thứ gì bạn tạo bằng cách sử dụng #MadeWithTFJS để có cơ hội được giới thiệu trên phương tiện truyền thông xã hội hoặc thậm chí được giới thiệu tại các sự kiện TensorFlow trong tương lai. Chúng tôi rất muốn xem những gì bạn chuyển đổi và sử dụng phía máy khách trong trình duyệt

Làm cách nào để chuyển đổi mã Python sang js?

Chuyển đổi từ Python sang Javascript .
Thay thế từ khóa def bằng chức năng
Thay thế dấu hai chấm. cho biết bắt đầu một khối mã bởi {
Thêm } vào cuối khối mã
Điều kiện bao quanh/kiểm tra trong câu lệnh if và while bằng dấu ngoặc đơn [. ]
Thêm dấu chấm phẩy ;

Có trình chuyển đổi Python sang JavaScript không?

JavaScripthon là một Python 3 đơn giản. Hơn 5 trình dịch sang JavaScript . Nó nhằm mục đích có thể dịch hầu hết ngữ nghĩa cốt lõi của Python mà không cần cung cấp môi trường python-in-js đầy đủ.

Bạn có thể kết nối Python với JavaScript không?

JS2PY hoạt động bằng cách dịch trực tiếp JavaScript sang Python . Nó chỉ ra rằng bạn có thể chạy JS trực tiếp từ mã Python mà không cần cài đặt các công cụ lớn bên ngoài như V8. Để sử dụng mô-đun, trước tiên mô-đun phải được cài đặt vào hệ thống, vì mô-đun không được tích hợp sẵn. Để sử dụng mô-đun, nó phải được nhập.

Làm cách nào để chuyển đổi mã Python sang HTML?

Cách chuyển văn bản sang HTML .
Cài đặt 'Aspose. Từ cho Python thông qua. NET'
Thêm tham chiếu thư viện [nhập thư viện] vào dự án Python của bạn
Mở tệp văn bản nguồn bằng Python
Gọi phương thức 'save[]', chuyển tên tệp đầu ra có phần mở rộng HTML
Nhận kết quả chuyển đổi văn bản dưới dạng HTML

Chủ Đề