Trình docker API phần còn lại của Python
Ý tưởng của bài viết này là tạo một bộ chứa Docker nhanh chóng và dễ dàng để thực hiện suy luận trực tuyến với các mô hình máy học được đào tạo bằng cách sử dụng API Python với Flask. Trước khi đọc bài viết này, đừng ngần ngại đọc Tại sao nên sử dụng Docker cho Machine Learning, Cài đặt nhanh và Sử dụng Docker lần đầu, cũng như Xây dựng và chạy Bộ chứa Docker cho Mô hình Machine Learning của bạn, trong đó chúng ta tìm hiểu cách sử dụng Docker để thực hiện đào tạo mô hình và Show Suy luận hàng loạt là tuyệt vời khi bạn có thời gian để tính toán các dự đoán của mình. Hãy tưởng tượng bạn cần dự đoán thời gian thực. Trong trường hợp này, suy luận hàng loạt không phù hợp hơn và chúng tôi cần suy luận trực tuyến. Nhiều ứng dụng sẽ không hoạt động hoặc sẽ không hữu ích nếu không có dự đoán trực tuyến như xe tự hành, phát hiện gian lận, giao dịch tần suất cao, ứng dụng dựa trên dữ liệu bản địa hóa, nhận dạng và theo dõi đối tượng hoặc giao diện máy tính não. Đôi khi, dự đoán cần được cung cấp tính bằng mili giây Để tìm hiểu khái niệm này, chúng tôi sẽ triển khai các suy luận trực tuyến (Phân tích phân biệt tuyến tính và mô hình Mạng thần kinh Perceptron nhiều lớp) với Docker và Flask-RESTful Để bắt đầu, hãy xem xét các tệp sau. Dockerfile, đào tạo. py, api. py, yêu cầu. txt, đào tạo. csv, kiểm tra. json Con tàu. py là một tập lệnh python nhập và chuẩn hóa dữ liệu EEG và huấn luyện hai mô hình để phân loại dữ liệu. Dockerfile sẽ được sử dụng để xây dựng Docker image của chúng ta, các yêu cầu. txt (flask, jar-restful, joblib) dành cho các phụ thuộc Python và api. py là tập lệnh sẽ được gọi để thực hiện suy luận trực tuyến bằng API REST. xe lửa. csv là dữ liệu được sử dụng để huấn luyện các mô hình của chúng tôi và kiểm tra. json là tệp chứa dữ liệu điện não đồ mới sẽ được sử dụng với các mô hình suy luận của chúng tôi Bạn có thể tìm thấy tất cả các tệp trên GitHub Flask-RESTful APIBước đầu tiên trong việc xây dựng API là suy nghĩ về dữ liệu chúng tôi muốn xử lý, cách chúng tôi muốn xử lý dữ liệu đó và kết quả đầu ra chúng tôi muốn với API của mình. Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng bài kiểm tra. json trong đó chúng tôi có 1300 hàng dữ liệu EEG với 160 tính năng mỗi (cột). Chúng tôi muốn các API của chúng tôi như sau -API 1. Chúng tôi sẽ cung cấp một số hàng cho API sẽ trích xuất cho chúng tôi dữ liệu từ hàng đã chọn và in nó -API 2. Chúng tôi sẽ cung cấp một số hàng cho API sẽ trích xuất hàng đã chọn, đưa dữ liệu mới vào các mô hình và truy xuất dự đoán phân loại (Biến chữ cái trong dữ liệu) - API3. Chúng tôi sẽ yêu cầu API lấy tất cả dữ liệu trong bài kiểm tra. json và in ngay cho chúng tôi điểm phân loại của các mô hình Cuối cùng, chúng tôi muốn truy cập các quy trình đó bằng cách thực hiện một yêu cầu HTTP Chúng ta hãy xem api. tập tin py Bước đầu tiên, sau khi nhập các phụ thuộc bao gồm Flask vi khung web nguồn mở, là đặt các biến môi trường được ghi trong Dockerfile. Chúng tôi cũng cần tải các mô hình tuần tự hóa Phân tích phân biệt tuyến tính và Mạng thần kinh Perceptron nhiều lớp. Chúng tôi tạo ứng dụng Flask của mình bằng cách viết app = Flask(__name__). Sau đó, chúng tôi tạo ba tuyến đường Flask để chúng tôi có thể phục vụ lưu lượng HTTP trên tuyến đường đó - http. //0. 0. 0. 0. 5000/dòng/250. Lấy dữ liệu từ thử nghiệm. json và trả về hàng được yêu cầu được xác định bởi biến Line (trong ví dụ này, chúng tôi muốn trích xuất dữ liệu của hàng số 250) - http. //0. 0. 0. 0. 5000/dự đoán/51. Trả về dự đoán phân loại từ cả mô hình được đào tạo LDA và Mạng thần kinh bằng cách đưa dữ liệu được yêu cầu (trong ví dụ này, chúng tôi muốn đưa dữ liệu của hàng số 51) - http. //0. 0. 0. 0. 5000/điểm. Trả về điểm phân loại cho cả mô hình suy luận Mạng thần kinh và LDA trên tất cả dữ liệu có sẵn (kiểm tra. json) The Flask routes allows us to request what we need from the API by adding the name of our procedure (/line/ Con tàu. py là tập lệnh python nhập và chuẩn hóa dữ liệu EEG trong tệp csv (đào tạo. csv) và đào tạo hai mô hình để phân loại dữ liệu (sử dụng scikit-learning). Kịch bản lưu hai mô hình. Phân tích phân biệt tuyến tính (clf_lda) và mạng lưới thần kinh nhiều lớp perceptron (clf_NN) Chúng tôi có tất cả để xây dựng hình ảnh Docker của mình. Để bắt đầu, chúng ta cần Dockerfile với hình ảnh jupyter/scipy-notebook làm hình ảnh cơ sở. Chúng tôi cũng cần đặt các biến môi trường và cài đặt joblib để cho phép tuần tự hóa và giải tuần tự hóa các mô hình và bình được đào tạo của chúng tôi (các yêu cầu. txt). Chúng tôi sao chép tàu. csv, kiểm tra. json, đào tạo. py và api. py vào hình ảnh. Sau đó, chúng tôi chạy tàu. py sẽ phù hợp và tuần tự hóa các mô hình máy học như một phần của quy trình xây dựng hình ảnh của chúng tôi Đây rồi Để xây dựng hình ảnh này, hãy chạy lệnh sau docker build -t my-docker-api -f Dockerfile . Chúng tôi thu được đầu ra sau Now the goal is to run our online inference meaning that each time a client issues a POST request to the /line/ docker run -it -p 5000:5000 my-docker-api python3 api.py Cờ -p hiển thị cổng 5000 trong vùng chứa thành cổng 5000 trên máy chủ của chúng tôi, cờ -it cho phép chúng tôi xem nhật ký từ vùng chứa và chúng tôi chạy api python3. py trong hình ảnh my-api Đầu ra như sau Bạn có thể thấy rằng chúng tôi đang chạy trên http. //0. 0. 0. 0. 5000/ và bây giờ chúng tôi có thể sử dụng trình duyệt web của mình hoặc lệnh curl để đưa ra yêu cầu POST tới địa chỉ IP Nếu chúng ta gõ curl http://0.0.0.0:5000/line/232 Chúng tôi sẽ nhận được hàng số 232 được trích xuất từ dữ liệu của chúng tôi (thử nghiệm. json) Kết quả tương tự khi sử dụng trình duyệt web Nếu chúng ta gõ lệnh curl sau curl http://0.0.0.0:5000/prediction/232 Chúng ta sẽ thấy đầu ra sau Đầu ra ở trên có nghĩa là mô hình LDA đã phân loại dữ liệu được cung cấp (hàng 232) là chữ cái 21 (U) trong khi Mạng thần kinh Perceptron nhiều lớp phân loại dữ liệu là chữ cái 8 (H). Hai mô hình không đồng nhất Nếu chúng ta gõ curl http://0.0.0.0:5000/score Chúng tôi sẽ thấy điểm số của các mô hình của chúng tôi trên toàn bộ tập dữ liệu Như chúng ta có thể đọc, chúng ta nên tin tưởng hơn vào Mạng lưới thần kinh Perceptron nhiều lớp với điểm chính xác là 0. 59 ngay cả khi điểm không quá cao. Một số việc cần làm để nâng cao độ chính xác Cái gì tiếp theo?Tôi hy vọng bạn có thể thấy sự đơn giản của việc chứa các ứng dụng máy/học sâu của mình bằng cách sử dụng Docker và bình để thực hiện suy luận trực tuyến. Đây là một bước cần thiết khi chúng tôi muốn đưa các mô hình của mình vào sản xuất. Tất nhiên, đó là một cách nhìn đơn giản vì chúng ta cần tính đến nhiều khía cạnh hơn như mạng, bảo mật, giám sát, cơ sở hạ tầng, điều phối hoặc thêm cơ sở dữ liệu để lưu trữ dữ liệu thay vì sử dụng tệp json Làm cách nào để Dockerize Python REST API?Bước 1. cài đặt docker. Tải xuống trình cài đặt docker từ https. // tài liệu. người đóng tàu. com/máy tính để bàn. . Bước 2. Cài đặt python và bình Bước 3. Tạo API bình. . Bước 5. Tạo tệp yêu cầu. . Bước 6. Tạo dockerfile. . Bước 7. Xây dựng và chạy hình ảnh docker. . Bước 8. Đẩy và kéo hình ảnh Docker (tùy chọn) Làm cách nào để triển khai API REST trong Docker?Sử dụng công cụ có thể gọi API REST để triển khai hình ảnh Docker. . Sao chép Dockerfile và tập lệnh joinMember và removeMember vào máy tính đã cài đặt Docker. . Mở một cửa sổ lệnh tại thư mục chứa các tệp Chạy lệnh Docker để tạo image. . Xác minh việc tạo hình ảnh Docker có sử dụng API REST không?API Docker Engine là API RESTful được truy cập bởi ứng dụng khách HTTP chẳng hạn như wget hoặc curl hoặc thư viện HTTP là một phần của hầu hết các ngôn ngữ lập trình hiện đại.
Docker có tốt cho Python không?Phiên bản Python
. The “official” Docker image has the benefit of providing every version of Python you might want, and tends to be very up-to-date with bugfix releases. |
Bài Viết Liên Quan
1 bảng anh đổi được bao nhiêu tiền việt nam
Citinews là trang tổng hợp kiến thức về tài chính, kinh doanh, ngân hàng cho các tổ chức, cá nhân trên toàn quốc. Tất cả các kiến thức được chia sẻ đến ...
Python được sử dụng như thế nào trong phân tích dữ liệu?
Vào năm 2018, 66% các nhà khoa học dữ liệu đã báo cáo sử dụng Python mỗi ngày, điều này khiến Python trở thành ngôn ngữ số một cho khoa học dữ liệu. Nhưng ...
Khi nào tôi nên sử dụng python lớp trừu tượng?
Các lớp trừu tượng là gì? . Đến cuối bài đăng này, bạn sẽ hiểu rõ về ABC trong Python và cách thêm chúng vào chương trình của bạnHãy bắt đầu nàoMã ...
Lãi suất tiền gửi có kỳ hạn 2023 úc
Trong một tuần sôi động về lãi suất tiền gửi có kỳ hạn, NAB là ngân hàng nổi bật nhất trong số các ngân hàng thông báo tăng lãi suấtĐiều này tiếp tục ...
Làm cách nào để thêm địa chỉ IP vào MySQL?
Do đó, cho phép kết nối từ xa đến cơ sở dữ liệu MySQL của bạn từ một địa chỉ IP cụ thể là quy trình gồm ba bướcTrước tiên, chúng ta sẽ cần thiết ...
Cài đặt hệ điều hành MongoDB 4.4
MongoDB Atlas là một tùy chọn dịch vụ MongoDB được lưu trữ trên đám mây, không yêu cầu chi phí cài đặt và cung cấp một bậc miễn phí để bắt đầuTổng ...
Trình docker API phần còn lại của Python
Ý tưởng của bài viết này là tạo một bộ chứa Docker nhanh chóng và dễ dàng để thực hiện suy luận trực tuyến với các mô hình máy học được đào tạo ...
Công thức vòng lặp Python
Trong hướng dẫn trước, chúng ta đã đề cập đến kiến thức cơ bản về vòng lặp Python, tìm hiểu cách lặp qua danh sách và danh sách của danh sách. Nhưng ...
Website viết bằng Python
Lập trình Web với Python là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề lập trình Web với Python. Trong bài viết này, coder.com.vn ...
Moodle có sử dụng php không?
Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi ...
Ngày lễ 10 tháng 1 năm 2023
Tiếng chuông trong một năm mới có nghĩa là sự khởi đầu và kết thúc mới. Mừng năm mới là ngày lễ đầu tiên theo lịch, nhưng không phải lúc nào thế giới ...
Acnes trị thâm giá bao nhiêu
- Bạn vui lòng kiểm tra kỹ thông tin của đơn hàng vì thông tin này sẽ không thể thay đổi sau khi đơn hàng được xác nhận thành công.- Nhathuoc365.vn ...
Excel xóa bộ lọc sắp xếp
Tôi đã cố gắng tạo 4 hàm bộ lọc riêng biệt, tuy nhiên, tôi cần khả năng thêm hàng của hàm bộ lọc để phù hợp với số lượng hàng sẽ được điền ...
Xây dựng Tic Tac Toe Python
Hiểu vòng lặp trò chơi cho trò chơi tic tac toe Python cho phép người chơi hiểu cách chơi trò chơi cho đến khi người chơi đó thắng hoặc một trận hòa xảy ra ...
Khóa học Excel của trung tâm học tập NTUC
Noor chuyên về dịch vụ khách hàng, lãnh đạo, quan hệ giữa các cá nhân, sáng tạo và đổi mới, quản lý giám sát, hiệu quả cá nhân, học tập và phát triển ...
Làm cách nào để đọc dữ liệu blob trong python?
Trong hướng dẫn này, chúng ta sẽ xem cách làm việc với kiểu dữ liệu BLOB trong MySQL bằng chương trình python. Chúng ta sẽ lướt qua kiểu dữ liệu BLOB và công ...
Con trăn toán học
Matplotlib là một thư viện trực quan tuyệt vời trong Python cho các mảng 2D. Matplotlib là thư viện trực quan hóa dữ liệu đa nền tảng được xây dựng trên mảng ...
Cách đặt giá trị cho thẻ p trong JavaScript
Phần tử HTML <p> đại diện cho một đoạn văn. Các đoạn thường được trình bày trong phương tiện trực quan dưới dạng các khối văn bản được phân ...
Tiết kiệm ánh sáng ban ngày Úc 2023
Người sử dụng lao động nên giải quyết tiền lương cho nhân viên làm ca như thế nào khi bắt đầu và kết thúc tiết kiệm ánh sáng ban ngày?Quy tắc chung ...
MongoDB cập nhật đối tượng lồng nhau
Để cập nhật một đối tượng bên trong một mảng lồng nhau trong MongoDB, bạn có thể sử dụng phương pháp này, Nó đã được thử nghiệm và hoạt động ...