Anda dapat menerapkan praktik terbaik untuk instans yang dipercepat GPU menggunakan konsol Function Compute, SDK, atau Serverless Devs. Topik ini menjelaskan cara menggunakan Serverless Devs dan konsol Function Compute untuk memproses gambar mentah dengan kode fungsi guna melakukan sintesis gaya dan deteksi objek. Python digunakan sebagai contoh dalam topik ini.
Skenario dan manfaat
Berbagai masalah sering muncul pada infrastruktur GPU tradisional untuk aplikasi AI, seperti siklus konstruksi yang panjang, kompleksitas O&M tinggi, pemanfaatan kluster rendah, dan biaya tinggi. Instans yang dipercepat GPU dari Function Compute menyerahkan masalah-masalah tersebut kepada penyedia layanan cloud, sehingga Anda dapat fokus pada bisnis tanpa khawatir tentang infrastruktur GPU yang mendasarinya.
Bagian ini menjelaskan manfaat instans yang dipercepat GPU dibandingkan dengan instans tanpa percepatan GPU di Function Compute:
Skenario aplikasi AI yang mengutamakan biaya
Cadangkan instans yang dipercepat GPU sesuai kebutuhan bisnis. Dengan demikian, instans yang dipercepat GPU dari Function Compute menawarkan efisiensi biaya lebih tinggi daripada kluster GPU yang dibangun sendiri.
Gunakan sumber daya GPU dalam mode 1/2 atau eksklusif melalui teknologi virtualisasi GPU, sehingga instans yang dipercepat GPU dapat dikonfigurasi secara halus.
Skenario aplikasi AI yang mengutamakan efisiensi
Fokus pada pengembangan kode dan tujuan bisnis tanpa perlu melakukan O&M pada kluster GPU, seperti manajemen versi driver dan CUDA, manajemen operasi mesin, serta manajemen GPU yang rusak.
Untuk informasi lebih lanjut tentang instans yang dipercepat GPU, lihat Jenis Instans dan Mode Instans.
Tutorial untuk transfer gaya neural
Transfer gaya neural (NST) adalah teknologi yang digunakan untuk menggabungkan dua gambar. Selama proses ini, konten diekstraksi dari satu gambar dan gaya diekstraksi dari gambar lainnya untuk membuat gambar baru. Pada contoh berikut, model preset TensorFlow Hub digunakan untuk menyelesaikan sintesis gaya gambar.
Efek Sintesis
Gambar konten | Gambar gaya | Gambar hasil sintesis |
|
|
|
Before you start
Persiapan Umum
Untuk pengalaman pengguna terbaik, bergabunglah dengan grup DingTalk (ID 11721331) dan berikan informasi berikut:
Nama organisasi, seperti nama perusahaan Anda.
ID akun Alibaba Cloud Anda.
Wilayah tempat Anda ingin menggunakan instans yang dipercepat GPU, seperti Tiongkok (Shenzhen).
Informasi kontak, seperti nomor ponsel, alamat email, atau akun DingTalk Anda.
Unggah sumber daya audio dan video yang ingin diproses ke Bucket Object Storage Service (OSS) di wilayah tempat instans yang dipercepat GPU berada. Pastikan Anda memiliki izin baca dan tulis pada objek di bucket. Untuk informasi lebih lanjut tentang cara mengunggah sumber daya audio dan video, lihat Unggah Objek. Untuk informasi lebih lanjut tentang izin, lihat Ubah ACL Bucket.
Penyebaran Aplikasi GPU Menggunakan Serverless Devs
Lakukan operasi berikut di wilayah tempat instans yang dipercepat GPU berada:
Buat instans Enterprise Edition Container Registry atau instans Personal Edition. Kami merekomendasikan Anda membuat instans Enterprise Edition. Untuk informasi lebih lanjut, lihat Langkah 1: Buat Instans Enterprise Edition Container Registry.
Buat namespace dan repositori gambar. Untuk informasi lebih lanjut, lihat Langkah 2: Buat Namespace dan Langkah 3: Buat Repositori Gambar.
Use Serverless Devs to deploy GPU applications
Buat proyek.
s init devsapp/start-fc-custom-container-event-python3.9 -d fc-gpu-prjKode sampel berikut menunjukkan direktori proyek yang dibuat:
fc-gpu-prj ├── code │ ├── app.py # Kode fungsi. │ └── Dockerfile # Dockerfile: Image Dockerfile yang berisi kode. ├── README.md └── s.yaml # Konfigurasi proyek, yang menentukan bagaimana image diterapkan di Function ComputeMasuk ke direktori proyek.
cd fc-gpu-prjUbah konfigurasi file direktori berdasarkan kebutuhan bisnis Anda.
Edit file s.yaml.
Untuk informasi lebih lanjut tentang parameter dalam file YAML, lihat Spesifikasi YAML.
edition: 1.0.0 name: container-demo access: default vars: region: cn-shenzhen services: customContainer-demo: component: devsapp/fc props: region: ${vars.region} service: name: tgpu_tf_service internetAccess: true function: name: tgpu_tf_func description: test gpu for tensorflow handler: not-used timeout: 600 caPort: 9000 instanceType: fc.gpu.tesla.1 gpuMemorySize: 8192 cpu: 4 memorySize: 16384 diskSize: 512 runtime: custom-container customContainerConfig: #1. Pastikan bahwa namespace:demo namespace dan repo:gpu-tf-style-transfer_s repositori telah dibuat sebelumnya di Alibaba Cloud Container Registry. #2. Ubah tag dari v0.1 menjadi v0.2 saat Anda memperbarui fungsi dan jalankan s build && s deploy lagi. image: registry.cn-shenzhen.aliyuncs.com/demo/gpu-tf-style-transfer_s:v0.1 codeUri: ./code triggers: - name: httpTrigger type: http config: authType: anonymous methods: - GETEdit file app.py.
Contoh:
# -*- coding: utf-8 -*- # python2 and python3 from __future__ import print_function from http.server import HTTPServer, BaseHTTPRequestHandler from tensorflow import keras from tensorflow.keras import layers from tensorflow.keras.models import Sequential import json import sys import logging import os import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np import os import PIL import tensorflow as tf import pathlib import urllib.request import random class Resquest(BaseHTTPRequestHandler): def upload(self, url, path): print("enter upload:", url) headers = { 'Content-Type': 'application/octet-stream', 'Content-Length': os.stat(path).st_size, } req = urllib.request.Request(url, open(path, 'rb'), headers=headers, method='PUT') urllib.request.urlopen(req) def tensor_to_image(self, tensor): tensor = tensor*255 tensor = np.array(tensor, dtype=np.uint8) if np.ndim(tensor)>3: assert tensor.shape[0] == 1 tensor = tensor[0] return PIL.Image.fromarray(tensor) def load_img(self, path_to_img): max_dim = 512 img = tf.io.read_file(path_to_img) img = tf.image.decode_image(img, channels=3) img = tf.image.convert_image_dtype(img, tf.float32) shape = tf.cast(tf.shape(img)[:-1], tf.float32) long_dim = max(shape) scale = max_dim / long_dim new_shape = tf.cast(shape * scale, tf.int32) img = tf.image.resize(img, new_shape) img = img[tf.newaxis, :] return img def do_style_transfer(self): mpl.rcParams['figure.figsize'] = (12,12) mpl.rcParams['axes.grid'] = False # Gunakan jalur objek Object Storage Service (OSS) di akun Alibaba Cloud Anda. Anda harus memiliki izin baca dan tulis pada objek tersebut. # Baca gambar konten dan gaya dari bucket OSS Anda. content_path = tf.keras.utils.get_file(str(random.randint(0,100000000)) + ".jpg", 'https://your_public_oss/c1.png') style_path = tf.keras.utils.get_file(str(random.randint(0,100000000)) + ".jpg",'https://your_public_oss/c2.png') content_image = self.load_img(content_path) style_image = self.load_img(style_path) print("load image ok") import tensorflow_hub as hub hub_model = hub.load('https://hub.tensorflow.google.cn/google/magenta/arbitrary-image-stylization-v1-256/2') # Anda dapat mengemas model hub ke dalam gambar untuk dimuat untuk mempercepat pemrosesan. #hub_model = hub.load('/usr/src/app/style_transfer_model') stylized_image = hub_model(tf.constant(content_image), tf.constant(style_image))[0] print("load model ok") path = "/tmp/" + str(random.randint(0,100000000)) + ".png" self.tensor_to_image(stylized_image).save(path) print("generate stylized image ok") # Gunakan jalur objek Object Storage Service (OSS) di akun Alibaba Cloud Anda. Anda harus memiliki izin baca dan tulis pada objek tersebut. # Simpan gambar hasil sintesis ke bucket OSS. self.upload("https://your_public_oss/stylized-image.png" ,path) return "transfer ok" def style_transfer(self): msg = self.do_style_transfer() data = {"result": msg} self.send_response(200) self.send_header("Content-type", "application/json") self.end_headers() self.wfile.write(json.dumps(data).encode()) def pong(self): data = {"function":"tf_style_transfer"} self.send_response(200) self.send_header('Content-type', 'application/json') self.end_headers() self.wfile.write(json.dumps(data).encode()) def dispatch(self): mode = self.headers.get('RUN-MODE') if mode == "ping": self.pong() elif mode == "normal": self.style_transfer() else: self.pong() def do_GET(self): self.dispatch() def do_POST(self): self.dispatch() if __name__ == "__main__": host = ("0.0.0.0", 9000) server = HTTPServer(host, Resquest) print("Starting server, listen at: %s:%s" % host) server.serve_forever()Edit file Dockerfile.
Contoh:
FROM registry.cn-shanghai.aliyuncs.com/serverless_devs/tensorflow:2.7.0-gpu WORKDIR /usr/src/app RUN apt-get update RUN apt-get install -y python3 RUN apt-get install -y python3-pip RUN pip3 install matplotlib RUN pip install tensorflow_hub COPY . . CMD [ "python3", "-u", "/usr/src/app/app.py" ] EXPOSE 9000
Bangun sebuah image.
s build --dockerfile ./code/DockerfileTerapkan kode ke Function Compute.
s deployCatatanJika Anda menjalankan perintah di atas berulang kali dan nama layanan serta nama fungsi tetap tidak berubah, jalankan perintah
use localuntuk menggunakan konfigurasi lokal.Konfigurasikan instans yang disediakan.
s provision put --target 1 --qualifier LATESTPeriksa apakah instans yang disediakan sudah siap.
s provision get --qualifier LATESTJika nilai
currentadalah 1, mode disediakan dari instans yang dipercepat GPU sudah siap. Contoh:[2022-06-21 11:53:19] [INFO] [FC] - Mendapatkan provision: tgpu_tf_service.LATEST/tgpu_tf_func helloworld: serviceName: tgpu_tf_service functionName: tgpu_tf_func qualifier: LATEST resource: 188077086902****#tgpu_tf_service#LATEST#tgpu_tf_func target: 1 current: 1 scheduledActions: (empty array) targetTrackingPolicies: (empty array) currentError: alwaysAllocateCPU: truePanggil fungsi.
Lihat versi fungsi online
s invoke FC Invoke Result: {"function": "tf_style_transfer"}Lakukan transfer gaya neural
s invoke -e '{"method":"GET","headers":{"RUN-MODE":"normal"}}' generate stylized image ok enter upload: https://your_public_oss/stylized-image.png # Anda dapat mengunduh file ini untuk melihat efek sintesis. FC Invoke Result: {"result": "transfer ok"}
Lepaskan instans yang dipercepat GPU.
s provision put --target 0 --qualifier LATEST
Use the Function Compute console to deploy a GPU-accelerated application
Terapkan sebuah image.
Buat instans Enterprise Edition Container Registry atau instans Personal Edition Container Registry.
Kami merekomendasikan Anda membuat instans Enterprise Edition. Untuk informasi lebih lanjut, lihat Buat Instans Enterprise Edition Container Registry.
Buat namespace dan repositori gambar.
Untuk informasi lebih lanjut, lihat bagian Langkah 2: Buat Namespace dan Langkah 3: Buat Repositori Gambar dari topik "Gunakan instans Enterprise Edition Container Registry untuk membangun gambar".
Lakukan operasi pada Docker sesuai petunjuk di konsol Container Registry. Kemudian, dorong sampel app.py dan Dockerfile ke repositori gambar instans. Untuk informasi lebih lanjut tentang file-file tersebut, lihat app.py dan Dockerfile di direktori /code saat Anda menyebarkan aplikasi GPU menggunakan Serverless Devs.

