github.com/tensorflow/examples/tree/master/lite/examples/digit_classifier/android
최초 git을 통해 clone 후 Android Studio의 프로젝트의 구성은 아래와 같다.
프로젝트 내의 추론용 모델이 없다. 의아하기는 했지만 Pixel 3 에뮬레이터에서 실행해보았다. 아래 구성처럼 assets 폴더 하위에 mnist.tflite 파일이 생성되어 있다. 어느 시점에 다운로드하는 것인가 궁금점이 생겨서 디버깅하였다.
build.gradle를 확인해보니 아래와 같은 구문이 있다. build 타임에 model을 다운로드하는 것으로 추측된다.
// import DownloadModels task
project.ext.ASSET_DIR = projectDir.toString() + '/src/main/assets'
// Download default models; if you wish to use your own models then
// place them in the "assets" directory and comment out this line.
//apply from: "download_model.gradle"
apply from:'download_model.gradle'
다음으로 download_model.gradle 확인해보았다. 아래와 같이 assebleDebug task에 종속 task로 download_model.gradle task를 실행하게 되어 있다.
task downloadModelFile(type: Download) {
src 'https://storage.googleapis.com/download.tensorflow.org/models/tflite/digit_classifier/mnist.tflite'
dest project.ext.ASSET_DIR + '/mnist.tflite'
overwrite false
}
tasks.whenTaskAdded { task ->
if (task.name == 'assembleDebug') {
task.dependsOn 'downloadModelFile'
}
if (task.name == 'assembleRelease') {
task.dependsOn 'downloadModelFile'
}
}
assembleDeubg Task 가 동작할 때 downloadModelFile Task를 실행시켜 mnist.tflite 모델을 다운로드하게 구성되어 있다. tensorflow hub에 있는 이미 훈련된 데이터를 다운로드하게 되어있다. 이런 식으로 가능하구나.. 궁금한 것 중 하나였는데 서버에 있으니 흠 ㅇㅇ; 아무튼 task에서 저런 식으로 처리할 수 있다는 것을 알 수 있었다.
유전 알고리즘으로 그림 그리기 (0) | 2021.04.27 |
---|---|
딥러닝 추론 (2) | 2021.04.23 |
CartoonGAN 실습 (5) | 2021.04.12 |
tensorflow' has no attribute 'ConfigProto' (0) | 2021.04.07 |
STYLE TRANSFER (0) | 2021.04.02 |
댓글 영역