YOLO11 λΉ λ₯Έ λ°°ν¬λ₯Ό μν΄ TorchScript μΌλ‘ λͺ¨λΈ λ΄λ³΄λ΄κΈ°
μλ² λλ μμ€ν , μΉ λΈλΌμ°μ λλ Python μ§μμ΄ μ νλ νλ«νΌ λ± λ€μν νκ²½μ μ»΄ν¨ν° λΉμ λͺ¨λΈμ λ°°ν¬νλ €λ©΄ μ μ°νκ³ μ΄μ κ°λ₯ν μ루μ μ΄ νμν©λλ€. TorchScript μ μ΄μμ±κ³Ό μ 체 Python νλ μμν¬λ₯Ό μ¬μ©ν μ μλ νκ²½μμ λͺ¨λΈμ μ€ννλ κΈ°λ₯μ μ€μ μ λ‘λλ€. λ°λΌμ λ€μν λλ°μ΄μ€λ νλ«νΌμ μ»΄ν¨ν° λΉμ κΈ°λ₯μ λ°°ν¬ν΄μΌ νλ μλ리μ€μ μ΄μμ μ λλ€.
Torchscript μΌλ‘ λ΄λ³΄λ΄μ Ultralytics YOLO11 λͺ¨λΈμ μ§λ ¬ννμ¬ νλ«νΌ κ° νΈνμ±μ λμ΄κ³ λ°°ν¬λ₯Ό κ°μνν μ μμ΅λλ€. μ΄ κ°μ΄λμμλ YOLO11 λͺ¨λΈμ TorchScript νμμΌλ‘ λ΄λ³΄λ΄μ λ λ€μν μ ν리μΌμ΄μ μμ μ½κ² μ¬μ©ν μ μλλ‘ νλ λ°©λ²μ λ³΄μ¬ λλ¦¬κ² μ΅λλ€.
TorchScript μΌλ‘ λ΄λ³΄λ΄μΌ νλ μ΄μ λ 무μμΈκ°μ?
PyTorch μ κ°λ°μκ° κ°λ°ν TorchScript μ λ€μν νλ«νΌμμ PyTorch λͺ¨λΈμ μ΅μ ννκ³ λ°°ν¬ν μ μλ κ°λ ₯ν λꡬμ λλ€. YOLO11 λͺ¨λΈλ‘ λ΄λ³΄λ΄κΈ° TorchScript λ‘ λ΄λ³΄λ΄λ κ²μ μ°κ΅¬μμ μ€μ μ ν리μΌμ΄μ μΌλ‘ μ ννλ λ° λ§€μ° μ€μν©λλ€. TorchScript PyTorch νλ μμν¬μ μΌλΆμΈ PyTorch λͺ¨λΈμ Python μ μ§μνμ§ μλ νκ²½μμλ λͺ¨λΈμ μ¬μ©ν μ μκ² ν¨μΌλ‘μ¨ μ΄λ¬ν μ νμ λ³΄λ€ μννκ² ν΄μ€λλ€.
μ΄ νλ‘μΈμ€μλ μΆμ κ³Ό μ€ν¬λ¦½ν μ΄λΌλ λ κ°μ§ κΈ°μ μ΄ ν¬ν¨λ©λλ€. μΆμ μ λͺ¨λΈ μ€ν μ€ μμ μ κΈ°λ‘νκ³ , μ€ν¬λ¦½ν μ Python μ νμ μ§ν©μ μ¬μ©νμ¬ λͺ¨λΈμ μ μν μ μμ΅λλ€. μ΄λ¬ν κΈ°μ μ ν΅ν΄ YOLO11 κ³Ό κ°μ λͺ¨λΈμ μΌλ°μ μΈ Python νκ²½ λ°μμλ κ³μ μλν μ μμ΅λλ€.
TorchScript μ°μ°μ μ΅ν© λ° λ©λͺ¨λ¦¬ μ¬μ©λ κ°μ κ³Ό κ°μ κΈ°μ μ ν΅ν΄ λͺ¨λΈμ μ΅μ ννμ¬ ν¨μ¨μ μΈ μ€νμ 보μ₯ν μλ μμ΅λλ€. TorchScript μΌλ‘ λ΄λ³΄λ΄λ λ λ€λ₯Έ μ₯μ μ λ€μν νλμ¨μ΄ νλ«νΌμμ λͺ¨λΈ μ€νμ κ°μνν μ μλ€λ μ μ λλ€. μ΄λ C++ νκ²½, μλ² λλ μμ€ν μ ν΅ν©νκ±°λ μΉ λλ λͺ¨λ°μΌ μ ν리μΌμ΄μ μ λ°°ν¬ν μ μλ λ 립ν, νλ‘λμ μ€λΉ μνμ PyTorch λͺ¨λΈμ μμ±ν©λλ€.
TorchScript λͺ¨λΈμ μ£Όμ κΈ°λ₯
TorchScriptλ PyTorch μμ½μμ€ν μ ν΅μ¬ λΆλΆμΌλ‘, λ₯λ¬λ λͺ¨λΈμ μ΅μ ννκ³ λ°°ν¬νκΈ° μν κ°λ ₯ν κΈ°λ₯μ μ 곡ν©λλ€.
λ€μμ TorchScript μ κ°λ°μμκ² μ μ©ν λκ΅¬λ‘ λ§λλ μ£Όμ κΈ°λ₯μ λλ€:
-
μ μ κ·Έλν μ€ν: TorchScript μ λͺ¨λΈ κ³μ°μ μ μ κ·Έλν ννμ μ¬μ©νλ©°, PyTorch μ λμ κ·Έλν μ€νκ³Όλ λ€λ¦ λλ€. μ μ κ·Έλν μ€νμμλ κ³μ° κ·Έλνκ° μ€μ μ€ν μ μ ν λ² μ μλκ³ μ»΄νμΌλλ―λ‘ μΆλ‘ μ μ±λ₯μ΄ ν₯μλ©λλ€.
-
λͺ¨λΈ μ§λ ¬ν: TorchScript λ₯Ό μ¬μ©νλ©΄ PyTorch λͺ¨λΈμ νλ«νΌμ λ 립μ μΈ νμμΌλ‘ μ§λ ¬νν μ μμ΅λλ€. μ§λ ¬νλ λͺ¨λΈμ μλ³Έ Python μ½λ μμ΄λ λ‘λν μ μμΌλ―λ‘ λ€μν λ°νμ νκ²½μ λ°°ν¬ν μ μμ΅λλ€.
-
JIT μ»΄νμΌ: TorchScript μ JIT(Just-In-Time) μ»΄νμΌμ μ¬μ©νμ¬ PyTorch λͺ¨λΈμ μ΅μ νλ μ€κ° ννμΌλ‘ λ³νν©λλ€. JITλ λͺ¨λΈμ κ³μ° κ·Έλνλ₯Ό μ»΄νμΌνμ¬ λμ μ₯μΉμμ ν¨μ¨μ μΌλ‘ μ€νν μ μλλ‘ ν©λλ€.
-
μΈμ΄ κ° ν΅ν©: TorchScript μ μ¬μ©νλ©΄ PyTorch λͺ¨λΈμ C++, Java, JavaScriptμ κ°μ λ€λ₯Έ μΈμ΄λ‘ λ΄λ³΄λΌ μ μμ΅λλ€. μ΄λ κ² νλ©΄ PyTorch λͺ¨λΈμ λ€λ₯Έ μΈμ΄λ‘ μμ±λ κΈ°μ‘΄ μννΈμ¨μ΄ μμ€ν μ μ½κ² ν΅ν©ν μ μμ΅λλ€.
-
μ μ§μ λ³ν: TorchScript μμλ μ μ§μ λ³ν λ°©μμ μ 곡νμ¬ PyTorch λͺ¨λΈμ μΌλΆλ₯Ό TorchScript λ‘ μ μ§μ μΌλ‘ λ³νν μ μμ΅λλ€. μ΄ μ μ°μ±μ 볡μ‘ν λͺ¨λΈμ λ€λ£¨κ±°λ μ½λμ νΉμ λΆλΆμ μ΅μ ννλ €λ κ²½μ°μ νΉν μ μ©ν©λλ€.
λ°°ν¬ μ΅μ TorchScript
YOLO11 λͺ¨λΈμ TorchScript νμμΌλ‘ λ΄λ³΄λ΄λ μ½λλ₯Ό μ΄ν΄λ³΄κΈ° μ μ TorchScript λͺ¨λΈμ΄ μΌλ°μ μΌλ‘ μ¬μ©λλ μμΉλ₯Ό μ΄ν΄ν΄ λ³΄κ² μ΅λλ€.
TorchScript λ λ€μκ³Ό κ°μ λ¨Έμ λ¬λ λͺ¨λΈμ μν λ€μν λ°°ν¬ μ΅μ μ μ 곡ν©λλ€:
-
C++ API: TorchScript μ κ°μ₯ μΌλ°μ μΈ μ¬μ© μ¬λ‘λ μ΅μ νλ TorchScript λͺ¨λΈμ C++ μ ν리μΌμ΄μ λ΄μμ μ§μ λ‘λνκ³ μ€νν μ μλ C++ APIμ λλ€. μ΄λ Python μ΄ μ ν©νμ§ μκ±°λ μ¬μ©ν μ μλ νλ‘λμ νκ²½μ μ΄μμ μ λλ€. C++ APIλ TorchScript λͺ¨λΈμ μ€λ²ν€λκ° μ κ³ ν¨μ¨μ μΌλ‘ μ€ννμ¬ μ±λ₯ μ μ¬λ ₯μ κ·Ήλνν©λλ€.
-
λͺ¨λ°μΌ λ°°ν¬: TorchScript μμλ λͺ¨λΈμ λͺ¨λ°μΌ μ₯μΉμ μ½κ² λ°°ν¬ν μ μλ νμμΌλ‘ λ³ννλ λꡬλ₯Ό μ 곡ν©λλ€. PyTorch λͺ¨λ°μΌμ iOS λ° Android μ± λ΄μμ μ΄λ¬ν λͺ¨λΈμ μ€ννκΈ° μν λ°νμμ μ 곡ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ§μ° μκ°μ΄ 짧μ μ€νλΌμΈ μΆλ‘ κΈ°λ₯μ ꡬννμ¬ μ¬μ©μ κ²½νκ³Ό λ°μ΄ν° νλΌμ΄λ²μλ₯Ό ν₯μμν¬ μ μμ΅λλ€.
-
ν΄λΌμ°λ λ°°ν¬: TorchScript λͺ¨λΈμ TorchServeμ κ°μ μ루μ μ μ¬μ©νμ¬ ν΄λΌμ°λ κΈ°λ° μλ²μ λ°°ν¬ν μ μμ΅λλ€. νλ‘λμ νκ²½μμ νμ₯ κ°λ₯ν λ°°ν¬λ₯Ό μν΄ λͺ¨λΈ λ²μ κ΄λ¦¬, λ°°μΉ λ° λ©νΈλ¦ λͺ¨λν°λ§κ³Ό κ°μ κΈ°λ₯μ μ 곡ν©λλ€. TorchScript μ ν΅ν ν΄λΌμ°λ λ°°ν¬λ API λλ κΈ°ν μΉ μλΉμ€λ₯Ό ν΅ν΄ λͺ¨λΈμ μ‘μΈμ€ν μ μλλ‘ ν©λλ€.
TorchScript μΌλ‘ λ΄λ³΄λ΄κΈ°: YOLO11 λͺ¨λΈ λ³ν
YOLO11 λͺ¨λΈμ TorchScript μΌλ‘ λ΄λ³΄λ΄λ©΄ λ€λ₯Έ κ³³μμ λ μ½κ² μ¬μ©ν μ μκ³ λ λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ μ€νν μ μμ΅λλ€. μ΄ κΈ°λ₯μ μ€μ μ ν리μΌμ΄μ μμ λ₯λ¬λ λͺ¨λΈμ λ³΄λ€ ν¨κ³Όμ μΌλ‘ μ¬μ©νλ €λ λͺ¨λ μ¬μ©μμκ² μ μ©ν©λλ€.
μ€μΉ
νμν ν¨ν€μ§λ₯Ό μ€μΉνλ €λ©΄ μ€νν©λλ€:
μ€μΉ κ³Όμ κ³Ό κ΄λ ¨λ μμΈν μ§μΉ¨κ³Ό λͺ¨λ² μ¬λ‘λ Ultralytics μ€μΉ κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ. YOLO11 μ νμν ν¨ν€μ§λ₯Ό μ€μΉνλ λμ λ¬Έμ κ° λ°μνλ©΄ μΌλ°μ μΈ λ¬Έμ κ°μ΄λλ₯Ό μ°Έμ‘°νμ¬ ν΄κ²° λ°©λ²κ³Ό νμ νμΈνμΈμ.
μ¬μ©λ²
μ¬μ© μ§μΉ¨μ μ΄ν΄λ³΄κΈ° μ μ λͺ¨λ Ultralytics YOLO11 λͺ¨λΈμμ λ΄λ³΄λ΄κΈ°λ₯Ό μ¬μ©ν μ μμ§λ§, μ νν λͺ¨λΈμ΄ λ΄λ³΄λ΄κΈ° κΈ°λ₯μ μ§μνλμ§ μ¬κΈ°μμ νμΈν μ μλ€λ μ μ μ μνμΈμ.
μ¬μ©λ²
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
λ΄λ³΄λ΄κΈ° νλ‘μΈμ€μ λν μμΈν λ΄μ©μ λ΄λ³΄λ΄κΈ° κ΄λ ¨ λ¬Έμ νμ΄μ§(Ultralytics )λ₯Ό μ°Έμ‘°νμΈμ.
λ΄λ³΄λΈ YOLO11 TorchScript λͺ¨λΈ λ°°ν¬
Ultralytics YOLO11 λͺ¨λΈμ TorchScript νμμΌλ‘ μ±κ³΅μ μΌλ‘ λ΄λ³΄λΈ νμλ μ΄μ λ°°ν¬ν μ μμ΅λλ€. TorchScript λͺ¨λΈμ μ€ννκΈ° μν κΈ°λ³Έμ μ΄κ³ κΆμ₯λλ 첫 λ²μ§Έ λ¨κ³λ μ΄μ μ¬μ© μ½λ μ‘°κ°μ μ€λͺ λ λλ‘ YOLO("λͺ¨λΈ.torchscript") λ°©λ²μ νμ©νλ κ²μ λλ€. κ·Έλ¬λ λ€μν λ€λ₯Έ μ€μ μμ TorchScript λͺ¨λΈμ λ°°ν¬νλ λ°©λ²μ λν μμΈν μ§μΉ¨μ λ€μ 리μμ€λ₯Ό μ°Έμ‘°νμΈμ:
-
λͺ¨λ°μΌ λ°°ν¬ μ΄ν΄λ³΄κΈ°: λͺ¨λ°μΌ λ°°ν¬ PyTorch λͺ¨λ°μΌ λ¬Έμμμλ λͺ¨λ°μΌ λλ°μ΄μ€μ λͺ¨λΈμ λ°°ν¬νκΈ° μν ν¬κ΄μ μΈ μ§μΉ¨μ μ 곡νμ¬ μ ν리μΌμ΄μ μ ν¨μ¨μ±κ³Ό μλ΅μ±μ 보μ₯ν©λλ€.
-
λ§μ€ν° μλ² μΈ‘ λ°°ν¬: νμ₯ κ°λ₯νκ³ ν¨μ¨μ μΈ λͺ¨λΈ μ 곡μ μν λ¨κ³λ³ νν 리μΌμ μ 곡νλ TorchServeλ₯Ό μ¬μ©νμ¬ μλ² μΈ‘μ λͺ¨λΈμ λ°°ν¬νλ λ°©λ²μ μμ보μΈμ.
-
C++ λ°°ν¬ κ΅¬ν: TorchScript λͺ¨λΈμ C++λ‘ λ‘λνλ νν 리μΌμ ν΅ν΄ TorchScript λͺ¨λΈμ C++ μ ν리μΌμ΄μ μ ν΅ν©νμ¬ ν₯μλ μ±λ₯κ³Ό λ€μν κΈ°λ₯μ νμ©ν μ μμ΅λλ€.
μμ½
μ΄ κ°μ΄λμμλ Ultralytics YOLO11 λͺ¨λΈμ TorchScript νμμΌλ‘ λ΄λ³΄λ΄λ νλ‘μΈμ€λ₯Ό μ΄ν΄λ΄€μ΅λλ€. μ 곡λ μ§μΉ¨μ λ°λΌ YOLO11 λͺ¨λΈμ μ±λ₯μ λ§κ² μ΅μ ννκ³ λ€μν νλ«νΌκ³Ό νκ²½μ λ°°ν¬ν μ μλ μ μ°μ±μ ν보ν μ μμ΅λλ€.
μ¬μ©λ²μ λν μμΈν λ΄μ©μ TorchScript μ 곡μ λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.
λν Ultralytics YOLO11 ν΅ν©μ λν΄ λ μμΈν μκ³ μΆλ€λ©΄ ν΅ν© κ°μ΄λ νμ΄μ§λ₯Ό λ°©λ¬ΈνμΈμ. μ μ©ν 리μμ€μ μΈμ¬μ΄νΈλ₯Ό λ§μ΄ μ°Ύμ μ μμ΅λλ€.
μμ£Ό 묻λ μ§λ¬Έ
Ultralytics YOLO11 λͺ¨λΈ λ΄λ³΄λ΄κΈ°λ 무μμΈκ°μ TorchScript?
Ultralytics YOLO11 λͺ¨λΈμ TorchScript λ‘ λ΄λ³΄λ΄λ©΄ μ μ°ν ν¬λ‘μ€ νλ«νΌ λ°°ν¬κ° κ°λ₯ν©λλ€. TorchScript PyTorch μμ½μμ€ν μ μΌλΆμΈ λͺ¨λΈμ μ§λ ¬ννλ©΄ Python μ§μμ΄ μλ νκ²½μμλ λͺ¨λΈμ μ€νν μ μμ΅λλ€. λ°λΌμ μλ² λλ μμ€ν , C++ νκ²½, λͺ¨λ°μΌ μ ν리μΌμ΄μ , μ¬μ§μ΄ μΉ λΈλΌμ°μ μ λͺ¨λΈμ λ°°ν¬νλ λ° μ΄μμ μ λλ€. TorchScript μΌλ‘ λ΄λ³΄λ΄λ©΄ λ€μν νλ«νΌμμ YOLO11 λͺ¨λΈμ ν¨μ¨μ μΈ μ±λ₯κ³Ό νλμ μ μ©μ±μ ν보ν μ μμ΅λλ€.
Ultralytics μ μ¬μ©νμ¬ YOLO11 λͺ¨λΈμ TorchScript μΌλ‘ λ΄λ³΄λ΄λ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
YOLO11 λͺ¨λΈμ TorchScript μΌλ‘ λ΄λ³΄λ΄λ €λ©΄ λ€μ μμ μ½λλ₯Ό μ¬μ©ν μ μμ΅λλ€:
μ¬μ©λ²
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
λ΄λ³΄λ΄κΈ° νλ‘μΈμ€μ λν μμΈν λ΄μ©μ λ΄λ³΄λ΄κΈ° κ΄λ ¨ λ¬Έμ(Ultralytics )λ₯Ό μ°Έμ‘°νμΈμ.
YOLO11 λͺ¨λΈμ λ°°ν¬ν λ TorchScript μ μ¬μ©ν΄μΌ νλ μ΄μ λ 무μμΈκ°μ?
YOLO11 λͺ¨λΈμ λ°°ν¬ν λ TorchScript μ μ¬μ©νλ©΄ λͺ κ°μ§ μ΄μ μ΄ μμ΅λλ€:
- μ΄μμ±: λ΄λ³΄λΈ λͺ¨λΈμ C++ μ ν리μΌμ΄μ , μλ² λλ μμ€ν λλ λͺ¨λ°μΌ λλ°μ΄μ€μ κ°μ΄ Python μ΄ νμ μλ νκ²½μμλ μ€νν μ μμ΅λλ€.
- μ΅μ ν: TorchScript μ λͺ¨λΈ μ±λ₯μ μ΅μ νν μ μλ μ μ κ·Έλν μ€ν λ° JIT(Just-In-Time) μ»΄νμΌμ μ§μν©λλ€.
- μΈμ΄ κ° ν΅ν©: TorchScript λͺ¨λΈμ λ€λ₯Έ νλ‘κ·Έλλ° μΈμ΄μ ν΅ν©νμ¬ μ μ°μ±κ³Ό νμ₯μ±μ ν₯μμν¬ μ μμ΅λλ€.
- μ§λ ¬ν: λͺ¨λΈμ μ§λ ¬νν μ μμΌλ―λ‘ νλ«νΌμ ꡬμ λ°μ§ μκ³ λ‘λ λ° μΆλ‘ ν μ μμ΅λλ€.
λ°°ν¬μ λν μμΈν λ΄μ©μ PyTorch λͺ¨λ°μΌ λ¬Έμ, TorchServe λ¬Έμ λ° C++ λ°°ν¬ κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ.
YOLO11 λͺ¨λΈμ TorchScript μΌλ‘ λ΄λ³΄λ΄κΈ° μν μ€μΉ λ¨κ³λ μ΄λ»κ² λλμ?
YOLO11 λͺ¨λΈ λ΄λ³΄λ΄κΈ°μ νμν ν¨ν€μ§λ₯Ό μ€μΉνλ €λ©΄ λ€μ λͺ λ Ήμ μ¬μ©ν©λλ€:
μμΈν μ§μΉ¨μ Ultralytics μ€μΉ κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ. μ€μΉ μ€μ λ¬Έμ κ° λ°μνλ©΄ μΌλ°μ μΈ λ¬Έμ κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ.
λ΄λ³΄λΈ TorchScript YOLO11 λͺ¨λΈμ λ°°ν¬νλ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
YOLO11 λͺ¨λΈμ TorchScript νμμΌλ‘ λ΄λ³΄λΈ ν λ€μν νλ«νΌμ λ°°ν¬ν μ μμ΅λλ€:
- C++ API: μ€λ²ν€λκ° μ κ³ ν¨μ¨μ±μ΄ λμ νλ‘λμ νκ²½μ μ΄μμ μ λλ€.
- λͺ¨λ°μΌ λ°°ν¬: iOS λ° Android μ ν리μΌμ΄μ μ κ²½μ° PyTorch λͺ¨λ°μΌμ μ¬μ©νμΈμ.
- ν΄λΌμ°λ λ°°ν¬: νμ₯ κ°λ₯ν μλ² μΈ‘ λ°°ν¬λ₯Ό μν΄ TorchServeμ κ°μ μλΉμ€λ₯Ό νμ©νμΈμ.
μ΄λ¬ν μ€μ μμ λͺ¨λΈμ λ°°ν¬νκΈ° μν ν¬κ΄μ μΈ κ°μ΄λλΌμΈμ μ΄ν΄λ³΄κ³ TorchScript μ κΈ°λ₯μ μ΅λν νμ©νμΈμ.