Π Π°Π·Π½ΠΎΠ΅

Ml core apple: Core ML — Machine Learning

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ВСстированиС ΠΈ ΠΎΠ±Π·ΠΎΡ€ Core ML / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ MobileUp / Π₯Π°Π±Ρ€

На WWDC’17 Apple прСдставила Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСхнологиями машинного обучСния Core ML. На основС Π½Π΅Π³ΠΎ Π² iOS Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ собствСнныС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Apple: Siri, Camera ΠΈ QuickType. Core ML позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ машинного обучСния Π² прилоТСния ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Β«ΡƒΠΌΠ½Ρ‹Π΅Β» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Ρ‹ строчСк ΠΊΠΎΠ΄Π°.

ВозмоТности Core ML

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • распознаваниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;
  • ΠΏΡ€Π΅Π΄ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ тСкста;
  • распознаваниС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²;
  • Π°Π½Π°Π»ΠΈΠ· Ρ‚ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;
  • распознаваниС рукописного тСкста;
  • Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ поиска;
  • стилизация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;
  • распознаваниС Π»ΠΈΡ†;
  • идСнтификация голоса;
  • ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ;
  • Ρ€Π΅Ρ„Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста;
  • ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ.

Core ML позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ машинного обучСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: tree ensembles, SVMs ΠΈ generalized linear models. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Metal, Accelerate ΠΈ BNNS. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСний происходят ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.

Vision

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Vision Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° основС Core ML ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ с отслСТиваниСм ΠΈ распознаваниСм Π»ΠΈΡ†, тСкста, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ доступно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ для выравнивания изобраТСния.

NSLinguisticTagger

Π‘ iOS 5 Apple прСдставила NSLinguisticTagger, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ СстСствСнный язык, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство языков ΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ². C Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ iOS 11 класс ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ строку с тСкстом Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках ΠΈ ΠΎΠ½ Π²Π΅Ρ€Π½Π΅Ρ‚ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ язык Π² этой строкС ΠΈ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. NSLinguisticTagger Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания тСкста ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

Core ML Model

На ΠΏΡ€ΠΎΠΌΠΎ страницС Core ML Apple прСдоставила 4 ΠΌΠΎΠ΄Π΅Π»ΠΈ. ВсС ΠΎΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ изобраТСния. МодСли Core ML Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ локально ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах, сводя ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ объСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти ΠΈ энСргопотрСблСниС.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML Tools.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ способ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎ врСмя выполнСния:


  1. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ‚Π°Ρ€Π³Π΅Ρ‚ прилоТСния.
  2. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль ΠΈΠ· .mlmodel Π² .mlmodelc, Π½Π΅ измСняя Π΅Ρ‘ интСрфСйс.
  3. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сСрвСр.
  4. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния.
  5. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

CoreMLModelClass.init(contentOf: URL)

Π Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ послС выпуска прилоТСния Π² App Store Π½Π΅ протСстирована.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Core ML

  • РСшСниС ΠΎΡ‚ Apple Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Волько ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹.
  • МодСль Π½Π΅ сТимаСтся.
  • Она Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ. Π’Π°ΠΌ придСтся ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… самому.

ВСстируСм Core ML

Π― ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» тСстовый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с использованиСм Core ML. ΠœΡ‹ сдСлаСм простой Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ всС Π² этой всСлСнной ΠΎΡ‚ ΠΊΠΎΡ‚Π°.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Single View Application. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Core ML модСль, которая ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Inception v3. Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ пСрСнСсти модСль Π² Project Navigator, Xcode автоматичСски сгСнСрируСт интСрфСйс для Π½Π΅Π΅.

На сториборд добавляСм Π½Π° вСсь экран View, Ρ‚ΡƒΠ΄Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. ΠŸΠΎΠ²Π΅Ρ€Ρ… добавляСм Visual Effect View ΠΈ Label. ΠŸΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ Π°ΡƒΡ‚Π»Π΅Ρ‚Ρ‹ Π² ViewController.

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π² plist Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° использованиС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

Нам Π½ΡƒΠΆΠ½ΠΎ вывСсти ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, для этого создадим AVCaptureSession ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для получСния Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² DispatchQueue. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° наш View слой AVCaptureVideoPreviewLayer, Π½Π° Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ выводится ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив VNRequest β€” это запросы ΠΊ Vision. Π‘Ρ€Π°Π·Ρƒ Π² viewDidLoad ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

import UIKit
import AVFoundation
import Vision

class ViewController: UIViewController {

    @IBOutlet var resultLabel: UILabel!
    @IBOutlet var resultView: UIView!

    let session = AVCaptureSession()
    var previewLayer: AVCaptureVideoPreviewLayer!
    let captureQueue = DispatchQueue(label: "captureQueue")
    var visionRequests = [VNRequest]()

    override func viewDidLoad() {
        super.viewDidLoad()

        guard let camera = AVCaptureDevice.default(for: .video) else {
            return
        }
        do {
            previewLayer = AVCaptureVideoPreviewLayer(session: session)
            resultView.layer.addSublayer(previewLayer)
        } catch {
            let alertController = UIAlertController(title: nil, message: error.localizedDescription, preferredStyle: .alert)
            alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
            present(alertController, animated: true, completion: nil)
        }
    }
}

Π”Π°Π»Π΅Π΅ настраиваСм cameraInput ΠΈ cameraOutput, добавляСм ΠΈΡ… ΠΊ сСссии ΠΈ стартуСм Π΅Π΅ для получСния ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ….

let cameraInput = try AVCaptureDeviceInput(device: camera)
let videoOutput = AVCaptureVideoDataOutput()
videoOutput.setSampleBufferDelegate(self, queue: captureQueue)
videoOutput.alwaysDiscardsLateVideoFrames = true
videoOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: kCVPixelFormatType_32BGRA]

session.sessionPreset = .high
session.addInput(cameraInput)
session.addOutput(videoOutput)

let connection = videoOutput.connection(with: .video)
connection?.videoOrientation = .portrait
session.startRunning()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Core ML модСль для Vision ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ запрос.

guard let visionModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
    fatalError("Could not load model")
}

let classificationRequest = VNCoreMLRequest(model: visionModel, completionHandler: handleClassifications)
classificationRequest.imageCropAndScaleOption = VNImageCropAndScaleOptionCenterCrop
visionRequests = [classificationRequest]

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ, Π±Π΅Ρ€Π΅ΠΌ 3 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятных ΠΏΠΎ мнСнию ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ ΠΈΡ‰Π΅ΠΌ срСди Π½ΠΈΡ… слово cat.

private func handleClassifications(request: VNRequest, error: Error?) {
    if let error = error {
        print(error.localizedDescription)
        return
    }
    guard let results = request.results as? [VNClassificationObservation] else {
        print("No results")
        return
    }

    var resultString = "Π­Ρ‚ΠΎ Π½Π΅ ΠΊΠΎΡ‚!"
    results[0...3].forEach {
            let identifer = $0.identifier.lowercased()
            if identifer.range(of: "cat") != nil {
            resultString = "Π­Ρ‚ΠΎ ΠΊΠΎΡ‚!"
        }
    }
    DispatchQueue.main.async {
        self.resultLabel.text = resultString
    }
}

ПослСднСС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π΅Π»Π°Π³Π°Ρ‚Π° AVCaptureVideoDataOutputSampleBufferDelegate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Π’ Π½Π΅ΠΌ ΠΌΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ запрос ΠΈ выполняСм Π΅Π³ΠΎ.

extension ViewController: AVCaptureVideoDataOutputSampleBufferDelegate {

    func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
        guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
            return
        }

        var requestOptions: [VNImageOption: Any] = [:]
        if let cameraIntrinsicData = CMGetAttachment(sampleBuffer, kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix, nil) {
            requestOptions = [.cameraIntrinsics: cameraIntrinsicData]
        }

        let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: 1, options: requestOptions)
        do {
            try imageRequestHandler.perform(visionRequests)
        } catch {
            print(error)
        }
    }
}

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π’Ρ‹ написали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΊΠΎΡ‚ΠΎΠ² ΠΎΡ‚ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²!

β†’ Бсылка Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

НСсмотря Π½Π° особСнности, Core ML Π½Π°ΠΉΠ΄Π΅Ρ‚ свою Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Если Π²Ρ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ с ограничСниями ΠΈ нСбольшими возмоТностями, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ сторонних Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². НапримСр, YOLO ΠΈΠ»ΠΈ Swift-AI.

ВСстированиС ΠΈ ΠΎΠ±Π·ΠΎΡ€ Core ML

На WWDC’17 Apple прСдставила Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСхнологиями машинного обучСния Core ML. На основС Π½Π΅Π³ΠΎ Π² iOS Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ собствСнныС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Apple: Siri, Camera ΠΈ QuickType. Core ML позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ машинного обучСния Π² прилоТСния ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Β«ΡƒΠΌΠ½Ρ‹Π΅Β» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Ρ‹ строчСк ΠΊΠΎΠ΄Π°.

ВозмоТности Core ML

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • распознаваниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;
  • ΠΏΡ€Π΅Π΄ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ тСкста;
  • распознаваниС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²;
  • Π°Π½Π°Π»ΠΈΠ· Ρ‚ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;
  • распознаваниС рукописного тСкста;
  • Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ поиска;
  • стилизация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;
  • распознаваниС Π»ΠΈΡ†;
  • идСнтификация голоса;
  • ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ;
  • Ρ€Π΅Ρ„Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста;
  • ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ.

Core ML позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ машинного обучСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: tree ensembles, SVMs ΠΈ generalized linear models. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Metal, Accelerate ΠΈ BNNS. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСний происходят ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.

Vision

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Vision Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° основС Core ML ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ с отслСТиваниСм ΠΈ распознаваниСм Π»ΠΈΡ†, тСкста, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ доступно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ для выравнивания изобраТСния.

NSLinguisticTagger

Π‘ iOS 5 Apple прСдставила NSLinguisticTagger, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ СстСствСнный язык, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство языков ΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ². C Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ iOS 11 класс ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ строку с тСкстом Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках ΠΈ ΠΎΠ½ Π²Π΅Ρ€Π½Π΅Ρ‚ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ язык Π² этой строкС ΠΈ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. NSLinguisticTagger Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания тСкста ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

Core ML Model

На ΠΏΡ€ΠΎΠΌΠΎ страницС Core ML Apple прСдоставила 4 ΠΌΠΎΠ΄Π΅Π»ΠΈ. ВсС ΠΎΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ изобраТСния. МодСли Core ML Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ локально ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах, сводя ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ объСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ памяти ΠΈ энСргопотрСблСниС.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML Tools.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ способ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎ врСмя выполнСния:


  1. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ‚Π°Ρ€Π³Π΅Ρ‚ прилоТСния.
  2. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль ΠΈΠ· .mlmodel Π² .mlmodelc, Π½Π΅ измСняя Π΅Ρ‘ интСрфСйс.
  3. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сСрвСр.
  4. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния.
  5. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

CoreMLModelClass.init(contentOf: URL)

Π Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ послС выпуска прилоТСния Π² App Store Π½Π΅ протСстирована.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Core ML

  • РСшСниС ΠΎΡ‚ Apple Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Волько ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹.
  • МодСль Π½Π΅ сТимаСтся.
  • Она Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ. Π’Π°ΠΌ придСтся ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… самому.

ВСстируСм Core ML

Π― ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» тСстовый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с использованиСм Core ML. ΠœΡ‹ сдСлаСм простой Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ всС Π² этой всСлСнной ΠΎΡ‚ ΠΊΠΎΡ‚Π°.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Single View Application. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Core ML модСль, которая ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Inception v3. Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ пСрСнСсти модСль Π² Project Navigator, Xcode автоматичСски сгСнСрируСт интСрфСйс для Π½Π΅Π΅.
На сториборд добавляСм Π½Π° вСсь экран View, Ρ‚ΡƒΠ΄Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. ΠŸΠΎΠ²Π΅Ρ€Ρ… добавляСм Visual Effect View ΠΈ Label. ΠŸΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ Π°ΡƒΡ‚Π»Π΅Ρ‚Ρ‹ Π² ViewController.
НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π² plist Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° использованиС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

Нам Π½ΡƒΠΆΠ½ΠΎ вывСсти ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, для этого создадим AVCaptureSession ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для получСния Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² DispatchQueue. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° наш View слой AVCaptureVideoPreviewLayer, Π½Π° Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ выводится ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив VNRequest β€” это запросы ΠΊ Vision. Π‘Ρ€Π°Π·Ρƒ Π² viewDidLoad ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹.

import UIKit
import AVFoundation
import Vision

class ViewController: UIViewController {

    @IBOutlet var resultLabel: UILabel!
    @IBOutlet var resultView: UIView!

    let session = AVCaptureSession()
    var previewLayer: AVCaptureVideoPreviewLayer!
    let captureQueue = DispatchQueue(label: "captureQueue")
    var visionRequests = [VNRequest]()

    override func viewDidLoad() {
        super.viewDidLoad()

        guard let camera = AVCaptureDevice.default(for: .video) else {
            return
        }
        do {
            previewLayer = AVCaptureVideoPreviewLayer(session: session)
            resultView.layer.addSublayer(previewLayer)
        } catch {
            let alertController = UIAlertController(title: nil, message: error.localizedDescription, preferredStyle: .alert)
            alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
            present(alertController, animated: true, completion: nil)
        }
    }
}

Π”Π°Π»Π΅Π΅ настраиваСм cameraInput ΠΈ cameraOutput, добавляСм ΠΈΡ… ΠΊ сСссии ΠΈ стартуСм Π΅Π΅ для получСния ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ….

let cameraInput = try AVCaptureDeviceInput(device: camera)
let videoOutput = AVCaptureVideoDataOutput()
videoOutput.setSampleBufferDelegate(self, queue: captureQueue)
videoOutput.alwaysDiscardsLateVideoFrames = true
videoOutput.videoSettings = [kCVPixelBufferPixelFormatTypeKey as String: kCVPixelFormatType_32BGRA]

session.sessionPreset = .high
session.addInput(cameraInput)
session.addOutput(videoOutput)

let connection = videoOutput.connection(with: .video)
connection?.videoOrientation = .portrait
session.startRunning()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Core ML модСль для Vision ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ запрос.

guard let visionModel = try? VNCoreMLModel(for: Inceptionv3().model) else {
    fatalError("Could not load model")
}

let classificationRequest = VNCoreMLRequest(model: visionModel, completionHandler: handleClassifications)
classificationRequest.imageCropAndScaleOption = VNImageCropAndScaleOptionCenterCrop
visionRequests = [classificationRequest]

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ, Π±Π΅Ρ€Π΅ΠΌ 3 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятных ΠΏΠΎ мнСнию ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ ΠΈΡ‰Π΅ΠΌ срСди Π½ΠΈΡ… слово cat.

private func handleClassifications(request: VNRequest, error: Error?) {
    if let error = error {
        print(error.localizedDescription)
        return
    }
    guard let results = request.results as? [VNClassificationObservation] else {
        print("No results")
        return
    }

    var resultString = "Π­Ρ‚ΠΎ Π½Π΅ ΠΊΠΎΡ‚!"
    results[0...3].forEach {
            let identifer = $0.identifier.lowercased()
            if identifer.range(of: "cat") != nil {
            resultString = "Π­Ρ‚ΠΎ ΠΊΠΎΡ‚!"
        }
    }
    DispatchQueue.main.async {
        self.resultLabel.text = resultString
    }
}

ПослСднСС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π΅Π»Π°Π³Π°Ρ‚Π° AVCaptureVideoDataOutputSampleBufferDelegate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ с ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Π’ Π½Π΅ΠΌ ΠΌΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ запрос ΠΈ выполняСм Π΅Π³ΠΎ.

