코어ML과 CreatemL을 사용해 개 분류기를 만들어 봤습니다!
16일째 보도는 @yudai_watanabe씨iBeacon의 용도에 대해 생각해 보세요!입니다.
개시하다
안녕하세요.
나는 앤을 불렀다. 올해부터 플라리에서 OS 엔지니어로 일하고 있다.
현재 대학 4학년은 기계 학습에 관한 연구를 진행하고 있다.
그래서 애플리케이션+머신러닝에서 뭘 했으면 올해는 끝났을까 싶어 개 분류기를 만들기로 했다.
최종 목표는 자신이 배운 모델이 우리 집 애견 봄의 개종에 치는 것이다!
실제로 만든 건 여기 있어요.
https://github.com/KosukeSumiyasu/DogClassifier/
이것은 내가 처음으로 이런 보도를 쓴 것이니 모두 안심하세요...
CoreML 및 CreatemL은
응용 소프트웨어가 기계 학습 모델에 쉽게 편입될 수 있도록 하는 구조다.
기계 학습,'모형의 학습','모형을 사용한 추론'을 학습했다.
CoreML은'모델을 사용하는 추론'이고,CreatemL은'학습 모델'을 대상으로 한다.
코어ML에 대해 공식적으로'학습모형'모델이 있는데 이걸로 CreatemL을 사용하지 않아도 코어ML이 어떤지 알 수 있다.
또 단순히 어떤 물건인지 만지고 싶어하는 사람공식 견본이 있어 전선을 들고 오는 사람도 있다.
공식 CoreML
공식CreatemL
학습 데이터
이번에는 CreatemL에서 배운 데이터로 Dog API에서 이미지를 가져와 데이터 집합으로 사용합니다.
이 APIdogapi 샘플 URL를 누르면 개 이미지(URL)가 무작위로 반환됩니다.
실제 내용은 JSON 형식으로 기재되어 있다.
{
"message": "https://images.dog.ceo/breeds/tervuren/yoda_in_sofa.jpg",
"status": "success"
}
또 검색한 URL을 변경해 견종을 지정하거나 얻은 장수를 지정할 수 있다.상세 정보여기.
데이터세트는 견종(라브라도 사냥개, 골든리트리버, 플래그십·사냥개, 체이사픽 베 사냥개, 칼리 사냥개, 하스키, 두베르만, 사냥개) 각각 100장씩이다.
Dog API
창설
프로그램 만들기
1. Dog API에서 학습용 데이터 가져오기
2. CreatemL로 머신러닝 모형 만들기
3. CoreML을 사용하여 추론하는 부분을 만들어 UI와 연결한다.
이번CreatemL의 설치는 매우 간단합니다. 그래서 2를 소개하고 싶습니다.내가 실현하고 싶은 것은 대략 정식 문서와 같다.추론에 사용된 이미지는 UIImagePicker Controller를 사용합니다.
CreatemL을 사용하여 머신 러닝 모델 만들기
나는 실제적으로 Createml을 사용하여 기계 학습 모형을 만들고 싶다.
X code > Open Developer Tool > Create ML
여러 템플릿에서 이미지를 분류하려면 New document을 선택합니다. Image Classification을 선택합니다.
파일 이름과 저장 주소를 결정하면 다음과 같은 화면이 나타납니다.
드래그 앤 드롭을 사용하여 데이터에 학습 데이터를 넣고 Train 키를 누릅니다.
덧붙여 데이터 아래 파라메터스의 부분은 Iteractions가 얼마나 반복 학습하는지를 표시하고, Augmentations는 학습 데이터(Add Noise), 반전 이미지(Flip) 등을 강화하기 위해 소음을 추가할지 지시한다.
네, 상기 순서에 따라 모형을 제작할 수 있습니다.보통 모델을 배울 때는 모델의 네트워크를 선택하거나 슈퍼 파라미터를 가지고 놀아야 한다. 그러면 된다.
너무 간단해...
이렇게 모형이 완성되었다.제작된 모형을 저장하고 다음과 같이 모형을 읽으면 모형으로 추론할 수 있습니다!
let defaultConfig = MLModelConfiguration()
guard let model = try? VNCoreMLModel(for: DogImageClassifier_1(configuration: defaultConfig).model) else { return }
실제로 분류를 해볼게요.우리 샤오춘의 개종은 라브라도이다.
앱으로 샤오춘의 사진을 분류해 주세요.
76.8%로 랩래더로 성공적으로 예측되었습니다!
최후
이번에는 예전부터 만지고 싶었던 코어ML과 크리에이트ML의 강아지 분류기 앱을 만들어 봤다.
나는 생각보다 응용 프로그램에 분류기를 쉽게 설정할 수 있다고 생각한다.
단지 학습이 부족하고 모델의 학습이 간단하며 접촉하는 부분이 적기 때문에 모델의 정확도를 높일 수 없다.
딱한 곳
어려운 부분을 잠시 공유하다.
이번에는 Iteractions 35회로 Augmentations가 없어 실제로 공부하게 했다.
이렇게 하면 아래 그림처럼 정밀도 학습 곡선을 출력할 수 있다.하지만 중간에 끊길 줄 알았어요.
아마도 무슨 장애가 있을 것이다. iteractions는 10번의 학습으로 끝난다.
알아봤는데 공부 부족에도 있는 사람이 있어서 구체적인 해결 방안을 찾지 못했어요.
Reference
이 문제에 관하여(코어ML과 CreatemL을 사용해 개 분류기를 만들어 봤습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kousuke_sumiyasu/items/7b9d8a09b38627f7d562텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)