Buat layanan. Untuk informasi lebih lanjut, lihat bagian "Buat Layanan" dari Kelola Layanan.
Buat fungsi. Untuk informasi lebih lanjut, lihat Buat Fungsi Wadah Kustom.
CatatanPilih GPU Instance untuk Instance Type dan Process HTTP Requests untuk Request Handler Type.
Ubah periode waktu eksekusi fungsi.
Temukan fungsi yang ingin Anda kelola dan klik Configure di kolom Actions.
Di bagian Environment Variables, ubah nilai Execution Timeout Period dan klik Save.

CatatanDurasi transkoding menggunakan CPU melebihi nilai default 60 detik. Oleh karena itu, kami sarankan Anda menetapkan nilai Execution Timeout Period ke nilai yang lebih besar.
Konfigurasikan instans yang dipercepat GPU yang disediakan.
Di halaman detail fungsi, klik tab Auto Scaling dan klik Create Rule.
Di halaman yang muncul, konfigurasikan parameter berikut untuk menyediakan instans yang dipercepat GPU dan klik Create.
Untuk informasi lebih lanjut tentang cara mengonfigurasi instans yang disediakan, lihat Konfigurasikan Instans yang Disediakan dan Aturan Penskalaan Otomatis.
Setelah konfigurasi selesai, Anda dapat memeriksa apakah instans yang dipercepat GPU yang disediakan sudah siap di daftar aturan. Secara spesifik, periksa apakah nilai Current Reserved Instances adalah jumlah instans yang disediakan yang ditentukan.
Gunakan cURL untuk menguji fungsi.
Di halaman detail fungsi, klik tab Triggers untuk melihat konfigurasi pemicu dan mendapatkan titik akhir pemicu.
Jalankan perintah berikut di CLI untuk memanggil fungsi yang dipercepat GPU:
Lihat versi fungsi online
curl -v "https://tgpu-ff-console-tgpu-ff-console-ajezot****.cn-shenzhen.fcapp.run" {"function": "trans_gpu"}Lakukan transfer gaya neural
curl "https://tgpu-fu-console-tgpu-se-console-zpjido****.cn-shenzhen.fcapp.run" -H 'RUN-MODE: normal' {"result": "transfer ok"}
Verify the result
Anda dapat melihat gambar hasil sintesis dengan mengakses domain berikut di browser Anda:
https://cri-zbtsehbrr8******-registry.oss-cn-shenzhen.aliyuncs.com/stylized-image.pngDomain ini digunakan sebagai contoh. Domain yang sebenarnya berlaku.
Tutorial untuk deteksi objek
Anda dapat menggunakan teknologi deteksi objek untuk membangun batas persegi panjang pada objek yang diinginkan dan melacak objek tersebut saat beberapa objek muncul secara bersamaan. Aplikasi deteksi objek digunakan untuk menandai dan mengidentifikasi sejumlah besar objek dari berbagai jenis. Pada contoh berikut, OpenCV Deep Neural Network (DNN) digunakan untuk melakukan deteksi multi-objek.
Detection performance
Tabel berikut menjelaskan gambar sumber objek yang akan dideteksi (kiri), dan objek yang terdeteksi menggunakan OpenCV DNN (kanan). Gambar di sebelah kanan juga menampilkan nama objek yang terdeteksi dan akurasi deteksi.
Gambar asli | Objek terdeteksi |
|
|
Before you start
Untuk pengalaman pengguna terbaik, bergabunglah dengan grup DingTalk (ID 11721331) dan berikan informasi berikut:
Nama organisasi, seperti nama perusahaan Anda.
ID akun Alibaba Cloud Anda.
Wilayah tempat Anda ingin menggunakan instans yang dipercepat GPU, seperti Tiongkok (Shenzhen).
Informasi kontak, seperti nomor ponsel, alamat email, atau akun DingTalk Anda.
Lakukan operasi berikut di wilayah tempat instans yang dipercepat GPU berada:
Buat instans Enterprise Edition Container Registry atau instans Personal Edition. Kami merekomendasikan Anda membuat instans Enterprise Edition. Untuk informasi lebih lanjut, lihat Langkah 1: Buat Instans Enterprise Edition Container Registry.
Buat namespace dan repositori gambar. Untuk informasi lebih lanjut, lihat Langkah 2: Buat Namespace dan Langkah 3: Buat Repositori Gambar.
Kompilasi OpenCV.
OpenCV harus dikompilasi sebelum Anda dapat menggunakan percepatan GPU. Item berikut menjelaskan cara mengompilasi OpenCV:
(Direkomendasikan) Gunakan OpenCV yang sudah dikompilasi melalui Docker. Alamat unduhan: opencv-cuda-docker dan cuda-opencv.
Kompilasi manual OpenCV. Untuk informasi lebih lanjut, lihat panduan kompilasi.
Unggah sumber daya audio dan video yang ingin diproses ke Bucket Object Storage Service (OSS) di wilayah tempat instans yang dipercepat GPU berada. Pastikan Anda memiliki izin baca dan tulis pada objek di bucket. Untuk informasi lebih lanjut tentang cara mengunggah sumber daya audio dan video, lihat Unggah Objek. Untuk informasi lebih lanjut tentang izin, lihat Ubah ACL Bucket.
Procedure
Buat proyek.
s init devsapp/start-fc-custom-container-event-python3.9 -d fc-gpu-prjKode sampel berikut menunjukkan direktori proyek yang dibuat:
fc-gpu-prj ├── code │ ├── app.py # Kode fungsi. │ └── Dockerfile # Dockerfile: Image Dockerfile yang berisi kode. ├── README.md └── s.yaml # Konfigurasi proyek, yang menentukan bagaimana image diterapkan di Function ComputeMasuk ke direktori proyek.
cd fc-gpu-prjUbah konfigurasi file di direktori berdasarkan kebutuhan bisnis Anda.
Edit file s.yaml.
Untuk informasi lebih lanjut tentang parameter dalam file YAML, lihat Spesifikasi YAML.
edition: 1.0.0 name: container-demo access: default vars: region: cn-shenzhen services: customContainer-demo: component: devsapp/fc props: region: ${vars.region} service: name: tgpu_object_detect_service internetAccess: true function: name: tgpu_object_detect_func description: test gpu for opencv handler: not-used timeout: 600 caPort: 9000 memorySize: 16384 gpuMemorySize: 8192 instanceType: fc.gpu.tesla.1 runtime: custom-container customContainerConfig: #1. Pastikan bahwa namespace:demo namespace dan repo:gpu-transcoding_s repositori telah dibuat sebelumnya di Alibaba Cloud Container Registry. #2. Ubah tag dari v0.1 menjadi v0.2 saat Anda memperbarui fungsi dan jalankan s build && s deploy lagi. image: registry.cn-shenzhen.aliyuncs.com/demo/gpu-object-detect_s:v0.1 codeUri: ./code triggers: - name: httpTrigger type: http config: authType: anonymous methods: - GETEdit file app.py.
Contoh:
# -*- coding: utf-8 -*- # python2 and python3 from __future__ import print_function from http.server import HTTPServer, BaseHTTPRequestHandler import json import sys import logging import os import numpy as np import cv2 import urllib.request class Resquest(BaseHTTPRequestHandler): def download(self, url, path): print("enter download:", url) f = urllib.request.urlopen(url) with open(path, "wb") as local_file: local_file.write(f.read()) def upload(self, url, path): print("enter upload:", url) headers = { 'Content-Type': 'application/octet-stream', 'Content-Length': os.stat(path).st_size, } req = urllib.request.Request(url, open(path, 'rb'), headers=headers, method='PUT') urllib.request.urlopen(req) def core(self): CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"] COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3)) print("[INFO] loading model...") prototxt = "/usr/src/app/m.prototxt.txt" model = "/usr/src/app/m.caffemodel" net = cv2.dnn.readNetFromCaffe(prototxt, model) msg = "" mode = "" if not cv2.cuda.getCudaEnabledDeviceCount(): msg = "No CUDA-capable device is detected |" else: msg = "CUDA-capable device supported |" net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA) net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA) path = "/tmp/target.png" # Gunakan jalur objek OSS di akun Alibaba Cloud Anda. Anda harus memiliki izin baca dan tulis pada objek tersebut. Baca gambar dari bucket Anda. self.download("https://your_public_oss/a.png", path) image = cv2.imread(path) (h, w) = image.shape[:2] blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 0.007843, (300, 300), 127.5) print("[INFO] computing object detections...") net.setInput(blob) detections = net.forward() # loop over the detections for i in np.arange(0, detections.shape[2]): confidence = detections[0, 0, i, 2] if confidence > 0.2: idx = int(detections[0, 0, i, 1]) box = detections[0, 0, i, 3:7] * np.array([w, h, w, h]) (startX, startY, endX, endY) = box.astype("int") cv2.rectangle(image, (startX, startY), (endX, endY), COLORS[idx], 2) x = startX + 10 if startY - 15 < 15 else startX y = startY - 15 if startY - 15 > 15 else startY + 20 label = "{}: {:.2f}%".format(CLASSES[idx], confidence * 100) cv2.putText(image, label, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, COLORS[idx], 2) print("[INFO] {}".format(label)) cv2.imwrite(path, image) # Gunakan jalur objek OSS di akun Alibaba Cloud Anda. Anda harus memiliki izin baca dan tulis pada objek tersebut. Baca gambar dari bucket Anda. self.upload("https://your_public_oss/target.jpg", path) msg = msg + " process image ok!" data = {'result': msg} self.send_response(200) self.send_header('Content-type', 'application/json') self.end_headers() self.wfile.write(json.dumps(data).encode()) def pong(self): data = {"function":"object-detection"} self.send_response(200) self.send_header('Content-type', 'application/json') self.end_headers() self.wfile.write(json.dumps(data).encode()) def dispatch(self): mode = self.headers.get('RUN-MODE') if mode == "ping": self.pong() elif mode == "normal": self.core() else: self.pong() def do_GET(self): self.dispatch() def do_POST(self): self.dispatch() if __name__ == '__main__': host = ('0.0.0.0', 9000) server = HTTPServer(host, Resquest) print("Starting server, listen at: %s:%s" % host) server.serve_forever()Edit file Dockerfile.
Contoh:
FROM registry.cn-shanghai.aliyuncs.com/serverless_devs/opencv-cuda:cuda-10.2-opencv-4.2 WORKDIR /usr/src/app RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list RUN apt-get clean RUN apt-get update --fix-missing RUN apt-get install -y build-essential RUN apt-get install -y python3 COPY . . CMD [ "python3", "-u", "/usr/src/app/app.py" ] EXPOSE 9000
Unduh file berikut dan simpan file tersebut di direktori /code.
Bangun sebuah image.
s build --dockerfile ./code/DockerfileTerapkan kode ke Function Compute.
s deployCatatanJika Anda menjalankan perintah di atas berulang kali dan nama layanan serta nama fungsi tetap tidak berubah, jalankan perintah
use localuntuk menggunakan konfigurasi lokal.Konfigurasikan instans yang disediakan.
s provision put --target 1 --qualifier LATESTPeriksa apakah instans yang disediakan sudah siap.
s provision put --target 1 --qualifier LATESTJika nilai
currentadalah 1, mode disediakan dari instans yang dipercepat GPU sudah siap. Contoh:[2021-12-07 02:20:55] [INFO] [S-CLI] - Start ... [2021-12-07 02:20:55] [INFO] [FC] - Mendapatkan provision: tgpu_object_detect_service.LATEST/tgpu_object_detect_func customContainer-demo: serviceName: tgpu_object_detect_service functionName: tgpu_object_detect_func qualifier: LATEST resource: 188077086902****#tgpu_object_detect_service#LATEST#tgpu_object_detect_func target: 1 current: 1 scheduledActions: (empty array) targetTrackingPolicies: (empty array)Panggil fungsi.
Lihat versi fungsi online
s invoke FC Invoke Result: {"result": "CUDA-capable device supported | process image ok!"}Deteksi objek
s invoke -e '{"method":"GET","headers":{"RUN-MODE":"normal"}}' enter upload: https://your_public_oss/target.jpg # Anda dapat mengunduh file ini untuk melihat hasil inferensi. FC Invoke Result: {"result": "CUDA-capable device supported | process image ok!"}
Lepaskan instans yang dipercepat GPU.
s provision put --target 0 --qualifier LATEST
Verify the result
Anda dapat melihat gambar setelah objek terdeteksi dengan mengakses domain berikut di browser Anda:
https://cri-zbtsehbrr8******-registry.oss-cn-shenzhen.aliyuncs.com/target2.jpgDomain ini digunakan sebagai contoh. Domain yang sebenarnya berlaku.




