iOS/Framework

CoreML - Integrating a Core ML Model into Your App 번역

DevBabamba 2017. 12. 24. 18:26
반응형



※의역 오역 많습니다. 참고하시고 보세요~
원문 : https://developer.apple.com/documentation/coreml/integrating_a_core_ml_model_into_your_app

Integrating a Core ML Model into Your App

  • 모델 추가, 모델에 input 데이터 전달, 모델 예측 과정
    Download

Overview

  • 이 샘플 앱은 화성 거주 비용을 예측하기 위한 MarsHabitatPricer.mlmodel 모델을 사용한다.

모델을 Xcode 프로젝트에 추가하기

  • Xcode 프로젝트에 project navigator에 모델을 드레깅하여 모델을 추가하라.
  • Xcode에서 모델을 열면 모델의 타입과 예상되는 input output 타입포함한 모델의 정보를 확인할 수 있다.
  • 모델의 input은 솔라 패널, 온실, 뿐만 아니라 거주지의 로트 사이즈의 수이다.
  • 모델의 output은 예측된 거주지의 가격이다.

코드에서 모델 만들기

  • Xcode는 코드에서 모델과 상호작용하는 모델에 사용자 정의 프로그래밍 인터페이스를 자동으로 생성하기 위하여 모델의 input과 output에 관한 정보를 사용한다. 
  • MarsHabitatPricer.mlmodel에서, Xcode는 모델(MarsHabitatPricer), 모델의 input (MarsHabitatPricerInput), 그리고 모델의 output(MarsHabitataPricerOutput)을 나타내는 인터페이스를 생성한다.
  • 모델을 만들기 위해 생성된 MArsHabitatPricer 클래스의 이니셜라이즈를 사용하라.
let model = MarsHabitatPricer()

모델에 전달하기 위한 input 값 얻기

  • 이 샘플앱은 사용자로부터 모델의 input값을 얻기 위하여 UIPickerView를 사용한다.
func selectedRow(for feature: Feature) -> Int {
    return pickerView.selectedRow(inComponent: feature.rawValue)
}

let solarPanels = pickerDataSource.value(for: selectedRow(for: .solarPanels), feature: .solarPanels)
let greenhouses = pickerDataSource.value(for: selectedRow(for: .greenhouses), feature: .greenhouses)
let size = pickerDataSource.value(for: selectedRow(for: .size), feature: .size)

모델 사용하여 예측하기

  • MarsHabitatPricer 클래스는 모델의 input값(이 경우 솔라패널의 수, 온실의 수, 그리고 거주지의 크기)으로부터 가격 예측하는데에 사용되는 생성된 prediction(solarPanels:greenhouses:size:) 메소드를 가진다.
  • 이 메소드의 결과는 MarsHabitatPricerOutput의 객체이다.
guard let marsHabitatPricerOutput = try? model.prediction(solarPanels: solarPanels, greenhouses: greenhouses, size: size) else {
    fatalError("Unexpected runtime error.")
}
  • 예측된 가격을 얻고 앱의 UI에 결과를 표시하기 위해 marsHabitatPricerOutput의 price 프로퍼티에 접근하라.
let price = marsHabitatPricerOutput.price
priceLabel.text = priceFormatter.string(for: price)

생성된 prediction(solarPanels:greenhouses:size:) 메소드는 error를 던길 수 있다. input 데이터가 모델이 예상하는 세부사항이 매치되지 않는 경우가 발생하는(예: 잘못된 포멧의 이미지) Core ML로 작업하는 때 error의 가장 일반적인 타입을 맞닥드릴 수 있다. 

Building and Running a Core ML App

  • Xcode는 디바이스에 최적화된 리소스로 core ML 모델을 컴파일한다.
  • 이 최적화된 모델의 표현은 앱 번들에 포함되고 앱이 디바이스에서 실행되는 동안 예측을 만드는데 사용된다.


반응형