GitHub ๋ฌธ์ ๋ ๋ฒ๊ทธ/์ค์น ๋ฌธ์ /๊ธฐ๋ฅ ์์ฒญ์ ๋ํ ๊ฒ์
๋๋ค.
์ปค๋ฎค๋ํฐ์ ์ผ๋ฐ์ ์ธ ์ง์์ StackOverflow ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฒ๊ทธ ๋ฐ ๊ธฐ๋ฅ ์์ฒญ์ ๋ณด๋ค ์ฝ๊ฒ โโ์ฐพ๊ณ ๊ตฌ์ฑํ ์ ์๋๋ก ๋ค์์ผ๋ก ๊ฐ์ฃผ๋๋ ๋ฌธ์ ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
GitHub ๋ฌธ์ ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ฌ๋๋ค์๊ฒ StackOverflow๋ฅผ ์๋ ค์ค๋๋ค.
๋ฒ๊ทธ ๋๋ ์ค์น ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ค์ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ญ์์ค.
๋ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์๋ก ๋ ์ฝ๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋์๊ณผ ์กฐ์ธ.
์ด์ ์ฒด์ : Windows์ Docker
์ค์น๋ CUDA ๋ฐ cuDNN ๋ฒ์ :
( ls -l /path/to/cuda/lib/libcud*
์ ์ถ๋ ฅ์ ์ฒจ๋ถํ์ญ์์ค):
๋ฐ์ด๋๋ฆฌ pip ํจํค์ง์์ ์ค์น๋ ๊ฒฝ์ฐ ๋ค์์ ์ ๊ณตํ์ญ์์ค.
python -c "import tensorflow; print(tensorflow.__version__)"
์ ์ถ๋ ฅ.์์ค์์ ์ค์นํ ๊ฒฝ์ฐ ๋ค์์ ์ ๊ณตํ์ญ์์ค.
git rev-parse HEAD
)bazel version
์ ์ถ๋ ฅ์ฐธ์กฐ๏ผ https://github.com/tensorflow/tensorflow/issues/1269
์ ์ ์ฌํญ์ ๋ฐ๋ผ ๋ค์์ ์๋ํ์ต๋๋ค.
1. tensorflow ๋น๋์ google/protobuf ์น์
์์ coded_stream.h๋ฅผ ์ฐพ๊ณ ๋ค์ ์ค์์ 64๋ฅผ 256์ผ๋ก ์์ ํฉ๋๋ค.
์ ์ ์์ ์ ์ kDefaultTotalBytesLimit = 64 << 20; // 64๋ฅผ 256MB๋ก ๋ณ๊ฒฝ
2. TensorflowImageListener.java์์ input_size๋ง 299๋ก, image_mean์ 128๋ก ์์ ํฉ๋๋ค.
3. android ๋ฐ๋ชจ์์ tensorflow_jni.cc๋ก ์ด๋ํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ์์ ํฉ๋๋ค.
input_tensor_mapped(0, i, j, 0) =
(static_cast<float>(src->red) - g_image_mean)/g_image_mean;
input_tensor_mapped(0, i, j, 1) =
(static_cast<float>(src->green) - g_image_mean)/g_image_mean;
input_tensor_mapped(0, i, j, 2) =
(static_cast<float>(src->blue) - g_image_mean)/g_image_mean;
++src;
std::vector<:pair i="47"> > input_tensors(
{{"๋ฌผ", ์
๋ ฅ_ํ
์}});
ํ์ค::๋ฒกํฐ ํ์ค::๋ฌธ์์ด ์ถ๋ ฅ ์ด๋ฆ({"์ํํธ๋งฅ์ค"});
4. TensorflowImageListerner.java์์ ๋ค์ ๋ณ๊ฒฝ์ ์ํํฉ๋๋ค.
๊ฐ์ธ ์ ์ ์ต์ข
๋ฌธ์์ด MODEL_FILE = "file:///android_asset/retrained_graph.pb";
๊ฐ์ธ ์ ์ ์ต์ข
๋ฌธ์์ด LABEL_FILE =
"file:///android_asset/retrained_labels.txt";
(๋ก๊ทธ ์ฉ๋์ด ํฐ ๊ฒฝ์ฐ ์ฒจ๋ถํ์ผ๋ก ์
๋ก๋ ๋ถํ๋๋ฆฝ๋๋ค.)
08-01 17:36:50.015 14978-15121/org.tensorflow.tensorflowdemo A/native: jni_utils.cc:107 ํ์ธ ์คํจ: message->ParseFromZeroCopyStream(&adaptor)
08-01 17:36:50.015 14978-15121/org.tensorflow.tensorflowdemo A/libc: ์น๋ช
์ ์ธ ์ ํธ 6(SIGABRT), ์ฝ๋ -6 in tid 15121(ImageListener)
Inception v3์ Inception 5h์ ํธํ๋์ง ์๋ ๋ณ์๋ก ์ธํด ์ด๊ฒ์ด ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ๋ Android ๋ฐ๋ชจ ๋ชจ๋ธ์ Inception 5h์ด์ง๋ง ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ จํ๋ ๋ฐ ์ฌ์ฉํ ๋ชจ๋ธ์ Inception 3v์
๋๋ค. https://github.com/tensorflow/tensorflow/issues/1269์ ์ธ๊ธ๋ ๋ณ์๋ฅผ ํธ์งํ๋ ค๊ณ ํ์ต๋๋ค.
ํ์ง๋ง ์ฌ์ ํ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋๊ตฌ๋ ์ง Android ๋ฐ๋ชจ์์ ์คํ๋๋ ์๋ก์ด ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
์ด๋ฐ ์ข ๋ฅ์ ์ง๋ฌธ์ StackOverflow์์ ๋ ์ ๋ฌป์ต๋๋ค. ์ด ํฌ๋ผ์ ๋ฒ๊ทธ ๋ณด๊ณ ๋ฑ์ ์ํ ๊ฒ์ ๋๋ค. ๊ฑฐ๊ธฐ์ 'tensorflow'๋ผ๋ ํ๊ทธ๋ฅผ ๋ถ์ฌ์ ์ง๋ฌธํ์ธ์.
bazel์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ tensorflow makefile ์ ์๋ํด ๋ณผ ์ ์์ต๋๋ค.