2021. 8. 27. 14:50ใMachine Learning, Deep Learning/Jupyter Notebook
๋ฐ์ดํฐ ๋ถ์ ๋ถ์คํธ์ฝ์ค ํ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋จธ์ ๋ฌ๋์ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉํ์ต๋๋ค.
๋ชจ๋ธ ์ ํ๋๋ฅผ 95%๊น์ง ์ฌ๋ฆฌ๊ณ ๋๋ ์ด ๋ชจ๋ธ์ ์ด์ฉํด์ ๋จ์ํ ํ๋ก์ ํธ์ฑ ์ฑ์ ํ๋ ๋ง๋ค๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
CoreML์ ์ง์ ์ฌ์ฉํด๋ณด๊ธฐ๋ ํ ๊ฒธ, scikit์ Linear Regression์ ์ ์ฉํด ํ์ตํ ๋ชจ๋ธ์ .mlmodel๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋ด์๋ณด์์ต๋๋ค.
0. CoreML๋ก ์ ์ฅํ๊ธฐ ์ํด coremltools ์ค์น ์งํ
condaํ๊ฒฝ ์ ๋ฌด์ ๋ฐ๋ผ ๋ช ๋ น์ด๊ฐ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค.
<anaconda๋ฅผ ํตํด>
conda install -c conda-forge coremltools
<pip ํตํด>
pip install coremltools==5.0b3
=> https://github.com/apple/coremltools ์์ ๊ฐ์ฅ ์ต๊ทผ ๋ฒ์ ์ ๊น๋ ๋ช ๋ น์ด๊ฐ ๋ฐ๋ก ์๋ ๊ฒ ๊ฐ์์ ์ด ๋ช ๋ น์ด๋ฅผ ์ฒจ๋ถํ์ต๋๋ค. ๊ตฌ๊ธ๋ง ํด๋ณด์๋ฉด ๊ทธ๋ฅ pip install coremltools ๋ก ํ๊ธฐ๋ ํฉ๋๋ค.
1. Jupyter Notebook - Conda ํ๊ฒฝ์ coreML ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
model = LinearRegression() #์ ํ ํ๊ท model
import coremltools
core_ml_model = coremltools.converters.sklearn.convert(model) #convertํ๊ธฐ ์ํ ๊ณผ์
NameError: name '_tree' is not defined ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ตฌ๊ธ๋ง์ ํด๋ณด๋, ์ด๊ฒ scikit ๋ฒ์ ์ coremltool์ด ์ง์์ ๋ชปํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํฉ๋๋ค.
sklearn์ ํ์ฌ ์ต์ ๋ฒ์ ์ด 0.24.1์ธ๋ฐ์, coremltools์ด ํ์คํ ์ง์ํ๋ ๊ฑด sklearn 0.19.2์ ๋๋ค.
๊ทธ๋์ conda์์ sklearn์ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ํ๋ ค๊ณ ํ๋๋
sklearn 0.19.2๋ ๋.. Python3๋ฅผ ์ง์ํ์ง ์์ผ๋ ์๋ก์ด ๊ฐ์ํ๊ฒฝ์ ๋ง๋ค๋ผ๋ ์๋ฌ๊ฐ ๋น๋๋ค.
๊ฐ์ํ๊ฒฝ์ ์๋ก ๋ง๋๋๊ฒ ํธํ์๋ค๋ฉด ํ์ด์ฌ ๋ฒ์ ์ ์๋ฌ ๋ฉ์ธ์ง์์ ๋์ค๋๋๋ก ๋ฎ์ถฐ์ฃผ์๊ณ ์งํํ๋ ๊ฒ๋ ๋์์ง ์์ ๊ฒ ๊ฐ๊ธด ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ ๋ ๊ตฌ๊ธ ์ฝ๋ฉ์ผ๋ก ๋ฐฉํฅ์ ํ์์ต๋๋ค.
2. Colab์์ scikit ๋ค์ด ๊ทธ๋ ์ด๋ + coremltools ์ค์นํ๊ธฐ
Google Colab์ ์ด๋ ๊ฒ ํ ๋ฒ Run ํ ๋๋ง๋ค ์๋ก ์ค์น๋ฅผ ํด์ค์ผ ํ๋ค๋ ๊ฒ ๋จ์ ์ด์ ์ฅ์ ์ด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ค์ด๊ทธ๋ ์ด๋ ๋ฒ์ ์ ์ค์นํ๊ณ coremltools๋ ์ค์นํฉ๋๋ค.
Google Colab์ conda ํ๊ฒฝ์ด ์๋๋ ๋ช ๋ น์ด๊ฐ pip์ ๋๋ค.
!pip install --force-reinstall 'scikit-learn==0.19.2'
3. Convert ํ๊ณ ์ ์ฅํ๊ธฐ
model = LinearRegression() #์ ํ ํ๊ท model
import coremltools
coreml_model = coremltools.converters.sklearn.convert(model) #convertํ๊ธฐ ์ํ ๊ณผ์
coreml_model.save('/MyModel.mlmodel')
์ด๋ convert(model, input ์ด๋ฆ๋ค, output์ด๋ฆ)์ด ์ธ์๋ก ๋ค์ด๊ฐ๋๋ค. ํ๋จ์์ mlmodel ํ์ผ์ ์ด์ด๋ณด๋ฉด ์ดํด๊ฐ ๋์ค ๊ฒ๋๋ค.
save('~๊ฒฝ๋ก/๋ด๋ชจ๋ธํ์ผ์ด๋ฆ.mlmodel')๋ก ์ ์ฅ์ ํด์ฃผ๋ฉด
๊ทธ ๊ฒฝ๋ก์ mlmodel ํ์ผ์ด ์์ฑ๋ฉ๋๋ค!!
์ด์ฌ๋ณด๊ฒ ๋๋ฉด
์์ ๋ง์๋๋ฆฐ input๊ณผ output์ด ๋ช ์๋์ด ์์ฃ .
Description ๊ฐ์ ๋ถ๋ถ์ ์ค๋ช ๋ ์ฝ๋๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ด์ ์ด mlmodel๋ฅผ xcode ํ๋ก์ ํธ์ ์ฐ๊ฒฐํด์ ๋ชจ๋ธ์ ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค(๋ค์ ํฌ์คํ ์์ ~.~)