extension ViewController: AVCaptureVideoDataOutputSampleBufferDelegate {

    func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
        guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
            return
        }

        var requestOptions: [VNImageOption: Any] = [:]
        if let cameraIntrinsicData = CMGetAttachment(sampleBuffer, kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix, nil) {
            requestOptions = [.cameraIntrinsics: cameraIntrinsicData]
        }

        let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: 1, options: requestOptions)
        do {
            try imageRequestHandler.perform(visionRequests)
        } catch {
            print(error)
        }
    }
}

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π’Ρ‹ написали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΊΠΎΡ‚ΠΎΠ² ΠΎΡ‚ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²!
Бсылка Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

НСсмотря Π½Π° особСнности, Core ML Π½Π°ΠΉΠ΄Π΅Ρ‚ свою Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Если Π²Ρ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ с ограничСниями ΠΈ нСбольшими возмоТностями, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ сторонних Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². НапримСр, YOLO ΠΈΠ»ΠΈ Swift-AI.

Автор: dmrozov

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Core ML: машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π² iOS

Ну ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π΅ обошлось Π±Π΅Π· искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΈ машинного обучСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ доступна Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΒ Core ML, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ собствСнныС прилоТСния Apple β€” Siri, Camera ΠΈ QuickType.

Core ML позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° iOS ΠΏΡ€Π΅Π΄ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ сСрвСрныС ΠΌΠΎΠ΄Π΅Π»ΠΈ. На самом устройствС ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠΊΠ° нСльзя. Π£ΠΆΠ΅ сСйчас ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Core ML, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для отслСТивания ΠΈ распознавания Π»ΠΈΡ†, опрСдСлСния ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Ρ„ΠΎΡ‚ΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ (Vision) ΠΈΠ»ΠΈ для понимания ΠΈ распознавания тСкста (Natural Language).

Apple сдСлала ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для всСх популярных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²: Caffe,Β Keras, scikit-learn, XGBoost, LIBSVM.

Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ скоро ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ TensorFlow, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах.

Если Π²Ρ‹ нашли ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ — Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π΅Π΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Enter! Для связи с Π½Π°ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ [email protected].

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WinMLTools



  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 9Β ΠΌΠΈΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

WinMLTools позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния, созданныС с использованиСм Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ обучСния, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX.WinMLTools enables you to convert machine learning models created with different training frameworks into ONNX. Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ONNXMLTools ΠΈ TF2ONNX, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для прСобразования ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX для использования с Windows ML.It is an extension of ONNXMLTools and TF2ONNX to convert models to ONNX for use with Windows ML.

БСйчас WinMLTools ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ:WinMLTools currently supports conversion from the following frameworks:

  • Apple Core ML;Apple Core ML
  • Keras;Keras
  • scikit-learn;scikit-learn
  • lightgbm;lightgbm
  • xgboost;xgboost
  • libSVM;libSVM
  • TensorFlow (Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅).TensorFlow (experimental)

Π‘ΠΌ. свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ машинного обучСния, Π² руководствах ΠΏΠΎ ONNX Π½Π° GitHub.To learn how to export from other ML frameworks, take a look at the ONNX tutorials on GitHub.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описано, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WinMLTools Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:In this article, we demonstrate how to use WinMLTools to:

  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Core ML Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX;Convert Core ML models into ONNX
  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ scikit-learn Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX;Convert scikit-learn models into ONNX
  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ TensorFlow Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX;Convert TensorFlow models into ONNX
  • ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ дискрСтизации вСсовых коэффициСнтов ΠΊ модСлям ONNX послС обучСния;Apply post-training weight quantization to ONNX models
  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ 16-разрядной точности с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой;Convert floating point models to 16-bit floating point precision models
  • созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ONNX.Create custom ONNX operators

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ПослСдняя вСрсия WinMLTools ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX вСрсий 1.2.2, 1.3 ΠΈΒ 1.4 (опрСдСляСтся Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ONNX вСрсий 7, 8 ΠΈ 9 соотвСтствСнно).The latest version of WinMLTools supports conversion to ONNX versions 1.2.2, 1.3, and 1.4, as specified respectively by ONNX opsets 7 and 8, and 9. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии срСдства Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ONNX вСрсии 1.4.Previous versions of the tool do not have support for ONNX 1.4.

WinMLTools прСдоставляСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python (winmltools), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Python вСрсий 2.7 ΠΈΒ 3.6.WinMLTools is a Python package (winmltools) that supports Python versions 2.7 and 3.6. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ дистрибутив Python для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… вычислСний, ΠΊΠ°ΠΊ Anaconda.If you are working on a data science project, we recommend installing a scientific Python distribution such as Anaconda.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

БСйчас WinMLTools Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Python вСрсии 3.7.WinMLTools does not currently support Python 3.7.

WinMLTools ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ стандартный процСсс установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python.WinMLTools follows the standard Python package installation process. Π’ срСдС Python Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:From your Python environment, run:

pip install winmltools

WinMLTools ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ зависимости:WinMLTools has the following dependencies:

  • numpy вСрсии 1.10.0 ΠΈ Π²Ρ‹ΡˆΠ΅;numpy v1.10.0+
  • protobuf вСрсии 3.6.0 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅;protobuf v.3.6.0+
  • onnx вСрсии 1.3.0 ΠΈ Π²Ρ‹ΡˆΠ΅;onnx v1.3.0+
  • onnxmltools вСрсии 1.3.0 ΠΈ Π²Ρ‹ΡˆΠ΅;onnxmltools v1.3.0+
  • tf2onnx вСрсии 0.3.2 ΠΈ Π²Ρ‹ΡˆΠ΅.tf2onnx v0.3.2+

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимыС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pip с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ -U.To update the dependent packages, run the pip command with the -U argument.

pip install -U winmltools

Для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.For different converters, you will have to install different packages.

Для libsvmΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ libsvm wheel ΠΈΠ· любого источника Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅.For libsvm, you can download libsvm wheel from various web sources. Один ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² доступСн Π½Π° Π²Π΅Π±-сайтС ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΠΉΡΠΊΠΎΠ³ΠΎ унивСрситСта Π² Π˜Ρ€Π²Π°ΠΉΠ½Π΅.One example can be found at the University of California, Irvine’s website.

Для coremltools компания Apple ΠΏΠΎΠΊΠ° Π½Π΅ прСдоставляСт ΠΏΠ°ΠΊΠ΅Ρ‚ CoreΒ ML для Windows.For coremltools, currently Apple does not distribute Core ML packaging on Windows. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ установку ΠΈΠ· исходного ΠΊΠΎΠ΄Π°:You can install from source:

pip install git+https://github.com/apple/coremltools

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° onnxmltools Π½Π° GitHub, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ зависимостях onnxmltools.Follow onnxmltools on GitHub for further information on onnxmltools dependencies.

Π‘ΠΌ. свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ WinMLTools, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ help.Additional details on how to use WinMLTools can be found on the package-specific documentation with the help function.

help(winmltools)

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ CoreΒ MLConvert Core ML models

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ example.mlmodel.Here, we assume that the path of an example Core ML model file is example.mlmodel.

from coremltools.models.utils import load_spec
# Load model file
model_coreml = load_spec('example.mlmodel')
from winmltools import convert_coreml
# Convert it!
# The automatic code generator (mlgen) uses the name parameter to generate class names.
model_onnx = convert_coreml(model_coreml, 7, name='ExampleModel')

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ convert_coreml() являСтся target_opset. Он ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² пространствС ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ai.onnx.The second parameter in the call to convert_coreml() is the target_opset, and it refers to the version number of the operators in the default namespace ai.onnx. Π‘ΠΌ. свСдСния ΠΎΠ± этих опСрациях.See more details on these operators here. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² послСднСй вСрсии WinMLTools. Он позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии ONNX (сСйчас ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ вСрсии 1.2.2 ΠΈΒ 1.3).This parameter is only available on the latest version of WinMLTools, enabling developers to target different ONNX versions (currently versions 1.2.2 and 1.3 are supported). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows ΠΎΡ‚ 10 октября 2018Β Π³., ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ target_opset вСрсии 7 (ONNXΒ 1.2.2).To convert models to run with the Windows 10 October 2018 update, use target_opset 7 (ONNX v1.2.2). Π’ WindowsΒ 10 сборки 17763 ΠΈ Π²Ρ‹ΡˆΠ΅ WinML ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ с target_opset вСрсий 7 ΠΈΒ 8 (ONNXΒ 1.3).For Windows 10 builds greater than 17763, WinML accepts models with target_opset 7 and 8 (ONNX v.1.3). Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΎ выпускС Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ минимальная ΠΈ максимальная вСрсии ONNX, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π² WinML Ρ€Π°Π·Π½Ρ‹Ρ… сборок.The Release Notes section also contains the min and max ONNX versions supported by WinML in different builds.

model_onnx являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ONNX ModelProto.model_onnx is an ONNX ModelProto object. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ….We can save it in two different formats.

from winmltools.utils import save_model
# Save the produced ONNX model in binary format
save_model(model_onnx, 'example.onnx')
# Save the produced ONNX model in text format
from winmltools.utils import save_text
save_text(model_onnx, 'example.txt')

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

CoreMLToolsΒ β€” это ΠΏΠ°ΠΊΠ΅Ρ‚ Python, прСдоставляСмый ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Apple, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСдоступСн для Windows.Core MLTools is a Python package provided by Apple, but is not available on Windows. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ этот ΠΏΠ°ΠΊΠ΅Ρ‚ Π² Windows, установитС Π΅Π³ΠΎ нСпосрСдствСнно ΠΈΠ· рСпозитория:If you need to install the package on Windows, install the package directly from the repo:

pip install git+https://github.com/apple/coremltools

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ CoreΒ ML с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…Convert Core ML models with image inputs or outputs

Из-Π·Π° отсутствия Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ONNX для прСобразования ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Core ML (Ρ‚. Π΅. ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… изобраТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…) трСбуСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ постобработка.Because of the lack of image types in ONNX, converting Core ML image models (that is, models using images as inputs or outputs) requires some pre-processing and post-processing steps.

Π—Π°Π΄Π°Ρ‡Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния Π² Π²ΠΈΠ΄Π΅ Ρ‚Π΅Π½Π·ΠΎΡ€Π° ONNX.The objective of pre-processing is to make sure the input image is properly formatted as an ONNX tensor. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, XΒ β€” это Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ CoreΒ ML с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ [C, H, W].Assume X is an image input with shape [C, H, W] in Core ML. Π’ ONNX пСрСмСнная X Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠΌ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², Π° X[0, :, :]/X[1, :, :]/X[2, :, :] содСрТат красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΈ синий ΠΊΠ°Π½Π°Π»Ρ‹ изобраТСния соотвСтствСнно.In ONNX, the variable X would be a floating-point tensor with the same shape and X[0, :, :]/X[1, :, :]/X[2, :, :] stores the image’s red/green/blue channel. Для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ CoreΒ ML Π² градациях сСрого Ρ‚Π΅Π½Π·ΠΎΡ€Ρ‹ ONNX Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ [1, H, W], Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π».For grayscale images in Core ML, their format is [1, H, W]-tensors in ONNX because we only have one channel.

Если ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ модСль CoreΒ ML Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚Π΅Π½Π·ΠΎΡ€Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ONNX ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² изобраТСния.If the original Core ML model outputs an image, manually convert ONNX’s floating-point output tensors back into images. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄Π²Π° шага:There are two basic steps. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉΒ β€” усСчСниС всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ большС 255 Π΄ΠΎ 255 ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ всСх ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° 0.The first step is to truncate values greater than 255 to 255 and change all negative values to 0. Π’Ρ‚ΠΎΡ€ΠΎΠΉΒ β€” ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пиксСлСй Π΄ΠΎ Ρ†Π΅Π»Ρ‹Ρ… чисСл (ΠΏΡƒΡ‚Π΅ΠΌ добавлСния 0,5 ΠΈ усСчСния Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части).The second step is to round all pixel values to integers (by adding 0.5 and then truncating the decimals). ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RGB ΠΈΠ»ΠΈ BGR) указываСтся Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ CoreΒ ML.The output channel order (for example, RGB or BGR) is indicated in the Core ML model. Для создания допустимого Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ порядка для восстановлСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.To generate proper image output, we may need to transpose or shuffle to recover the desired format.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ рассмотрим ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ CoreΒ ML, FNS-Candy, скачанной Π½Π° GitHub. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ ONNX ΠΈ CoreΒ ML.Here we consider a Core ML model, FNS-Candy, downloaded from GitHub, as a concrete conversion example to demonstrate the difference between ONNX and Core ML formats. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² срСдС Python.Note that all the subsequent commands are executed in a Python environment.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ модСль CoreΒ ML ΠΈ провСряСм Π΅Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹.First, we load the Core ML model and examine its input and output formats.

from coremltools.models.utils import load_spec
model_coreml = load_spec('FNS-Candy.mlmodel')
model_coreml.description # Print the content of Core ML model description

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° экран:Screen output:

...
input {
    ...
      imageType {
      width: 720
      height: 720
      colorSpace: BGR
    ...
}
...
output {
    ...
      imageType {
      width: 720
      height: 720
      colorSpace: BGR
    ...
}
...

Π’ нашСм случаС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ прСдставлСны ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ BGR Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 720 x 720 пиксСлСй.In this case, both the input and output are 720×720 BGR-images. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡˆΠ°Π³Β β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ CoreΒ ML с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WinMLTools.Our next step is to convert the Core ML model with WinMLTools.

# The automatic code generator (mlgen) uses the name parameter to generate class names.
from winmltools import convert_coreml
model_onnx = convert_coreml(model_coreml, 7, name='FNSCandy')

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ просмотра Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ONNXΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:An alternative method to view the model input and output formats in ONNX is to use the following command:

model_onnx.graph.input # Print out the ONNX input tensor's information

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° экран:Screen output:

...
  tensor_type {
    elem_type: FLOAT
    shape {
      dim {
        dim_param: "None"
      }
      dim {
        dim_value: 3
      }
      dim {
        dim_value: 720
      }
      dim {
        dim_value: 720
      }
    }
  }
...

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ X) Π² ONNX ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Ρ‚Π΅Π½Π·ΠΎΡ€.The produced input (denoted by X) in ONNX is a 4-D tensor. ПослСдними трСмя осями ΡΠ²Π»ΡΡŽΡ‚ΡΡ: C, H ΠΈ W соотвСтствСнно.The last 3 axes are C-, H-, and W-axes, respectively. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ обозначаСтся ΠΊΠ°ΠΊ None, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ эта модСль ONNX ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ количСству ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.The first dimension is «None» which means that this ONNX model can be applied to any number of images. Если эта модСль примСняСтся для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, состоящСго ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ соотвСтствуСт X[0, :, :, :], Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒΒ β€”Β X[1, :, :, :].To apply this model to process a batch of 2 images, the first image corresponds to X[0, :, :, :] while X[1, :, :, :] corresponds to the second image. Π‘ΠΈΠ½ΠΈΠΉ, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΈ красный ΠΊΠ°Π½Π°Π»Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ изобраТСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² X[0, 0, :, :]/X[0, 1, :, :]/X[0, 2, :, :]. Π’ΠΎ ΠΆΠ΅ справСдливо ΠΈ для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ изобраТСния.The blue/green/red channels of the first image are X[0, 0, :, :]/X[0, 1, :, :]/X[0, 2, :, :], and similar for the second image.

model_onnx.graph.output # Print out the ONNX output tensor's information

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° экран:Screen output:

...
  tensor_type {
    elem_type: FLOAT
    shape {
      dim {
        dim_param: "None"
      }
      dim {
        dim_value: 3
      }
      dim {
        dim_value: 720
      }
      dim {
        dim_value: 720
      }
    }
  }
...

Как Π²ΠΈΠ΄Π½ΠΎ, создаваСмый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… исходной ΠΌΠΎΠ΄Π΅Π»ΠΈ.As you can see, the produced format is identical to the original model input format. Но этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ являСтся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ значСния пиксСлСй прСдставлСны Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Π° Π½Π΅ числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.However, in this case, it’s not an image because the pixel values are integers, not floating-point numbers. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, усСкитС числа большС 255 Π΄ΠΎ 255, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния Π½Π° 0 ΠΈ ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚Π΅ всС дСсятичныС числа Π΄ΠΎ Ρ†Π΅Π»Ρ‹Ρ… чисСл.To convert back to an image, truncate values greater than 255 to 255, change negative values to 0, and round all decimals to integers.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ scikit-learnConvert scikit-learn models

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² обучаСтся Π² scikit-learn, ΠΈ модСль прСобразуСтся Π² ONNX.The following code snippet trains a linear support vector machine in scikit-learn and converts the model into ONNX.

# First, we create a toy data set.
# The training matrix X contains three examples, with two features each.
# The label vector, y, stores the labels of all examples.
X = [[0.5, 1.], [-1., -1.5], [0., -2.]]
y = [1, -1, -1]

# Then, we create a linear classifier and train it.
from sklearn.svm import LinearSVC
linear_svc = LinearSVC()
linear_svc.fit(X, y)

# To convert scikit-learn models, we need to specify the input feature's name and type for our converter.
# The following line means we have a 2-D float feature vector, and its name is "input" in ONNX.
# The automatic code generator (mlgen) uses the name parameter to generate class names.
from winmltools import convert_sklearn
from winmltools.convert.common.data_types import FloatTensorType
linear_svc_onnx = convert_sklearn(linear_svc, 7, name='LinearSVC',
                                  initial_types=[('input', FloatTensorType([1, 2]))])

# Now, we save the ONNX model into binary format.
from winmltools.utils import save_model
save_model(linear_svc_onnx, 'linear_svc.onnx')

# If you'd like to load an ONNX binary file, our tool can also help.
from winmltools.utils import load_model
linear_svc_onnx = load_model('linear_svc.onnx')

# To see the produced ONNX model, we can print its contents or save it in text format.
print(linear_svc_onnx)
from winmltools.utils import save_text
save_text(linear_svc_onnx, 'linear_svc.txt')

# The conversion of linear regression is very similar. See the example below.
from sklearn.svm import LinearSVR
linear_svr = LinearSVR()
linear_svr.fit(X, y)
linear_svr_onnx = convert_sklearn(linear_svr, 7, name='LinearSVR',
                                  initial_types=[('input', FloatTensorType([1, 2]))])

Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, convert_sklearn ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ модСль scikit-learn Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ target_opset Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ.As before convert_sklearn takes a scikit-learn model as its first argument, and the target_opset for the second argument. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ LinearSVC Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модСлями scikit-learn, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ RandomForestClassifier.Users can replace LinearSVC with other scikit-learn models such as RandomForestClassifier. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ mlgen ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для создания ΠΈΠΌΠ΅Π½ классов ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ name.Please note that mlgen uses the name parameter to generate class names and variables. Если name Π½Π΅ прСдоставляСтся, создаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ GUID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ соглашСниям ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ для Ρ‚Π°ΠΊΠΈΡ… языков, ΠΊΠ°ΠΊ C++/C#.If name is not provided, then a GUID is generated, which will not comply with variable naming conventions for languages like C++/C#.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² scikit-learnConvert scikit-learn pipelines

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ scikit-learn.Next, we show how scikit-learn pipelines can be converted into ONNX.

# First, we create a toy data set.
# Notice that the first example's last feature value, 300, is large.
X = [[0.5, 1., 300.], [-1., -1.5, -4.], [0., -2., -1.]]
y = [1, -1, -1]

# Then, we declare a linear classifier.
from sklearn.svm import LinearSVC
linear_svc = LinearSVC()

# One common trick to improve a linear model's performance is to normalize the input data.
from sklearn.preprocessing import Normalizer
normalizer = Normalizer()

# Here, we compose our scikit-learn pipeline.
# First, we apply our normalization.
# Then we feed the normalized data into the linear model.
from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(normalizer, linear_svc)
pipeline.fit(X, y)

# Now, we convert the scikit-learn pipeline into ONNX format.
# Compared to the previous example, notice that the specified feature dimension becomes 3.
# The automatic code generator (mlgen) uses the name parameter to generate class names.
from winmltools import convert_sklearn
from winmltools.convert.common.data_types import FloatTensorType, Int64TensorType
pipeline_onnx = convert_sklearn(linear_svc, name='NormalizerLinearSVC',
                                input_features=[('input', FloatTensorType([1, 3]))])

# We can print the fresh ONNX model.
print(pipeline_onnx)

# We can also save the ONNX model into a binary file for later use.
from winmltools.utils import save_model
save_model(pipeline_onnx, 'pipeline.onnx')

# Our conversion framework provides limited support of heterogeneous feature values.
# We cannot have numerical types and string types in one feature vector.
# Let's assume that the first two features are floats and the last feature is integers (encoded a categorical attribute).
X_heter = [[0.5, 1., 300], [-1., -1.5, 400], [0., -2., 100]]

# One popular way to represent categorical is one-hot encoding.
from sklearn.preprocessing import OneHotEncoder
one_hot_encoder = OneHotEncoder(categorical_features=[2])

# Let's initialize a classifier.
# It will be right after the one-hot encoder in our pipeline.
linear_svc = LinearSVC()

# Then, we form a two-stage pipeline.
another_pipeline = make_pipeline(one_hot_encoder, linear_svc)
another_pipeline.fit(X_heter, y)

# Now, we convert, save, and load the converted model.
# For heterogeneous feature vectors, we need to separately specify their types for
# all homogeneous segments.
# The automatic code generator (mlgen) uses the name parameter to generate class names.
another_pipeline_onnx = convert_sklearn(another_pipeline, name='OneHotLinearSVC',
                                        input_features=[('input', FloatTensorType([1, 2])),
                                        ('another_input', Int64TensorType([1, 1]))])
save_model(another_pipeline_onnx, 'another_pipeline.onnx')
from winmltools.utils import load_model
loaded_onnx_model = load_model('another_pipeline.onnx')

# Of course, we can print the ONNX model to see if anything went wrong.
print(another_pipeline_onnx)

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ TensorFlowConvert TensorFlow models

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль TensorFlow.The following code is an example of how to convert a model from a frozen TensorFlow model. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ TensorFlow, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСдство summarize_graph.To get the possible output names of a TensorFlow model, you can use the summarize_graph tool.

import winmltools
import tensorflow

filename = 'frozen-model.pb'
output_names = ['output:0']

graph_def = graph_pb2.GraphDef()
with open(filename, 'rb') as file:
  graph_def.ParseFromString(file.read())
g = tf.import_graph_def(graph_def, name='')

with tf.Session(graph=g) as sess:
  converted_model = winmltools.convert_tensorflow(sess.graph, 7, output_names=['output:0'])
  winmltools.save_model(converted_model)

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ WinMLTools ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ tf2onnx.tfonnx.process_tf_graph Π² TF2ONNX.The WinMLTools converter uses tf2onnx.tfonnx.process_tf_graph in TF2ONNX.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² 16-разрядныС значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятойConvert to floating point 16

WinMLTools ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, прСдставлСнных Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 32-разрядных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Π² прСдставлСниС 16-разрядных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (IEEE 754 half), Ρ‡Ρ‚ΠΎ позволяСт Π²Π΄Π²ΠΎΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ.WinMLTools supports the conversion of models represented in floating point 32 into a floating point 16 representation (IEEE 754 half), effectively compressing the model by reducing its size in half.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² 16-разрядным значСниям с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сниТСнию точности.Converting your model to floating point 16 could result in a loss of accuracy. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.Make sure you verify the model’s accuracy before deploying into your application.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прСобразования нСпосрСдствСнно ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ONNX.Below is a full example if you want to convert directly from an ONNX binary file.

from winmltools.utils import convert_float_to_float16
from winmltools.utils import load_model, save_model
onnx_model = load_model('model.onnx')
new_onnx_model = convert_float_to_float16(onnx_model)
save_model(new_onnx_model, 'model_fp16.onnx')

Π‘ΠΌ. свСдСния ΠΎΠ± этом срСдствС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ help(winmltools.utils.convert_float_to_float16).With help(winmltools.utils.convert_float_to_float16), you can find more details about this tool. 16-разрядныС значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π² WinMLTools сСйчас ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числам с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности (стандарт IEEE 754 (2008)).The floating point 16 in WinMLTools currently only complies with IEEE 754 floating point standard (2008).

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ дискрСтизации вСсовых коэффициСнтов послС обучСнияPost-training weight quantization

WinMLTools Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сТатиС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, прСдставлСнных Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ 32-разрядных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Π² 8-разрядныС цСлочислСнныС прСдставлСния.WinMLTools also supports the compression of models represented in floating point 32 into 8-bit integer representations. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° дискС Π½Π° 75Β %, Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ.This could yield a disk footprint reduction of up to 75% depending on the model. Π’Π°ΠΊΠΎΠ΅ сокращСниС выполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ дискрСтизации вСсовых коэффициСнтов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ΠŸΡ€ΠΈ этом сохранСнныС Π² Ρ‚Π΅Π½Π·ΠΎΡ€Π΅ вСсовыС коэффициСнты ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΈΠ· 32-разрядных чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π² 8-разрядныС Π΄Π°Π½Π½Ρ‹Π΅.This reduction is done via a technique called post-training weight quantization, where the model is analyzed and the stored tensor weights are reduced from 32-bit floating point data into 8-bit data.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ДискрСтизация вСсовых коэффициСнтов послС обучСния ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сниТСнию точности Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.Post-training weight quantization may result in loss of accuracy in the resulting model. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.Make sure you verify the model’s accuracy before deploying into your application.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ дСмонстрируСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ нСпосрСдствСнно ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ONNX.The following is a complete example that demonstrates how to convert directly from an ONNX binary file.

import winmltools

model = winmltools.load_model('model.onnx')
packed_model = winmltools.quantize(model, per_channel=True, nbits=8, use_dequantize_linear=True)
winmltools.save_model(packed_model, 'quantized.onnx')

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свСдСния ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… quantize:Here is some information about the input parameters to quantize:

  • per_channel: Если Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, примСняСтся линСйная дискрСтизация ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π½Π·ΠΎΡ€Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ [n, c, h, w].per_channel: If set to True, this will linearly quantize each channel for each initialized tensor in [n,c,h,w] format. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β True.By default, this parameter is set to True.
  • nbits: Число Π±ΠΈΡ‚ΠΎΠ² для прСдставлСния ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.nbits: The number of bits to represent quantized values. БСйчас поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 8Β Π±ΠΈΡ‚ΠΎΠ².Currently only 8 bits is supported.
  • use_dequantize_linear: Если Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, примСняСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ процСсс, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅Π½Π·ΠΎΡ€Π°Ρ… для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Conv Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ [n, c, h, w].use_dequantize_linear: If set to True, this will linearly dequantize each channel in initialized tensors for Conv operators in [n,c,h,w] format. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.By default, this is set to True.

созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ONNX.Create custom ONNX operators

Для прСобразования ΠΌΠΎΠ΄Π΅Π»ΠΈ Keras ΠΈΠ»ΠΈ CoreΒ ML ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Π³Ρ€Π°Ρ„ ONNX.When converting from a Keras or a Core ML model, you can write a custom operator function to embed custom operators into the ONNX graph. Π’ΠΎ врСмя прСобразования ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пСрСвСсти слой Keras ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ LayerParameter ΠΈΠ· CoreΒ ML Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ONNX, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ·Π΅Π» ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎ всСму Π³Ρ€Π°Ρ„Ρƒ.During the conversion, the converter invokes your function to translate the Keras layer or the Core ML LayerParameter to an ONNX operator, and then it connects the operator node into the whole graph.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для создания Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° ONNX.Create the custom function for the ONNX sub-graph building.
  2. Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ winmltools.convert_keras ΠΈΠ»ΠΈ winmltools.convert_coreml с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ сопоставлСния ΠΈΠΌΠ΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… слоСв ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.Call winmltools.convert_keras or winmltools.convert_coreml with the map of the custom layer name to the custom function.
  3. Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ слой для срСды выполнСния Π²Ρ‹Π²ΠΎΠ΄Π°.If applicable, implement the custom layer for the inference runtime.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Keras.The following example shows how it works in Keras.

# Define the activation layer.
class ParametricSoftplus(keras.layers.Layer):
    def __init__(self, alpha, beta, **kwargs):
    ...
    ...
    ...

# Create the convert function.
def convert_userPSoftplusLayer(scope, operator, container):
      return container.add_node('ParametricSoftplus', operator.input_full_names, operator.output_full_names,
        op_version=1, alpha=operator.original_operator.alpha, beta=operator.original_operator.beta)

winmltools.convert_keras(keras_model, 7,
    custom_conversion_functions={ParametricSoftplus: convert_userPSoftplusLayer })

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ рСсурсы для получСния справки ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Π² Windows:Use the following resources for help with Windows ML:

  • Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ тСхничСскиС вопросы ΠΎ машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Π² Windows ΠΈΠ»ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π½ΠΈΡ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Π³ windows-machine-learning Π² Stack Overflow.To ask or answer technical questions about Windows ML, please use the windows-machine-learning tag on Stack Overflow.
  • Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± ошибкС ΠΌΠΎΠΆΠ½ΠΎ Π² нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GitHub.To report a bug, please file an issue on our GitHub.
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° сайт Windows Developer Feedback.To request a feature, please head over to Windows Developer Feedback.




МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

— ΠΌΠΎΠ΄Π΅Π»ΠΈ — Apple Developer

PoseNetMobileNet075S8FP16.mlmodel
Π­Ρ‚Π° модСль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MobileNetV1 с ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΌ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ 0,75 ΠΈ шагом Π²Ρ‹Π²ΠΎΠ΄Π° 8, сохраняя свои вСса с использованиСм чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности (16 Π±ΠΈΡ‚).
2,6 ΠœΠ‘

PoseNetMobileNet075S16FP16.млмодСль
Π­Ρ‚Π° модСль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MobileNetV1 с ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΌ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ 0,75 ΠΈ шагом Π²Ρ‹Π²ΠΎΠ΄Π° 16, сохраняя свои вСса с использованиСм чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности (16 Π±ΠΈΡ‚).
2,6 ΠœΠ‘

PoseNetMobileNet100S8FP16.mlmodel
Π’ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° MobileNetV1 с ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΌ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ 1.00 ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ шаг 8, сохраняя Π΅Π³ΠΎ вСса с использованиСм чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности (16 Π±ΠΈΡ‚).
6,7 ΠœΠ‘

PoseNetMobileNet100S16FP16.mlmodel
Π­Ρ‚Π° модСль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MobileNetV1 с ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΌ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ 1,00 ΠΈ шагом Π²Ρ‹Π²ΠΎΠ΄Π° 16, сохраняя свои вСса с использованиСм чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности (16 Π±ΠΈΡ‚).
6,7 ΠœΠ‘

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Ρ‹ чСловСчСского Ρ‚Π΅Π»Π° Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ
НайдитС людСй ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡ… Ρ‚Π΅Π», анализируя ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ PoseNet.

.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ с Core ML — WWDC 2020 — Π’ΠΈΠ΄Π΅ΠΎ

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ

ЗдравствуйтС ΠΈ Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° WWDC.

ЗдравствуйтС. МСня Π·ΠΎΠ²ΡƒΡ‚ Анил ΠšΠ°Ρ‚Ρ‚ΠΈ, ΠΈ я Ρ€Π°Π΄ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ· Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ прСдставили Π² этом Π³ΠΎΠ΄Ρƒ Π² Core ML. Core ML позволяСт Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, открывая Π΄Π²Π΅Ρ€ΠΈ ΠΊ бСсчислСнным ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ возмоТностям для Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’Π°ΡˆΠ° модСль Core ML — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ всС эти возмоТности Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ.БСгодня ΠΌΡ‹ прСдставляСм Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с этой модСлью. Π’ этом сСансС ΠΌΡ‹ собираСмся ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ нСсколько Ρ‚Π΅ΠΌ, ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ способа развСртывания Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄ΠΎ ΠΈΡ… ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² Xcode. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ. ΠœΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Core ML с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Когда Ρƒ вас Π΅ΡΡ‚ΡŒ модСль, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ² Π΅Π΅ Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Xcode. Xcode ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Π°ΡˆΡƒ модСль Π² ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° устройствС. Когда Π²Ρ‹ отправляСтС своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, скомпилированная модСль связываСтся с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.ВмСстС ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² App Store, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π° устройства Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ОбъСдинСниС ΠΌΠΎΠ΄Π΅Π»ΠΈ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ ΠΌΡ‹ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, модСль становится доступной, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ устанавливаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π•ΡΡ‚ΡŒ сцСнарии, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ большая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом доставки ΠΌΠΎΠ΄Π΅Π»ΠΈ. БСгодня ΠΌΡ‹ прСдставляСм Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ Ρ‚Π°ΠΊΡƒΡŽ β€‹β€‹Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.

Core ML Model Deployment прСдоставляСт Π²Π°ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ способ доставки ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² ваши прилоТСния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Π»Π°ΠΊΠΎ Apple.Устройства пСриодичСски ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ обновлСния ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… появлСния. Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ нСзависимо ΠΎΡ‚ Ρ†ΠΈΠΊΠ»Π° обновлСния прилоТСния, Π½ΠΎΠ²Ρ‹ΠΉ способ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ управлСния модСлями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ устройств.

Нам ΠΎΡ‡Π΅Π½ΡŒ нравятся эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. НачнСм с ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡Π°Π΅Ρ‚Π΅ свои ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π²Ρ‹, вСроятно, ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… с вашим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ прилоТСния.

Но Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ обновляСтС свои ΠΌΠΎΠ΄Π΅Π»ΠΈ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Π΅ΠΌ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ большС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ€ΡƒΠΊΠΈ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ развСртывания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π΅ обновляя само ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π”Π°Π»Π΅Π΅: ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ — ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, связанных с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΈΠ³Ρ€ΠΎΠΉ, ΠΈ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΅Π΅ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ трСбуСтся Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ, сгруппировав ΠΈΡ… Π² ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Когда Π²Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, это Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ вмСстС ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ доставляСт ΠΈΡ… Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π― ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС это Π² дСйствии, Π½ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ дСмонстрации, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π˜Ρ‚Π°ΠΊ, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ развСртывания состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… шагов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Core ML API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ модСль ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ, создав Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² Xcode.

ПослСдний шаг — Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ модСль ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° развСртывания ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ шаги Π΄Π²Π° ΠΈ Ρ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим эти шаги Π½Π° дСмонстрации. Π£ мСня Π΅ΡΡ‚ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ классифицируСт Ρ†Π²Π΅Ρ‚Ρ‹ ΠΈ примСняСт классныС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ эффСкты ΠΏΡ€ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML: классификатор ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ модСль ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ стилСй.

Π― Ρ€Π΅ΡˆΠΈΠ» ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΎΡ‚ процСсса обновлСния прилоТСния ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ нСзависимо.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом являСтся использованиС Π½ΠΎΠ²ΠΎΠ³ΠΎ API для подписки Π½Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Xcode. Π£ мСня ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Xcode. Π₯отя это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСт нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² этой дСмонстрации Π΄Π°Π²Π°ΠΉΡ‚Π΅ сосрСдоточимся Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ классификации Ρ†Π²Π΅Ρ‚ΠΎΠ².

Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ собираСмся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСгодня. Он классифицируСт Ρ†Π²Π΅Ρ‚ΠΎΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈ обновляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ класса.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, — это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр FlowerClassifier ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ‹ ΠΌΠ½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π°Ρ… ΠΈ Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ модСль ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·.

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ корпуса.

Π—Π΄Π΅ΡΡŒ я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ, установлСна ​​ли ΡƒΠΆΠ΅ пСрСмСнная, ΠΈ Ссли Π΄Π°, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΅Π΅ для классификации изобраТСния ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°. Π”Π°Π»Π΅Π΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Напомним, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ сгруппированы ΠΏΠΎ коллСкциям. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚. Но здСсь мСня интСрСсуСт доступ ΠΊ ΡƒΠΆΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π― ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, просто Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ beginAccessing Π² MLModelCollection.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ систСма Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² этой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ рСгистрируСтся для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ этих ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° progress.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Β«FlowerModelsΒ». Π”Π°Π²Π°ΠΉΡ‚Π΅ просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ это, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это потрСбуСтся ΠΏΡ€ΠΈ создании ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎΠ·ΠΆΠ΅.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ асинхронно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр MLModelCollection Π² качСствС Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ модСлям ΠΈΠ· этого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Когда эта опСрация Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ экзСмпляр ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит записи ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° запись. Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ записи ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для нашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ FlowerClassifier, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² качСствС ΠΊΠ»ΡŽΡ‡Π°. Π’Π½ΡƒΡ‚Ρ€ΠΈ записи находится URL-адрСс ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль, которая Π±Ρ‹Π»Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ прилоТСния систСмой.

НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. НапримСр, Ссли ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Π½Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой. Π’Π°ΠΆΠ½ΠΎ ΡƒΠ»Π°Π΄ΠΈΡ‚ΡŒ случай ΠΎΡ‚ΠΊΠ°Π·Π°. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ просто рСгистрируСм ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ возвращаСмся ΠΊ использованию связанной ΠΌΠΎΠ΄Π΅Π»ΠΈ.Π”Π°Π»Π΅Π΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π― Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» простой Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ modelURL Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ FlowerClassifier. Если URL-адрСс Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, ΠΎΠ½ просто откатываСтся ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ модСль, которая связана с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

ПослСдний шаг — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот FlowerClassifier для классификации изобраТСния.

Π’ΠΎΡ‚ ΠΊΠΎΠ΄ для этого. Когда Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ модСль для классификации изобраТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ сохраняСм Π΅Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… запросов классификации.Π£ нас Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сбоСв Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² этом случаС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ подходящСС сообщСниС ΠΎΠ± ошибкС для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π­Ρ‚ΠΎ вСсь ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ прилоТСния ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Как Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ саму модСль ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ? Π§Ρ‚ΠΎ ΠΆ, я ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² Xcode. Если Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ модСль Π² Xcode, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² этом Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ прСдставили Π½ΠΎΠ²ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» для развСртывания ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ модСль ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ, создав Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Xcode создал FlowerClassifier.mlarchive ΠΈ сохранил Π΅Π³ΠΎ Π½Π° дискС. Π― ΠΌΠΎΠ³Ρƒ Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ», Π½Π°ΠΆΠ°Π² здСсь.

Он находится рядом с Ρ„Π°ΠΉΠ»ΠΎΠΌ исходной ΠΌΠΎΠ΄Π΅Π»ΠΈ. ПослСдний шаг — Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ эту модСль Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Xcode прСдоставляСт ΠΊΠ½ΠΎΠΏΠΊΡƒ, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ вас прямо Π½Π° панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° развСртывания ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Safari. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π― Π½Π°Ρ‡Π½Ρƒ с создания Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для Π½Π°ΡˆΠΈΡ… Ρ†Π²Π΅Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Π½Π°Π·ΠΎΠ²Ρƒ Π΅Π΅ Β«FlowerModelsΒ».Β«Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π—Π°Ρ‚Π΅ΠΌ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π΄ΠΈΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ описаниС. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ …

Β« ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, созданных для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ² Β». А Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ. Π² этой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ являСтся FlowerClassfier.

А Π·Π°Ρ‚Π΅ΠΌ Ρƒ нас Π΅ΡΡ‚ΡŒ FlowerStylizer.

И Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ создания.

Π—Π°Ρ‚Π΅ΠΌ я ΠΌΠΎΠ³Ρƒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ, создав Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅. Π― Π½Π°Π·ΠΎΠ²Ρƒ это Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ. ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я Π½Π°ΠΌΠ΅Ρ€Π΅Π½ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° всСх устройствах.

Π― ΠΌΠΎΠ³Ρƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я создал для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ сначала Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ FlowerClassfier, Π·Π°Ρ‚Π΅ΠΌ Stylizer ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ развСртывания Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ.

На страницС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ я ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданноС ΠΌΠ½ΠΎΠΉ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ находится Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ состоянии. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ это выглядит Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π­Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ доступны Π½Π° всСх устройствах, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ вСрсия ΠΌΠΎΠ΅Π³ΠΎ прилоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ эта коллСкция ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚Ρ‹ сСйчас.

Π― сорвал Π³Π΅ΠΎΡ€Π³ΠΈΠ½ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Π», Ρ‡Ρ‚ΠΎ ΠΎΠ½ классифицируСтся ΠΊΠ°ΠΊ Π³Π΅ΠΎΡ€Π³ΠΈΠ½. Π”Π°ΠΉ ΠΌΠ½Π΅ Π½Π° этот Ρ€Π°Π· ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ гибискус.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, каТСтся, Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ это. МодСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я использовал здСсь, Π±Ρ‹Π»Π° ΠΎΠ±ΡƒΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… классах, ΠΈ Π ΠΎΡƒΠ· Π½Π΅ Π±Ρ‹Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ…. ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€ΠΎΠ·Ρ‹ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ получится.

Как ΠΈ оТидалось, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ распознаСт Ρ€ΠΎΠ·Ρƒ.

Допустим, я Ρ…ΠΎΡ‡Ρƒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для классификации Ρ€ΠΎΠ·. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я ΡƒΠΆΠ΅ использовал Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, я ΠΌΠΎΠ³Ρƒ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ² модСль, ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ с изобраТСниями Ρ€ΠΎΠ·, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ развСртывания ΠΌΠΎΠ΄Π΅Π»ΠΈ.Для этой дСмонстрации я ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ модСль ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° развСртывания ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ модСль. Π― ΠΌΠΎΠ³Ρƒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ модСль, создав Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅. На этот Ρ€Π°Π· я Π²Ρ‹Π±Π΅Ρ€Ρƒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ классификатор ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ стилизатор ΠΈ Π½Π°ΠΆΠΌΡƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ развСртывания.

Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, эти ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ доступны Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° всСх устройствах, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π½Π΅ сразу. КаТдоС устройство опрСдСляСт подходящСС врСмя для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ доступной для прилоТСния ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запускС.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запустится послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ОБ синхронизируСт ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ с устройством. Выбирая Ρ‚Ρƒ ΠΆΠ΅ Ρ€ΠΎΠ·Ρƒ, которая Π½Π΅ Π±Ρ‹Π»Π° классифицирована Ρ€Π°Π½Π΅Π΅, я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° этот Ρ€Π°Π· ΠΎΠ½Π° классифицируСтся ΠΊΠ°ΠΊ Ρ€ΠΎΠ·Π°.

Π˜Ρ‚Π°ΠΊ, Π½Π΅ мСняя Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ строчки ΠΊΠΎΠ΄Π°, ΠΌΡ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ² модСль, ΠΈ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ.

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… развСртываниях.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ΅, Ρƒ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для всСх Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.Однако ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития вашСго прилоТСния для вас ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большС смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС ΠΌΠΎΠ΄Π΅Π»ΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ насСлСния. Одно ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ — просто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²ΠΎ врСмя выполнСния, Π½ΠΎ это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ эффСктивно. А Ρ‡Ρ‚ΠΎ, Ссли ΠΌΠΎΠ΄Π΅Π»ΠΈ большиС, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ прилоТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ нСбольшим? ΠŸΡ€ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ устройство ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρƒ модСль, которая Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ….

НСдавно я ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ» наш FlowerClassifier, Π½ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ сдСлал это для iPad.ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, ΡƒΠ³ΠΎΠ» ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ настройки освСщСния Π½Π° изобраТСниях, сдСланных Π½Π° iPad, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ… Π½Π° iPhone. Π₯отя я Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль Π½Π° iPad, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ модСль ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… устройствах. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ†Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ модСль iPad Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° iPad.

Π’Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ Π½Π° панСль инструмСнтов, я ΠΌΠΎΠ³Ρƒ Π»ΠΈΠ±ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅. А ΠΏΠΎΠΊΠ° я создам Π½ΠΎΠ²Ρ‹ΠΉ ΠΈ Π½Π°Π·ΠΎΠ²Ρƒ Π΅Π³ΠΎ Targeting iPads.

Π‘Π½Π°Ρ‡Π°Π»Π° я Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для этого развСртывания.Π­Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ доставлСны Π½Π° всС устройства, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ развСртывания.

ПослС этого я ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΌΠΎΠ³Ρƒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π― Π²Ρ‹Π±Π΅Ρ€Ρƒ класс устройства ΠΈ Π²Ρ‹Π±Π΅Ρ€Ρƒ iPad. Π˜Ρ‚Π°ΠΊ, для этого ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³Π° я Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ для iPad.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΌΠΎΠ³Ρƒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ. Устройства Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ модСль Π² зависимости ΠΎΡ‚ класса устройства. Никаких Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ трСбуСтся. ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Core ML Model Deployment, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ интСрСсными ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ использования.Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ использовании этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ модСль локально, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΅Π΅ Π½Π° панСль управлСния Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ останутся ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Π—Π°Ρ‚Π΅ΠΌ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ доступны Π½Π° устройствах сразу. БистСма ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ модСль Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρƒ вашСго прилоТСния всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ запасной ΠΏΠ»Π°Π½, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ нСдоступны.

НаконСц, коллСкция ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вашСго прилоТСния. Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡ‚ΠΎΠ³ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ: Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Core ML Model Deployment — это Π½ΠΎΠ²Ρ‹ΠΉ способ доставки ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ вашим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, нСзависимо ΠΎΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°ΡŽΡ‚ Π²Π°ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ способ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с вашими модСлями, Π° Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ развСртывания ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ для раздСлСния Π³Ρ€ΡƒΠΏΠΏ. ΠœΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Π΄ΡƒΡ‚ Π²Π°ΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ прСдоставлСниС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ вашим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.Π― ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΌ Π΅Π³ΠΎ Π”ΠΆΠΎΠ½Ρƒ Π”ΡŽΡ€Π°Π½Ρ‚Ρƒ, ΠΈ ΠΎΠ½ расскаТСт Π½Π°ΠΌ большС ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрСсных функциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ для вас Π² этом Π³ΠΎΠ΄Ρƒ.

Бпасибо, Анил. ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚, спасибо, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΊ Π½Π°ΠΌ. ΠœΡ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ этими функциями, ΠΈ Π½Π°ΠΌ Π½Π΅ тСрпится ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ создадитС с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Пока Ρ‡Ρ‚ΠΎ ΠΌΡ‹ рассмотрСли нСсколько Π½ΠΎΠ²Ρ‹Ρ… ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрых способов ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ваши ΠΌΠΎΠ΄Π΅Π»ΠΈ вашим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ свои ΠΌΠΎΠ΄Π΅Π»ΠΈ, зная, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Ρ‹ Π² состоянии покоя ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅.Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, связана Π»ΠΈ ваша модСль с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π° Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Xcode фактичСски ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль Core ML. Π­Ρ‚Π° скомпилированная модСль, Π° Π½Π΅ исходный Ρ„Π°ΠΉΠ» .mlmodel, Π½Π° самом Π΄Π΅Π»Π΅ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго прилоТСния Π½Π° устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚Π΅ эту ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль? Π›Π΅Π³ΠΊΠΎ. Π‘ Xcode. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится, это ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Xcode Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ модСль Π²ΠΎ врСмя сборки.Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π°Ρ€Ρ…ΠΈΠ²Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании. Π’ любом случаС скомпилированная модСль остаСтся Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Π½Π° устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль Π²ΠΎ врСмя выполнСния? Π§Ρ‚ΠΎ ΠΆ, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ. Core ML автоматичСски Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ модСль Π·Π° вас, Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Π°Ρ модСль сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² памяти. Бкомпилированная модСль Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС всСгда остаСтся Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ОБ бСзопасно ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ сохраняСт ΠΊΠ»ΡŽΡ‡ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ вашСго прилоТСния.ПослС этого Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π΅ потрСбуСтся сСтСвоС соСдинСниС для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Xcode ΠΈ посмотрим, насколько Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π― Π²Π΅Ρ€Π½ΡƒΡΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Анил использовал Ρ€Π°Π½ΡŒΡˆΠ΅. Допустим, я Ρ…ΠΎΡ‡Ρƒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ модСль классификации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. Для этого я ΠΎΡ‚ΠΊΡ€ΠΎΡŽ модСль Π² Xcode, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρƒ сюда Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ Π½Π°ΠΆΠΌΡƒ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡΒ». Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Xcode связываСт ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, поэтому Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для создания своСго прилоТСния.Когда я наТимаю Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ», Xcode отправляСт запрос Π² ΠΎΠ±Π»Π°ΠΊΠΎ Apple, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. Π‘Π΅Ρ€Π²Π΅Ρ€ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡ ΠΈ отправляСт копию ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Xcode. Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Xcode сгСнСрировал Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .mlmodelkey ​​и сбросил Π΅Π³ΠΎ рядом с ΠΌΠΎΠ΅ΠΉ модСлью Core ML. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ .mlmodel ΠΈ .mlmodelkey.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·ΡΡ‚ΡŒ этот ΠΊΠ»ΡŽΡ‡ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌ Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ нашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π² нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ нашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Анил ΠΏΠΎΠΊΠ°Π·Π°Π» Ρ€Π°Π½Π΅Π΅, Π³Π΄Π΅ ΠΎΠ½ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ» модСль с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML Model Deployment. На этот Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я создаю Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Xcode ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ .mlmodel, располоТСнный рядом с ΠΌΠΎΠ΅ΠΉ модСлью. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΆΠΌΠ΅ΠΌ Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ», ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Xcode Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π½ΠΎ Π½Π° этот Ρ€Π°Π· ΠΎΠ½ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ содСрТимоС Π°Ρ€Ρ…ΠΈΠ²Π°. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ шаги Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅. Π― ΠΌΠΎΠ³Ρƒ просто Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ этот Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ² Π΅Π³ΠΎ Π½Π° панСль управлСния Core ML Model Deployment, ΠΊΠ°ΠΊ это сдСлал Ρ€Π°Π½Π΅Π΅ Анил.Π₯ΠΎΡ€ΠΎΡˆΠΎ, это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ. Но Ρ‡Ρ‚ΠΎ, Ссли я Ρ…ΠΎΡ‡Ρƒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ модСль Π² самом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ? Π§Ρ‚ΠΎ ΠΆ, Π΅ΡΡ‚ΡŒ способ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρƒ мСня Π΅ΡΡ‚ΡŒ вторая модСль ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ FlowerStylizer.

Π― снова Π·Π°ΠΏΡƒΡ‰Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚. Когда я Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ наТимаю Π½Π° Π½Π΅Π³ΠΎ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ примСняСтся ΠΊΡ€ΡƒΡ‚ΠΎΠΉ эффСкт пСрСноса стиля. Π₯ΠΎΡ€ΠΎΡˆΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ! Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сСанс ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ стилСй ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π² Create MLΒ».Β«Π’Π΅ΠΏΠ΅Ρ€ΡŒ эта модСль Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Если я Ρ…ΠΎΡ‡Ρƒ Π΅Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ, я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π΅Π΅ ΠΊΠ»ΡŽΡ‡, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Xcode, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ модСль Π²ΠΎ врСмя сборки. Π‘Π½Π°Ρ‡Π°Π»Π° я ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽ ΠΊΠ»ΡŽΡ‡ для этой ΠΌΠΎΠ΄Π΅Π»ΠΈ.

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ FlowerClassifier.mlmodelkey ​​был сохранСн Π½Π° диск.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Xcode ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠ»ΡŽΡ‡ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ врСмя сборки.

Π― ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Π²Π·ΡΡ‚ΡŒ эти Ρ„Π»Π°Π³ΠΈ компилятора. Π― ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρƒ ΠΊ свойствам своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ„Π°Π·Π°ΠΌ сборки, исходным ΠΊΠΎΠ΄Π°ΠΌ компиляции ΠΈ ΠΏΠΎΠΈΡ‰Ρƒ свою модСль.Π’ΠΎΡ‚ ΠΎΠ½ΠΎ. Π£ мСня Π΅ΡΡ‚ΡŒ FlowerStylizer.mlmodel. И я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ сюда ΠΊ Ρ„Π»Π°Π³Π°ΠΌ компилятора.

И я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΡ€Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„Π°ΠΉΠ» .mlmodelkey ​​на дискС.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ это сдСлаСм, ΠΌΡ‹ смоТСм ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я создаю ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Core ML Compiler Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль, Π° Π·Π°Ρ‚Π΅ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ встроСна Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Π°Ρ скомпилированная модСль.Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль.

Если ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ сюда, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ функция ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «Бтилизация изобраТСния». Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· трСбуСтся сСтСвоС соСдинСниС, ΠΌΡ‹ прСдставили ΠΌΠ΅Ρ‚ΠΎΠ΄ асинхронной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ΠΎΡ‚ прямо здСсь. FlowerStylizer.load. ΠœΡ‹ собираСмся ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ .load, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Load автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ ΠΈΠ· ΠΎΠ±Π»Π°ΠΊΠ° Apple ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅.НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Core ML трСбуСтся доступ ΠΊ сСти для получСния ΠΊΠ»ΡŽΡ‡Π° Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, Π΅ΠΌΡƒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ потрСбуСтся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ этот ΠΊΠ»ΡŽΡ‡ снова. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ снова запускаСтС Π΅Π³ΠΎ. На этот Ρ€Π°Π· Core ML Π½Π΅ выполняСт сСтСвой запрос, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ОБ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡ локально.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ «T», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит модСль, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² случаС успСха, послС Ρ‡Π΅Π³ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ наша модСль, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΈΠ»ΠΈ Ρƒ нас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ случай ΠΎΡ‚ΠΊΠ°Π·Π°.Π’ случаС сбоя Ρƒ нас Π΅ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь ΠΌΡ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ modelKeyFetch. И Π² этом случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСти, ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΠΏΠΎΠ·ΠΆΠ΅. И это всС. ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ модСль ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊ просто. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ‚Ρ€ΠΈ простых шага. Π‘Π½Π°Ρ‡Π°Π»Π° сгСнСрируйтС ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Xcode. Π—Π°Ρ‚Π΅ΠΌ Π·Π°ΡˆΠΈΡ„Ρ€ΡƒΠΉΡ‚Π΅ Π²Π°ΡˆΡƒ модСль с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль Π½Π° устройствС.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ просто.

Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ модСль Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ отправляСтС Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡, Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ модСль ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ .load. ΠœΡ‹ позаботимся ΠΎΠ±ΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° создании ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ прилоТСния. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько интСрСсных ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Xcode для Core ML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ.

Π’ΠΎ врСмя Π½Π°ΡˆΠΈΡ… дСмонстраций Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Xcode Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ.Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии ОБ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ модСль, Π΅Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ классов ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° новая функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ считаСм особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎ развлСчСниях, — это ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с вашСй модСлью прямо Π² Xcode, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ строку ΠΊΠΎΠ΄Π°. ΠœΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сСгмСнтация изобраТСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Ρ‹, ΠΎΡ†Π΅Π½ΠΊΠ° Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Create ML.ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ здСсь, ΠΈ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ, доступныС Π½Π° developer.apple.com.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π΄Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ пСрвоклассными Π³Ρ€Π°ΠΆΠ΄Π°Π½Π°ΠΌΠΈ Π² Xcode Playgrounds. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ модСль Core ML Π² ΠΏΠ°ΠΏΠΊΡƒ с рСсурсами. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваша ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ автоматичСски созданный интСрфСйс класса, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Xcode. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с вашСй модСлью Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ сСансС программирования. Π˜Π³Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ — Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ дСмонстрациями ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.

БСгодня ΠΌΡ‹ рассмотрСли ΠΌΠ½ΠΎΠ³ΠΎ вопросов, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡ‚ΠΎΠ³ΠΈ. ΠœΡ‹ прСдставили Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Core ML Model Deployment, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Π°ΠΌ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML нСзависимо ΠΎΡ‚ вашСго прилоТСния. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ быстроС распространСниС ΠΈ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. ΠœΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускорит процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ускорит Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ машинного обучСния.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ прСдставили ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ваши ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎ врСмя транспортировки ΠΈ Π² состоянии покоя, Π±Π΅Π· нСобходимости Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ собствСнный хостинг ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ развСртывания ΠΌΠΎΠ΄Π΅Π»ΠΈ. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Xcode Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Core ML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ упростили ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΠΈ взаимодСйствиС с вашими модСлями. Бпасибо Π·Π° просмотр нашСго сСанса ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ WWDC.

.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Create ML — WWDC 2019 — Π’ΠΈΠ΄Π΅ΠΎ

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ

Π’ этом Π³ΠΎΠ΄Ρƒ наша вСрсия Create ML содСрТит Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс начинаСтся с Π²Π²ΠΎΠ΄Π°.

Устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈ любим, Π±ΠΎΠ³Π°Ρ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠ°ΠΌΠ΅Ρ€Π°, ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°, аксСлСромСтр ΠΈ Π΄Π°ΠΆΠ΅ гироскоп.

И всС эти Ρ‚ΠΈΠΏΡ‹ Π²Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ свои прилоТСния Π±ΠΎΠ»Π΅Π΅ пСрсонализированными ΠΈ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈ Ρ‚Ρ€ΠΈ ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ² Π²Π²ΠΎΠ΄Π°; изобраТСния, тСкст ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π’ этом Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π½Π°Π±ΠΎΡ€ доступных Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² с Ρ‚Ρ€Π΅Ρ… Π΄ΠΎ пяти. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдставляСм Activity ΠΈ Sound.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ спСктр доступных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ для всСх ΠΈΠ· Π½ΠΈΡ…. И всС это пСрСносится Π² Π½ΠΎΠ²ΡƒΡŽ срСду.

ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Create ML.

ВсС начинаСтся с опрСдСлСния вашСго Π΄ΠΎΠΌΠ΅Π½Π°.

И ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚Π΅ свой Π²Π²ΠΎΠ΄, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ всС доступныС Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.

Create ML Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ создания ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния Π½Π° Ρ‚Ρ€ΠΈ простых этапа; Π²Π²ΠΎΠ΄, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄.

Π­Ρ‚Π° новая срСда мСняСт способ взаимодСйствия с ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π² систСмС.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ±Π·ΠΎΡ€ Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ аналитичСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ обучСния.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прогрСсс вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для понимания графичСском Π²ΠΈΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ итСрациям.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ точности ΠΈ ΠΎΡ‚Π·Ρ‹Π²Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° ΠΎΠ±ΡƒΡ‡Π΅Π½Π° ваша модСль.

Π’Π°Π±Π»ΠΈΡ†Π° являСтся ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ классу ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ тСстирования Ρ‚Π°ΠΊ ΠΆΠ΅ прост, ΠΊΠ°ΠΊ пСрСтаскиваниС Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ тСст, просто Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ «ВСст».

И Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ Π² Create ML, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π’Ρ‹Π²ΠΎΠ΄Β».

Π­Ρ‚Π° новая функция позволяСт Π²Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ваша модСль Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π±Π΅Π· нСобходимости Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ваши ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² свои прилоТСния.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΈΡ… развСртывания.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это прямо Π² Create ML, сэкономив врСмя Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Π Π°Π·Π΄Π΅Π» ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра Ρ‚Π°ΠΊΠΆΠ΅ настраиваСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шаблона, обСспСчивая ΠΏΠΎΠ»Π½ΠΎΠ΅ сквозноС взаимодСйствиС для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Но Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ это Π²Π°ΠΌ Π²ΠΆΠΈΠ²ΡƒΡŽ? Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π² Xcode, я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ классификатором Ρ†Π²Π΅Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΌΠ½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ².

И я использовал модСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я скачал ΠΈΠ· Π³Π°Π»Π΅Ρ€Π΅ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Resnet50.

И это Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстная модСль классификатора ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, обучСнная Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ 1000 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов.

Но эта модСль Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 100 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ ΠΌΠΎΠ΅Π³ΠΎ прилоТСния.

И ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° я Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎΠ±ΡƒΡŽ Π΅Π³ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… изобраТСниях, ΠΎΠ½ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этот гибискус — Ρ†Π²Π΅Ρ‚ΠΎΠΊ, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π΅Π³ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠ½Π΅ Π½Π΅ совсСм ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΌΠΎΠ³Ρƒ ΠΈΠ· Xcode ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Create ML.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΠ½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. И ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ я Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² прСдставлСниС шаблона, Π³Π΄Π΅ я ΠΌΠΎΠ³Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС доступныС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с изобраТСниями, я Π±ΡƒΠ΄Ρƒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ классификатор ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π²Π°Ρ‚ΡŒ это.

А Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ мСсто для сохранСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ·ΠΆΠ΅.

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ прСдставлСниС «НовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β».

И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ мСня сначала просят ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π² качСствС Π΄Π°Π½Π½Ρ‹Ρ… обучСния.И Ссли я ΠΏΡ€ΠΎΡ…ΠΎΠΆΡƒ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, ΠΎΠ½ΠΈ Π΅Ρ‰Π΅ Π½Π΅ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π» Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ‚ΠΎΠΊ.

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

На своСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС я ΠΎΡ‚Π»ΠΎΠΆΠΈΠ» нСсколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΎΠ².

И Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρƒ мСня Π΅ΡΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ гибискуса, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ пассифлоры, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π°ΠΆΠ΅ нСсколько Ρ€ΠΎΠ·, Π³Π΅ΠΎΡ€Π³ΠΈΠ½ΠΎΠ² ΠΈ ΠΌΠ°Ρ€Π³Π°Ρ€ΠΈΡ‚ΠΎΠΊ.

Π― ΠΌΠΎΠ³ Π±Ρ‹ Π²Π·ΡΡ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ содСрТится 65 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, относящихся ΠΊ пяти Ρ€Π°Π·Π½Ρ‹ΠΌ классам.Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, я ΠΌΠΎΠ³Ρƒ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ», ΠΈ эта модСль автоматичСски Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ½ начинаСтся с извлСчСния элСмСнтов ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ прогрСсс ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π½Π°Ρ‡Π°Π»Π° обучСния.

Π― ΠΌΠΎΠ³Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΡƒ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ модСль Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Но Ρ‡Ρ‚ΠΎ я Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ это ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ модСль Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½Π° Π½Π΅ Π²ΠΈΠ΄Π΅Π»Π°.

Π˜Ρ‚Π°ΠΊ, я ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρƒ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Testing, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰Ρƒ эти Π½ΠΎΠ²Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΡ‚Π»ΠΎΠΆΠΈΠ», ΠΈ Π½Π°ΠΆΠΌΡƒ Test.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π’Ρ‹Π²ΠΎΠ΄Β». И ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ классификатор Ρ†Π²Π΅Ρ‚ΠΎΠ² Π½Π° 66 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это, я сдСлал нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, этого гибискуса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» с Resnet.

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ эта модСль ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅.

И я ΠΌΠΎΠ³Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹, сдСланныС модСлью, ΠΈ значСния достовСрности для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…. Π― Π΄Π°ΠΆΠ΅ ΠΌΠΎΠ³Ρƒ Π²Π·ΡΡ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ любоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, прСдсказанноС этой модСлью.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° я Π΄ΠΎΠ²ΠΎΠ»Π΅Π½, я ΠΌΠΎΠ³Ρƒ Π²Π·ΡΡ‚ΡŒ эту модСль ΠΈ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π΅Π΅.

А Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ это Π² ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю ΠΌΠΎΡ‰ΡŒ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Continuity Π² Create ML.

Из этого я ΠΌΠΎΠ³Ρƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ со своСго Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½.

И я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ†Π²Π΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ мСня здСсь, Π½Π° сцСнС, ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ это получаСтся.

И Π²ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ своСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ провСсти Π΅Ρ‰Π΅ нСсколько экспСримСнтов, здСсь Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° «Плюс».

И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ большС ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ наши Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ тСстирования.

На этот Ρ€Π°Π· я, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ.

И Ρ‚ΠΎΠ³Π΄Π° я ΠΌΠΎΠ³Ρƒ Π½Π°ΠΆΠ°Ρ‚ΡŒ Β«Π‘Π΅Π³ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡΒ».

Π­Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π² Create ML.

ВСрнСмся ΠΊ слайдам.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ Create ML Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ способ обучСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ модСлям машинного обучСния Π½Π° Mac с красивым внСшним Π²ΠΈΠ΄ΠΎΠΌ.

А с Ρ‚Π°ΠΊΠΈΠΌΠΈ дополнСниями, ΠΊΠ°ΠΊ визуализация ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, прогрСсс Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Create ML устанавливаСт ΠΏΠ»Π°Π½ΠΊΡƒ для ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π’ дСмонстрации ΠΌΡ‹ рассмотрСли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ модСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Create ML.

Но Π² этом выпускС ΠΌΡ‹ прСдставляСм Π΄Π΅Π²ΡΡ‚ΡŒ.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим всС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, ΠΈ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Начиная с области ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρƒ нас Π΅ΡΡ‚ΡŒ классификатор ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС ΠΈΡ… содСрТимого.

НапримСр, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ худоТСствСнного стиля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ настраиваСмый классификатор ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для опрСдСлСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятного двиТСния части.

Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ прСдоставляСт ΠΎΠ±Π·ΠΎΡ€ извСстных Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’ Create ML классификатор ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Apple, выполняя пСрСносноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ с функциями машинного зрСния, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Π² ОБ.

Π­Ρ‚ΠΎ позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя обучСния ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с дополнСниями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваши ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ для Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°.

Если вмСсто этого Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π° Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ распознавания содСрТимого изобраТСния.

НапримСр, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько классов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ масти, содСрТащиСся Π½Π° Π½ΠΈΡ….

Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — это модСль, основанная Π½Π° Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ, которая выполняСт Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ.

И Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° GPU вашСго Mac. Наша ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ — Π·Π²ΡƒΠΊ.

Π’ Sound Ρƒ нас Π΅ΡΡ‚ΡŒ новая модСль ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Sound Classifier.

Π­Ρ‚Π° модСль позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π·Π²ΡƒΠΊ Π² Π°ΡƒΠ΄ΠΈΠΎΠΏΠΎΡ‚ΠΎΠΊΠ΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°ΡƒΠ΄ΠΈΠΎΠ΄Π°Π½Π½Ρ‹Π΅ основаны Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядах, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π²ΡƒΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° заканчиваСтся Π³ΠΈΡ‚Π°Ρ€Π½ΠΎΠ΅ соло ΠΈ Ρ‚ΠΎΠ»ΠΏΠ° сходит с ΡƒΠΌΠ°.

Π’ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ трансфСрноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя обучСния.

И ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ являСтся слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»Π΅Π³ΠΊΠΈΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° Neural Engine, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° любом устройствС.

Наш Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½ — Activity.

А Π² Activity Ρƒ нас Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΅ΡΡ‚ΡŒ классификатор Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π­Ρ‚Π° модСль Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° основС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов. А классификаторы активности ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ аксСлСромСтр ΠΈ гироскоп.

Π­Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ основаны Π½Π° Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Π½Π° графичСском процСссорС.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ идСально подходят для развСртывания Π½Π° любом устройствС.

Наш прСдпослСдний Π²Π²ΠΎΠ΄ — это тСкст.

Π’ тСкстС доступны Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ; классификатор тСкста ΠΈ срСдство тСгирования слов.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ тСкста ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обозначСния ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π°Π±Π·Π°Ρ†Π΅Π² ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ†Π΅Π»Ρ‹Ρ… статСй Π½Π° основС ΠΈΡ… содСрТания.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ Create ML Π΅ΡΡ‚ΡŒ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ Π΄Π°ΠΆΠ΅ Π½ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ обучСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² этом Π³ΠΎΠ΄Ρƒ.

Π’ Word Tagger Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС нюансов.

ИдСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… слов Π² тСкстС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ этого ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй Ρ€Π΅Ρ‡ΠΈ ΠΈΠ»ΠΈ распознаваниС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², хотя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свои собствСнныС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° сыров.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Cheese Tagger Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² любом описании сыра Π²Ρ‹ смоТСтС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вкусовыС Π½ΠΎΡ‚ΠΊΠΈ.

Наш послСдний Π΄ΠΎΠΌΠ΅Π½ являСтся самым ΠΎΠ±Ρ‰ΠΈΠΌ ΠΈΠ· всСх пяти; Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

И Π² этом Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ; Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ классификатор, Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ РСгрСссор ΠΈ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒ.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Π½Π° основС ΠΈΡ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… интСрСс характСристик.

ВозмоТности ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†Π΅Π»Ρ‹Π΅ числа, числа с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, строки, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ваша Ρ†Π΅Π»ΡŒ — дискрСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Π»ΠΈ сидСньС ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Π² зависимости ΠΎΡ‚ роста ΠΈ вСса ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… свойств сидСнья, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ количСство мСста для Π½ΠΎΠ³.

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ классификатора Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π·Π° вас Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. И опрСдСляСт нСсколько Π»ΡƒΡ‡ΡˆΠΈΡ… классификаторов для Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Если вмСсто этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° модСль, которая прСдсказываСт числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΈΠ»ΠΈ Π±Π°Π»Π», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ рСгрСссор.

Π­Ρ‚Π° модСль количСствСнно ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ Π½Π° основС ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… характСристик. Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠΌΠ° Π² зависимости ΠΎΡ‚ Π΅Π³ΠΎ мСстополоТСния ΠΈ количСства спалСн, Π²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ½Π°Ρ‚ ΠΈ ΠΏΠ°Ρ€ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… мСст.

Подобно классификатору, рСгрСссор Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски опрСдСляСт Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΈΠ· мноТСства рСгрСссоров для Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρƒ вас ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π΅ΡΡ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ усилСнноС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, случайный лСс ΠΈΠ»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ рСгрСссор, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

И наша послСдняя модСль — это Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° основС повСдСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

РСкомСндатСля ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ элСмСнтов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. И Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° устройствС, избавляя вас ΠΎΡ‚ Ρ…Π»ΠΎΠΏΠΎΡ‚ ΠΏΠΎ настройкС сСрвСра.

Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, Create ML ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ экспСримСнты с ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

МодСли машинного обучСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΠ±ΡƒΡ‡Π°Π΅Ρ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠΈ с Ρ‡Π»Π΅Π½Π°ΠΌΠΈ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, всС это позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ обучСния Π½Π° вашСм Mac.

Π­Ρ‚Π° новая срСда дополняСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ доступныС Π²Π°ΠΌ способы создания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Swift Playgrounds, Swift Scripts ΠΈΠ»ΠΈ Swift Frepple, Xcode Playground.

Но позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π΅ написав Π½ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΉ строчки ΠΊΠΎΠ΄Π°.

ΠœΡ‹ считаСм, Ρ‡Ρ‚ΠΎ благодаря этому машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ станСт доступно ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ.

Подводя ΠΈΡ‚ΠΎΠ³, Π² Create ML Π² этом Π³ΠΎΠ΄Ρƒ Ρƒ вас Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π΄Π΅Π²ΡΡ‚ΡŒ шаблонов ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс.

.

Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Core ML, Ρ‡Π°ΡΡ‚ΡŒ 1 — WWDC 2018 — Π²ΠΈΠ΄Π΅ΠΎ

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ

Π”ΠΎΠ±Ρ€ΠΎΠ΅ ΡƒΡ‚Ρ€ΠΎ.

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ. Π― Майкл, ΠΈ эта сСссия посвящСна Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Core ML.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄ Core ML ΠΏΡ€ΠΈΠ·Π²Π°Π½ΠΎ максимально ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ принятиС Π·Π° послСдний Π³ΠΎΠ΄.

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ всС Π²Ρ‹ Π·Π°Π΄ΡƒΠΌΠ°Π»ΠΈΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ссли Π±Ρ‹ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ содСрТимого ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π°Π½Π°Π»ΠΈΠ· тСкста.

Π§Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ сдСлали, Ссли Π±Ρ‹ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ Π·Π²ΡƒΠΊΠ΅ ΠΈΠ»ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠ΅, ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дСйствия Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° основС ΠΈΡ… активности двиТСния, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½ΠΈΡ… Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚? ВсС это ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π»Π΅Π³ΠΊΠΎ достиТимо.

И это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ этот Ρ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ заглянСм Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ, ансамбль Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ.

Π£ Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ….

Но Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° прСдоставляСмых ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностях ΠΈ возмоТностях, Π° Π½Π΅ Π½Π° дСталях Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ модСль Core ML Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ просто: Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Xcode.

Xcode даст Π²Π°ΠΌ простоС прСдставлСниС, ΠΎΠΏΠΈΡˆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ прСдоставляСмых Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Xcode сдСлаСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ шаг Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ сгСнСрируСт для вас интСрфСйс, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ взаимодСйствиС с этой модСлью — это всСго лишь нСсколько строк ΠΊΠΎΠ΄Π°, ΠΎΠ΄Π½Π° для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ΄Π½Π° для прогнозирования, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ для извлСчСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вас интСрСсуСт.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊΠΎΠ΄, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Core ML интСгрируСтся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ· Π½Π°ΡˆΠΈΡ… высокоуровнСвых API ΠΈ позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ссли Π²Ρ‹ Π΄Π°Π΄ΠΈΡ‚Π΅ ΠΈΠΌ модСль Core ML.

Π˜Ρ‚Π°ΠΊ, Π² Vision это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса VNCoreML.

А Π² Π½ΠΎΠ²ΠΎΠΉ срСдС СстСствСнного языка Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр MLModel ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ CoreML.

Π˜Ρ‚Π°ΠΊ, это Π² Π΄Π²ΡƒΡ… словах ΠΎ Core ML.

Но ΠΌΡ‹ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ.

ΠœΡ‹ ΡƒΡ‡Π»ΠΈ всС ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ вас Π·Π° послСдний Π³ΠΎΠ΄, ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΡ… CoreML 2.

И ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом Π² Π΄Π²ΡƒΡ… сСссиях.

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСансС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ всС сидитС прямо сСйчас, ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния вашСго прилоТСния. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ сСансС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся сразу послС этого Π² 10 часов ΡƒΡ‚Ρ€Π° послС нСбольшого ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°, ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± инструмСнтах ΠΈ ​​о Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΌΠΈ функциями Core ML 2.

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ вашСго прилоТСния, ΠΌΡ‹ собираСмся ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚Ρ€Π΅Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… областях.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ количСство ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ вашСго прилоТСния, сохранив ΠΏΡ€ΠΈ этом Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

А Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ сдСлаСм Π²Ρ‹Π²ΠΎΠ΄ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ использованиС Core ML ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΠ΄Ρ‚ΠΈ Π² Π½ΠΎΠ³Ρƒ с соврСмСнной ΠΈ быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ машинного обучСния.

Π˜Ρ‚Π°ΠΊ, для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.Π― ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΌ это ЀранчСско.

Бпасибо, Майкл.

ЗдравствуйтС. Π›ΡŽΠ±Ρ‹Π΅ способы ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго прилоТСния Core ML ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹.

МСня Π·ΠΎΠ²ΡƒΡ‚ ЀранчСско, ΠΈ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Core ML 2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго прилоТСния. Π˜Ρ‚Π°ΠΊ, Core ML, Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ устройства. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… прСимущСства ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΡ… запуском Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.На устройствС Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния.

ΠœΡ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΊΠΈΠ΄Π°ΡŽΡ‚ устройство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

И для ΠΊΡ€Π΅ΠΌΠ½ΠΈΠΉ, ΠΈ для устройств супСрэффСктивны для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ машинного обучСния.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сСрвСры.

И Π²Ρ‹Π²ΠΎΠ΄ Core ML доступСн Π² любом мСстС Π² любоС врСмя, нСсмотря Π½Π° СстСствСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ.

ВсС эти ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ прСимущСства связаны с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния Π½Π° устройствС.

А Ссли ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния Π²Π΅Π»ΠΈΠΊΠΈ, вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго прилоТСния.

НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Π°, ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ»Π½Π° интСрСсных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

И ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ этому Ρ€Π°Π΄Ρ‹.

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° устройствС, ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π²Ρ‹ ΠΎΠ±ΡƒΡ‡Π°Π΅Ρ‚Π΅ нСсколько ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Core ML ΠΈ добавляСтС ΠΈΡ… Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ стало Π΅Ρ‰Π΅ ΠΊΡ€ΡƒΡ‡Π΅, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ стали Π΅Ρ‰Π΅ счастливСС.

Но Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΎΡΡŒ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅.

НСрСдко ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ прилоТСния Π²Ρ‹Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ Π΄ΠΎ дСсятков ΠΈΠ»ΠΈ сотСн ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ послС добавлСния ΠΊ Π½ΠΈΠΌ возмоТностСй машинного обучСния.

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ всС большС ΠΈ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ просто Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ·-ΠΏΠΎΠ΄ контроля.

Π˜Ρ‚Π°ΠΊ, это ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с этим ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.И Ссли эти ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вашСго прилоТСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π²Π½Π΅ своСго ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. А Π·Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ запросу, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° устройствС.

Π˜Ρ‚Π°ΠΊ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС этот ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сначала Π΄ΠΎΠ²ΠΎΠ»Π΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ установки Π½Π΅ измСнился.

Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Core ML Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ — вашСго прилоТСния ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Π΅Π»ΠΈΠΊ.

Π’Π°ΠΊ Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π»ΠΈ Π±Ρ‹Π»ΠΎ Π±Ρ‹ вмСсто этого Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€ самих ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ? Π­Ρ‚ΠΎ даст Π½Π°ΠΌ мСньший ΠΏΠ°ΠΊΠ΅Ρ‚ Π² случаС, Ссли ΠΌΡ‹ отправляСм ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния, Π±ΠΎΠ»Π΅Π΅ быстрыС ΠΈ мСньшиС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ссли вмСсто доставки ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΈΡ…. И Π² любом случаС вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ мСньшС памяти.

ИспользованиС мСньшСго объСма памяти Π»ΡƒΡ‡ΡˆΠ΅ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСго прилоТСния ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмы Π² Ρ†Π΅Π»ΠΎΠΌ.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния Core ML Π½Π° Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это количСство ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ машинного обучСния ΠΈΠΌΠ΅Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ количСство вСсов.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ вСсов зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ вашСй Π·Π°Π΄Π°Ρ‡ΠΈ машинного обучСния.

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Майкл, число вСса — вСса — это мСсто, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ модСль машинного обучСния Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½Π° ΠΈΠ·ΡƒΡ‡ΠΈΠ»Π° Π²ΠΎ врСмя обучСния.

Π’Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ — Ссли ΠΎΠ½ Π±Ρ‹Π» ΠΎΠ±ΡƒΡ‡Π΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ модСль, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΡƒΡŽ дСсятков ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² вСсов.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ€Π°Π·ΠΌΠ΅Ρ€ вСса. Как ΠΌΡ‹ сохраняСм эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ Π²ΠΎ врСмя Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ? Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала сосрСдоточимся Π½Π° этом Ρ„Π°ΠΊΡ‚ΠΎΡ€Π΅.

Для Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² прСдставлСния ΠΈ хранСния вСсов.

И ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Core ML Π² iOS 11.

НСйронныС сСти Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ с использованиСм 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… вСсов с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

Π’ iOS 11.2 ΠΌΡ‹ ΡƒΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ваши ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ прСдставили вСс с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности.

Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для Ρ‚ΠΎΠΉ ΠΆΠ΅ точности.

Но Π² этом Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько шагов Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ вСса.

Π‘ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ вСсами ΠΌΡ‹ большС Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ использованиСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Float 32 ΠΈΠ»ΠΈ Float 16.

Но Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм 8 Π±ΠΈΡ‚, 4 Π±ΠΈΡ‚, Π»ΡŽΠ±Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 1 Π±ΠΈΡ‚Π°. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ прСдставляСм подмноТСство вСсов Π½Π°ΡˆΠΈΡ… Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, эти вСса ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ значСния Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ тСорСтичСски ΠΎΠ΄ΠΈΠ½ вСс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ бСсконСчноС количСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π² Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтях ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ вСса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой 32 — числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой 32.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этот вСс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€.

Но оказалось, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с вСсами мСньшСй точности.

ΠšΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ — это процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся для прСрывания Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ограничСния ΠΈΡ… для принятия ΠΎΡ‡Π΅Π½ΡŒ малСнького ΠΈ дискрСтного подмноТСства Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

НапримСр, здСсь ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΎ этот Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ спСктр вСсов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 256 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ вСса Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния.

ПослС квантования Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 256 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ вСс ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈΠ· этого нСбольшого Π½Π°Π±ΠΎΡ€Π°, Core ML Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 8 Π±ΠΈΡ‚ сохранСнной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ вСсС.

Но здСсь нас Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ остановит.

МоТСм ΠΏΠΎΠΉΡ‚ΠΈ дальшС. И, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· 56 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 8.

И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 8 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², Core ML потрСбуСтся 3-Π±ΠΈΡ‚Π½Ρ‹Π΅ значСния Π½Π° вСс для хранСния. ваша модСль.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подробности ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ собираСмся Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ эти значСния для прСдставлСния вСсов.

Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСны Π² этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, ΠΈ Π² этом случаС Ρƒ нас Π΅ΡΡ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ вмСсто квантования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ поиска, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ эти значСния, разбросанныС Π² этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ нашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° Resnet50, которая являСтся распространСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ прилоТСниями для мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 25 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой для Π΅Π³ΠΎ прСдставлСния.

Π’ΠΎΠ³Π΄Π° ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ большС 100 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚.

Если ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎ 8 Π±ΠΈΡ‚, Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ измСнилась; Ρƒ нас ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 25 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Но сСйчас ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Π±Π°ΠΉΡ‚ для хранСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ вСса, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ Π² 4 Ρ€Π°Π·Π°.

Π­Ρ‚ΠΎ всСго лишь — сСйчас для хранСния этой ΠΌΠΎΠ΄Π΅Π»ΠΈ трСбуСтся всСго 26 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚.

А ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡ‚ΠΈ дальшС.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 4 Π±ΠΈΡ‚Π° Π½Π° вСс Π² этой ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ модСль Π΅Ρ‰Π΅ мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

И снова Core ML ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС Ρ€Π΅ΠΆΠΈΠΌΡ‹ квантования Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 8 Π±ΠΈΡ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ — это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ Π΅Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

Но ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль? Если Ρƒ вас Π΅ΡΡ‚ΡŒ нСйронная ΡΠ΅Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Core ML, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Core ML Tools, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Core ML 2 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ автоматичСски.

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ — с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ квантования с нуля, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ с ограничСниями квантования.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½ΡƒΡŽ модСль с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов обучСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Core ML ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ.

И Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнится Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ модСль.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ числа Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ с Ρ€Π°Π·Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ интСрфСйс для использования ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ измСнится.

Однако ΠΌΡ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ аппроксимации исходных эталонных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

А это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π­Ρ‚ΠΎΡ‚ компромисс зависит ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования.К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ это ΠΎΡ‡Π΅Π½ΡŒ активная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ исслСдований.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всСгда рСкомСндуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ вСрсиСй с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой для получСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ для вашСго прилоТСния ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для пСрСноса стилСй.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ стилСй нСйронная ΡΠ΅Ρ‚ΡŒ Π±Ρ‹Π»Π° ΠΎΠ±ΡƒΡ‡Π΅Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ изобраТСния с использованиСм стилСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ ΠΏΡ€ΠΈ просмотрС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, я ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ стилями; Π“ΠΎΡ€ΠΎΠ΄, стСкло, масла ΠΈ Π²ΠΎΠ»Π½Ρ‹.

Π—Π°Ρ‚Π΅ΠΌ я ΠΌΠΎΠ³Ρƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ изобраТСния ΠΈΠ· Ρ„ΠΎΡ‚ΠΎ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡ…, смСшивая ΠΈΡ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… стилях, прямо Π½Π° устройствС.

Π˜Ρ‚Π°ΠΊ, это исходноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π³ΠΎΡ€ΠΎΠ΄Π°, стСкло, масло ΠΈ Π²ΠΎΠ»Π½Ρ‹.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ создано Π² Xcode.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Core ML ΠΈ Vision API для выполнСния этой стилизации.

И, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π² Xcode; City, Glass, Oils ΠΈ Waves — Ρ‚Π΅ ΠΆΠ΅ самыС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. И ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ — ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ эту модСль.

Они Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, поэтому каТдая ΠΈΠ· этих ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 6,7 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π° этого пространства Π½Π° дискС.

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Ρ€ΡƒΡ‚ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ стилизованным, с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ, сколько мСста для хранСния ΠΈ памяти ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ — ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.Π˜Ρ‚Π°ΠΊ, я поигрался с Core ML Tools ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» прСдставлСниС квантоватСля для этих ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

И Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эти ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Части 2, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассматриваСтся ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML Tools.

Π˜Ρ‚Π°ΠΊ, я Ρ…ΠΎΡ‡Ρƒ сначала ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° стилС Glass ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии квантования Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ для этих стилСй.

Π˜Ρ‚Π°ΠΊ, всС, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ эти Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Xcode ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. А ΠΏΠΎΡ‚ΠΎΠΌ посмотрим, ΠΊΠ°ΠΊ Π²Π΅Π΄ΡƒΡ‚ сСбя эти ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ сильно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΡΡ. НапримСр, 8-битная вСрсия ΡƒΠΆΠ΅ с 6 ΠΈΠ»ΠΈ 7 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ снизилась Π΄ΠΎ 1,7.

Π’ 4-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ большС, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ модСль мСньшС 1 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°.

Π’ 3-Π±ΠΈΡ‚Π½ΠΎΠΌ ΠΎΠ½ — это Π΅Ρ‰Π΅ мСньшС, 49 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚. И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вСрнСмся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм это ΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для справки ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΡΡ‚ΠΈΠ»ΡŒ Π‘Ρ‚Π΅ΠΊΠ»ΠΎ ΠΊ исходной вСрсии.

По-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ выглядит ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с 8-Π±ΠΈΡ‚Π½ΠΎΠΉ вСрсиСй.

И Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнилось.

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ 8-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ квантования ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€ΠΈΡΠΊΠ½ΡƒΡ‚ΡŒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ 4-Π±ΠΈΡ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π’Π°Ρƒ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ 3-Ρ… Π±ΠΈΡ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ — Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π°. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ссли ΠΌΡ‹ ΠΏΠΎΠΉΠ΄Π΅ΠΌ ΠΈ посовСтуСмся с Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌ Π»ΠΈ этот эффСкт.

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ 2-Π±ΠΈΡ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, это Π½Π΅ совсСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ искали. ΠœΠΎΠΆΠ΅Ρ‚, ΠΏΡ€ΠΈΠ±Π΅Ρ€Π΅ΠΌ для Ρ…ΠΎΡ€Ρ€ΠΎΡ€-прилоТСния, Π½ΠΎ я Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ это Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρƒ.

ВСрнСмся ΠΊ 4-Π±ΠΈΡ‚Π½ΠΎΠΉ вСрсии ΠΈ скроСм эту.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ просто Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ исходных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ всСгда рСкомСндуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈΡ… ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСрсиями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ квантования всСгда Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π΅Ρ‰ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ — послС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ обсуТдСния с Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 4-Π±ΠΈΡ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ, которая ΠΈΠΌΠ΅Π΅Ρ‚ наимСньший Ρ€Π°Π·ΠΌΠ΅Ρ€ для Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ качСства.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ всС вСрсии ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ мСста Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΈΡ… 4-Π±ΠΈΡ‚Π½ΠΎΠΉ вСрсиСй.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ запустим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² послСдний Ρ€Π°Π·.

ОК. Π”Π°Π²Π°ΠΉΡ‚Π΅ снова Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ всС стили. Π­Ρ‚ΠΎ Π±Ρ‹Π» Π“ΠΎΡ€ΠΎΠ΄, Π‘Ρ‚Π΅ΠΊΠ»ΠΎ, Масла ΠΈ Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Π’ΠΎΠ»Π½Π°.

Π˜Ρ‚Π°ΠΊ, Π² этой дСмонстрации ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»ΠΈ с Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ, Π² 32-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ — ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния составлял 27 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΡ†Π΅Π½ΠΈΠ»ΠΈ качСство ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π½Π° 4-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ нашСго прилоТСния ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΡΡ Π΄ΠΎ 3,4 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ — это Π½Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ стоит с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния качСства, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС эти вСрсии — эти ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹Π΅ вСрсии выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΈ качСство ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅Π΅.

ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния Π·Π° счСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° вСса Π½Π° ΠΎΡ‡Π΅Π½ΡŒ микроскопичСском ΡƒΡ€ΠΎΠ²Π½Π΅.Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

Π’ самом простом случаС, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ машинного обучСния, Π²Π°ΠΌ понадобятся Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния.

Но Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ модСль ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΡƒΡŽ модСль. А ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько Π·Π°Π΄Π°Ρ‡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пСрСноса стилСй, сСанс Turi Create ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… модСлях.

Или, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Core ML ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π“ΠΈΠ±ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹Β».

ВСрнСмся ΠΊ нашСй дСмонстрации Style Transfer.

Π’ Xcode ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Ρ‹Π» Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ опрСдСлСния ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Но Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΡΡ‚ΠΈΠ»ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½ΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ изобраТСния? Π§Ρ‚ΠΎ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ΅Ρ‚ΡŒ с изобраТСниями Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²? НапримСр, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ стиля высокой чСткости.

Π˜Ρ‚Π°ΠΊ, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ — ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Π½Π°ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ высокой чСткости.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π±Ρ‹ я Π±Ρ‹Π» модСлью Core ML, всС, Ρ‡Ρ‚ΠΎ для этого Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ, — это Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, всС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ — это Ρ€Π°Π·ΠΌΠ΅Ρ€ — ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ снова ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎ Π½Π΅ особо ΡƒΠ΄ΠΈΠ²ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”Π°ΠΆΠ΅ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту модСль с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Corel ML Tools ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π² частности, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π±ΠΎΠ»Π΅Π΅ высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² модСль Corel ML, получая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ высокой чСткости.Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Π² ΡΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ — ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. РаньшС ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π² модСль ΠΈ создав Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии: ΠΎΠ΄Π½Ρƒ для стандартного Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ΄Π½Ρƒ для высокого Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

И это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π²Π° Ρ€Π°Π·Π° большС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° — Π½Π΅ считая Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ ΡΠ΅Ρ‚ΡŒ Π±Ρ‹Π»Π° ΠΎΠ±ΡƒΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ любоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½Π΅Ρ‚.

ΠœΡ‹ прСдставляСм Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹.

А с Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ — Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ — Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ модСль для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большСго количСства Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Xcode — — Π² Xcode Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ это — Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ всС Π΅Ρ‰Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, модСль Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ этом простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ SD ΠΈ HD. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ модСль.Π’Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

А Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ стандартным ΠΈ высоким Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ модСль с нуля; Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€.

Π£ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ возмоТности ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту.

И Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ любоС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Но Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

НапримСр, всС Ρ€Π°Π·Π½Ρ‹Π΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ сторон, всС Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈ это Π»ΡƒΡ‡ΡˆΠ΅ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Core ML Π·Π½Π°Π΅Ρ‚ большС ΠΎ вашСм Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ использования Ρ€Π°Π½ΡŒΡˆΠ΅, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ — Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ возмоТности для выполнСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ.

И это Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ для тСстирования.

КакиС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅? КакиС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ? ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свСрточныС Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Π·Π°Π΄Π°Ρ‡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ MS, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° стилСй, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ изобраТСния, ΡΡƒΠΏΠ΅Ρ€Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‚. Π”., А Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСмСнты Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

Core ML Tools ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π˜Ρ‚Π°ΠΊ, Ρƒ нас всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ количСство ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Core ML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π² Π³ΠΈΠ±ΠΊΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ вСсов ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ квантования.

А ΠΊΠ°ΠΊ насчСт количСства вСсов? Core ML, учитывая Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство, мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, всСгда ΠΏΠΎΠΌΠΎΠ³Π°Π» Π²Π°ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ — модСль ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ машинного обучСния.

Π˜Ρ‚Π°ΠΊ, Core ML ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° вашСго прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всС эти Ρ‚Ρ€ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°.

Π’ любом случаС Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. А Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ настройкС, попривСтствуСм Π‘ΠΈΠ»Π»Π° ΠœΠ°Ρ€Ρ‡Π°.

Бпасибо.

Бпасибо.

Один ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² проСктирования Core ML с самого Π½Π°Ρ‡Π°Π»Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго прилоТСния.

И Π² соотвСтствии с этой Ρ†Π΅Π»ΡŒΡŽ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Core ML, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΡΡ‚ΡŒ Π½Π° любом устройствС Apple.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ стиля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π» Π½Π°ΠΌ ЀранчСско.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния вашСго прилоТСния, ΠΎΠ½ΠΎ Π±Π΅Ρ€Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΠΈ просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ стилизованноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

И Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ это: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ„Π°ΠΉΠ» MLModel, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для примСнСния этого стиля; ΠΈ Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ логичСского Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ модСль ML ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ выполняСт вычислСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ заглянСм ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Apple для эффСктивного выполнСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ этого стиля.

Π­Ρ‚Π° модСль являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти, которая состоит ΠΈΠ· сСрии матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… слоями.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ слой примСняСт ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСобразования, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ получаСтся стилизованный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

МодСль Ρ…Ρ€Π°Π½ΠΈΡ‚ вСса для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слоя, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ собираСмся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ логичСского Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти Core ML ΠΈΠΌΠ΅Π΅Ρ‚ высокооптимизированныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.

На GPU ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Ρ‹ MTL. На CPU ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Accelerate, ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ расчСт.

И ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ динамичСски ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ части вычислСний Ρ€Π°Π·Π½Ρ‹ΠΌ частям оборудования Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ, состояния устройства ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ возмоТности для объСдинСния слоСв Π² сСти, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ количСству Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… вычислСний.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ происходит. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ; ΠΎΠ½ΠΈ содСрТатся Π² Ρ„Π°ΠΉΠ»Π΅ MLModel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π½Π°ΠΌ прСдоставили.

И ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ устройства, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ±ΠΎ всСх этих оптимизациях Π·Π° вас, Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° обСспСчСнии Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

А ΠΊΠ°ΠΊ насчСт вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ? Π§Ρ‚ΠΎ, Π² частности, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ²? Если Core ML Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎΠ± этом, Ρ‚ΠΎ Core ML Π½Π΅ смоТСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для этого.

Π˜Ρ‚Π°ΠΊ, Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ, Ссли Ρƒ вас Π±Ρ‹Π»Π° такая рабочая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого: простой Ρ†ΠΈΠΊΠ» for, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π²ΠΎΠΊΡ€ΡƒΠ³ Π²Ρ‹Π·ΠΎΠ²Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ API прогнозирования Core ML. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ массив Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅ массив Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим, Ρ‡Ρ‚ΠΎ происходит ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° это — ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ это Π΄Π΅Π»Π°Π΅ΠΌ.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ изобраТСния Π½Π°ΠΌ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Π’ΠΎ всяком случаС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° GPU.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ это сдСлаСм, ΠΌΡ‹ смоТСм произвСсти расчСт ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Но Π·Π°Ρ‚Π΅ΠΌ Π΅ΡΡ‚ΡŒ этап постобработки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· графичСского процСссора ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡ… Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠšΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ этого изобраТСния являСтся устранСниС ΠΏΡƒΠ·Ρ‹Ρ€Π΅ΠΉ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅ графичСского процСссора.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ Π΄Π²ΡƒΠΌ основным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° графичСский процСссор простаиваСт, ΠΎΠ±Ρ‰Π΅Π΅ врСмя вычислСний сокращаСтся.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ графичСский процСссор ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² состоянии с Π±ΠΎΠ»Π΅Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для вычислСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°.

Но основная ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Core ML состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… дСталях.

ЀактичСски, для вашСго прилоТСния всС, Ρ‡Ρ‚ΠΎ вас Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ бСспокоит для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, — это ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π΄ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π˜Ρ‚Π°ΠΊ, Π² этом Π³ΠΎΠ΄Ρƒ ΠΌΡ‹ прСдставляСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ это.

Π’Π°ΠΌ, Π³Π΄Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹, Π½ΠΎΠ²Ρ‹ΠΉ API ΠΎΡ‡Π΅Π½ΡŒ прост.

ΠžΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹, ΠΎΠ½ потрСбляСт Π²Ρ…ΠΎΠ΄ — массив Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ массив Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ².

Core ML позаботится ΠΎΠ± ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° это Π² дСйствии.

Π˜Ρ‚Π°ΠΊ, Π² соотвСтствии с нашим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ стиля, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим случай, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎ всСй нашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, Ρƒ мСня Π΅ΡΡ‚ΡŒ простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сдСлаСт ΠΈΠΌΠ΅Π½Π½ΠΎ это. Π― ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΊ 200 изобраТСниям. Π‘Π»Π΅Π²Π°, ΠΊΠ°ΠΊ ΠΈ слСва, Π΅ΡΡ‚ΡŒ рСализация, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎΠ΄Π½ΠΈΠΉ API Π² Ρ†ΠΈΠΊΠ»Π΅ for.

А справа Ρƒ нас Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ API.

Π˜Ρ‚Π°ΠΊ, приступим.

ΠœΡ‹ Π²Ρ‹Π΅Π·ΠΆΠ°Π΅ΠΌ.

И ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡƒΠΆΠ΅ сдСлано. ПодоТдСм ΠΌΠΈΠ½ΡƒΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎΠ΄Π½Π΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈ ΠΏΠΎΠ΅Ρ…Π°Π»ΠΈ.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ с Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ API.

Π’ Ρ†Π΅Π»ΠΎΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, зависит ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ, устройства ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Но Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ большоС количСство ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ API ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Core ML всС возмоТности для ускорСния вычислСний.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, самоС Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΈΡ€Π΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ особого впСчатлСния, Ссли ΠΎΠ½ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ‚ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ этот ΠΎΠΏΡ‹Ρ‚ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Core ML Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ простым Π² использовании, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅.

Но ΠΎΠ±Π»Π°ΡΡ‚ΡŒ машинного обучСния быстро растСт.

Как ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ? И насколько быстро? ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΎΠ± этом Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ· Π»ΠΈΡ‡Π½ΠΎΠΉ истории.

Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΎΠ±ΠΌΠ°Π½Ρ‡ΠΈΠ²ΠΎ простой вопрос, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ машинного обучСния.

Учитывая ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, я Ρ…ΠΎΡ‡Ρƒ Π·Π½Π°Ρ‚ΡŒ: Π΅ΡΡ‚ΡŒ Π»ΠΈ Π½Π° Π½Π΅ΠΌ лошади? Π”ΡƒΠΌΠ°ΡŽ, я ΡƒΡΠ»Ρ‹ΡˆΠ°Π» ΠΏΠ°Ρ€Ρƒ смСшков. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π³Π»ΡƒΠΏΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. ΠšΡΡ‚Π°Ρ‚ΠΈ, малСньким дСтям это нравится. Но — Ρ‚Π°ΠΊ, Π΄Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ поступал Π² аспирантуру, я Π΄ΡƒΠΌΠ°Π» ΠΎΠ± этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡƒΠ·Π½Π°Π» ΠΎ машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ, ΠΌΠΎΠΈ ΠΈΠ΄Π΅ΠΈ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части сводились ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ: я Π½Π΅ знаю — каТСтся Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ.

Π£ мСня Π½Π΅Ρ‚ для вас Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ.

Π’Π°ΠΊ ΠΏΡ€ΠΎΡˆΠ»ΠΎ нСсколько Π»Π΅Ρ‚. Π― ΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡΡŒ ΡΡ‚Π°Ρ€ΡˆΠ΅, надСюсь, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡƒΠΌΠ½Π΅ΡŽ. Но, бСзусловно, эта ΠΎΠ±Π»Π°ΡΡ‚ΡŒ двиТСтся ΠΎΡ‡Π΅Π½ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ быстро, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с использованиСм Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй появилось ΠΌΠ½ΠΎΠ³ΠΎ интСрСсных Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

И Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΉ взгляд Π½Π° эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ измСнился. И Π²Π΄Ρ€ΡƒΠ³, Π²Π°Ρƒ, это ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠ΅ исслСдованиС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ вопросы, ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ³Π½Π°Ρ‚ΡŒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π΄Π΅Ρ‚Π΅ΠΉ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ распознавания лошадСй.КакоС Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅.

Π’Π°ΠΊ ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π΅Ρ‰Π΅ нСсколько Π»Π΅Ρ‚. БСйчас я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² Apple, ΠΈ ΠΌΠΎΠΉ взгляд Π½Π° эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ снова измСнился. Π’Π΅ΠΏΠ΅Ρ€ΡŒ просто Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Create ML. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ прСкрасный. Π£ вас Π±ΡƒΠ΄Π΅Ρ‚ классификатор лошадСй всСго Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ссли Π²Ρ‹ экспСрт ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ смотритС Π½Π° это ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅: «О, этот ΠΏΠ°Ρ€Π΅Π½ΡŒ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΎ Ρ‡Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚. Π—Π½Π°Π΅Ρ‚Π΅, Π² 2007 Π³ΠΎΠ΄Ρƒ я Π·Π½Π°Π», ΠΊΠ°ΠΊ Π Π΅ΡˆΠΈΡ‚Π΅ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.Π’ 2012 Π³ΠΎΠ΄Ρƒ я Ρ€Π΅ΡˆΠ°Π» Π΅Π΅ сто Ρ€Π°Π·.»ΠΠ΅ моя Ρ‚ΠΎΡ‡ΠΊΠ° зрСния.

Если Π²Ρ‹ ΠΈΠ· Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ заботится ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½ΠΎΠΌ высококачСствСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии, это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вас Π½Π΅Ρ€Π²Π½ΠΈΡ‡Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π·Π° 11 Π»Π΅Ρ‚ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ измСнилась ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ возьмСм взглянСм Π½Π° Π΅Ρ‰Π΅ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Core ML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Ρ€Π°ΡΡΠ»Π°Π±ΠΈΡ‚ΡŒΡΡ.

Для этого Π΄Π°Π²Π°ΠΉΡ‚Π΅ снова ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΊΠ°ΠΏΠΎΡ‚ ΠΈ взглянСм Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ систСмы поиска лошадСй, которая, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, являСтся Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ ΡΠ΅Ρ‚ΡŒ

Как ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Ρ€Π°Π½Π΅Π΅, нСйронная ΡΠ΅Ρ‚ΡŒ состоит ΠΈΠ· ряда высоко ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слоСв.Π­Ρ‚ΠΎ сСрия ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π² нашСм ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°.

Наш список ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ±ΡˆΠΈΡ€Π΅Π½ ΠΈ постоянно растСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡ‚ΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² этой области.

Но Ρ‡Ρ‚ΠΎ, Ссли Π΅ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто Π½Π΅ поддСрТиваСтся Π² Core ML? РаньшС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»ΠΈΠ±ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ Π½ΡƒΠΆΠ½Π° Π±Ρ‹Π»Π° другая модСль. Но Ρ‡Ρ‚ΠΎ, Ссли этот слой являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ для поиска лошадСй? Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡ€Ρ‹Π², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΆΠ΄Π°Π»Π° ваша лошадь.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ? Учитывая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ машинного обучСния, это ΠΌΠΎΠ³Π»ΠΎ ΡΡ‚Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ прСпятствиСм.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ собствСнныС слои для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти отсутствуСт, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ с — Π±ΡƒΠ΄Π΅Ρ‚ бСсшовно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ Core ML.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° настраиваСмом ΡƒΡ€ΠΎΠ²Π½Π΅ хранится имя Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ класса — Π² Π΄Π°Π½Π½ΠΎΠΌ случаС AAPLCustomHorseLayer.

Класс Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ выполняСт Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π°.

Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ встроСн Π² Core ML, прСдставлСнная здСсь рСализация Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ экзСмпляру Π½ΠΎΠ²ΠΎΠ³ΠΎ уровня.

Π•Π³ΠΎ просто Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя выполнСния.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для этого ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ уровня ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² модСль ML с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный слой просто.

ВыставляСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MLCustomLayer.

Π’Ρ‹ просто прСдоставляСтС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ уровня Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния.

Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт Π½Π°ΠΌ, сколько мСста Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ для Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… уровня, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ вычислСния.

Plus, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эту Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½Π΅ ТСртвуя ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π° MTL вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ — слоя, ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅.

Если Π²Ρ‹ Π΄Π°Π΄ΠΈΡ‚Π΅ Π½Π°ΠΌ это, Ρ‚ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ вычислСния Core ML.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΈΠ·-Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ графичСскому процСссору ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Если Π²Ρ‹ этого Π½Π΅ прСдоставитС, ΠΌΡ‹ просто ΠΎΡ†Π΅Π½ΠΈΠΌ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ЦП Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с вашСй стороны.

Π˜Ρ‚Π°ΠΊ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ быстро ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² модСлях Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, Ρƒ вас Π΅ΡΡ‚ΡŒ способ Π½Π΅ ΠΎΡ‚ΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚ Core ML.

Но Π΅ΡΡ‚ΡŒ ограничСния.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ слои Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, ΠΈ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ML MultiArrays.Π­Ρ‚ΠΎ СстСствСнный способ взаимодСйствия с Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΌΠΈ сСтями.

Но ΠΎΠ±Π»Π°ΡΡ‚ΡŒ машинного обучСния вряд Π»ΠΈ ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² этой области.

На самом Π΄Π΅Π»Π΅, ΠΊΠΎΠ³Π΄Π° я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡƒΠ·Π½Π°Π» ΠΎ распознавании ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтях ΠΊΠ°ΠΊ ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

И сСгодня Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ. И Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прилоТСния с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ машинного обучСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ слои просто Π½Π΅ помСстятся.

НапримСр, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для машинного обучСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ для встраивания изобраТСния Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пространство подобия, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ изобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° блиТайшСго сосСда ΠΈΠ»ΠΈ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ мСстополоТСния ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

МодСль ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΡƒΠ΄ΠΈΠΎΠ΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π±ΠΎΠ΄Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ Π½Π΅ всСгда Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ»ΡŒΡ†Π°.

Или Π΄Π°ΠΆΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π΅Ρ‰Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π»ΠΈΡΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ возмоТности для Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π’ΠΎ всСх этих случаях Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π±Ρ‹ Ρƒ нас Π±Ρ‹Π»Π° простота ΠΈ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Core ML Π±Π΅Π· нСобходимости ΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡ‚ΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚ поля.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ прСдставляСм нСстандартныС ΠΌΠΎΠ΄Π΅Π»ΠΈ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ модСль Core ML позволяСт ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ части вычислСний, которая отсутствуСт Π²Π½ΡƒΡ‚Ρ€ΠΈ Core ML.

Как ΠΈ Π² случаС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ слоями, модСль Ρ…Ρ€Π°Π½ΠΈΡ‚ имя класса Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Класс выполняСт Ρ€ΠΎΠ»ΡŒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° для этого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ML, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.

Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ модСль ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ² Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π΅Π· нСобходимости Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄.

И Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ модСль Ρ‚ΠΎΠΆΠ΅ просто.

ВыставляСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», MLCustomModel. Π’Ρ‹ прСдоставляСтС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния. И Π²Ρ‹ прСдоставляСтС ΠΌΠ΅Ρ‚ΠΎΠ΄ для вычислСния ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° Π½Π° Π²Ρ…ΠΎΠ΄Π΅.

БущСствуСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для прСдоставлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ссли Π² этом ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΅ΡΡ‚ΡŒ возмоТности для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. А Ссли Π½Π΅Ρ‚, ΠΌΡ‹ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ СдинствСнноС прСдсказаниС Π² Ρ†ΠΈΠΊΠ»Π΅ for.

А использованиС настроСнной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ — это Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, Ρ‡Ρ‚ΠΎ ΠΈ любая другая модСль Core ML.

Π’ Xcode модСль с настраиваСмыми ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» зависимостСй, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пСрСчислСны ΠΈΠΌΠ΅Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ вмСстС с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм.

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΡ… Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

API прогнозирования Π½Π΅ измСняСтся ΠΊΠ°ΠΊ для ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ для ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ².

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ слои ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡ‰ΡŒ ΠΈ простоту Core ML, Π½Π΅ ТСртвуя Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ΄Ρ‚ΠΈ Π² Π½ΠΎΠ³Ρƒ с быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ машинного обучСния.

Для Π½ΠΎΠ²Ρ‹Ρ… слоСв Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти настраиваСмыС слои ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти Π² Core ML.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈ функциям, Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ с вашСй стороны.

ОбС Ρ„ΠΎΡ€ΠΌΡ‹ настройки ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ модСль пСрСносимой ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄.

И ΠΌΡ‹ смогли ΠΊΠΎΡΠ½ΡƒΡ‚ΡŒΡΡ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Core ML 2.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π±Π΅Ρ‚Π°-Π²Π΅Ρ€ΡΠΈΡŽ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами.

Core ML содСрТит мноТСство Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго прилоТСния, ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с послСдними Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ Π² области машинного обучСния.

ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ API ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ слои ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠ΅ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ сочСтании с нашим Π½ΠΎΠ²Ρ‹ΠΌ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для обучСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Create ML, Π΅ΡΡ‚ΡŒ большС, Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ, способов Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ML Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ впСчатлСния для Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ПослС нСбольшого ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° ΠΌΡ‹ вСрнСмся прямо сюда, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ частности, ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нашС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Core ML Tools, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Core ML ΡƒΠΆΠ΅ сСгодня. Бпасибо.

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *