[Deep learning] Gradient Descent Optimizer

이미지
https://icim.nims.re.kr/post/easyMath/70 알기 쉬운 산업수학 알기 쉬운 산업수학 Gradient Descent Optimizer 2017년 12월 13일(수) | 김민중 URL  (1) 주어진 목적함수  f f 의 최솟값(minimum)을 찾아가는 알고리즘으로 다음과 같은 방식으로 최솟값을 찾아간다. 초기값  x 0 x 0 을 임의로 설정, 적당한 Learning rate  α α  설정 n ≥ 0 n ≥ 0 인 정수에 대해서  x n + 1 x n + 1 은 다음과 같이 정의한다. x n + 1 : = x n − α ⋅ ∇ f ( x n ) x n + 1 := x n − α ⋅ ∇ f ( x n ) 주의사항 함수 f f 의 모양이 convex가 아닌 경우 global minimum이 아닌 local minimum으로  x n x n 이 수렴할 가능성이 있다. Learning rate  α α  값이 큰 경우 최솟값으로  x n x n 이 수렴하는 것이 아니라 발산할 수 있다. Learning rate  α α  값이 작은 경우 수렴하는 속도가 지나치게 느릴 수 있다. 방정식  2 ⋅ x = 10 2 ⋅ x = 10  의 근을 Gradient Descent를 이용해서 찾아보자. 목적함수  f ( x ) : = ( 10 − 2 x ) 2 f ( x ) := ( 10 − 2 x ) 2 으로 설정하겠다( f f 의 최솟값인 0이 되게 하는  x x 값이 우리가 원하는 방정식의 근이다). 초기값  x 0 = 0 x 0 = 0 , Learning rate  α = 0.05 α = 0.05 으로 설정 f ′ ( x ) = 4 ( 2 x − 10 ) f ′ ( x ) = 4 ( 2 x − 10 ) 이므로  x 1 x 1 은 다음과 같이 구할 수 있다. x 1 = x 0 − α ⋅ f ′ ( x 0 ) = 0 − 0.05 ⋅ ( − 40 ) = 2 x

[Tensorflow][Mobile][Windows] TensorFlow for Poets 2: TFMobile

1. Install TensorFlow

https://sunggukim.blogspot.kr/2018/05/tensorflow-install-tensorflow-with.html


2. download source for TFMobile for Poets2

git clone https://github.com/googlecodelabs/tensorflow-for-poets-2

cd tensorflow-for-poets-2

git checkout end_of_first_codelab

dir tf_files/


3. test model

python -m scripts.label_image \
  --graph=tf_files/retrained_graph.pb  \
  --image=tf_files/flower_photos/daisy/3475870145_685a19116d.jpg



4. Optimize model

python -m tensorflow.python.tools.optimize_for_inference \
  --input=tf_files/retrained_graph.pb \
  --output=tf_files/optimized_graph.pb \
  --input_names="input" \
  --output_names="final_result"


5. Quantize weights

python -m scripts.quantize_graph \
  --input=tf_files/optimized_graph.pb \
  --output=tf_files/rounded_graph.pb \
  --output_node_names=final_result \
  --mode=weights_rounded


6. Check compress rate

gzip -c tf_files/rounded_graph.pb > tf_files/rounded_graph.pb.gz

gzip -l tf_files/rounded_graph.pb.gz
         compressed        uncompressed  ratio uncompressed_name
            1633131             5460032  70.1% tf_files/rounded_graph.pb


7. Compare two models : less then one tenth of a percent

python -m scripts.label_image \
  --image=tf_files/flower_photos/daisy/3475870145_685a19116d.jpg \
  --graph=tf_files/optimized_graph.pb
python -m scripts.label_image \
  --image=tf_files/flower_photos/daisy/3475870145_685a19116d.jpg \
  --graph=tf_files/rounded_graph.pb



8. Download additional data for a full set of photos. [ 200MB ]

curl http://download.tensorflow.org/example_images/flower_photos.tgz \

| tar xz -C tf_files



9. Evaluate performance

python -m scripts.evaluate  tf_files/optimized_graph.pb

python -m scripts.evaluate  tf_files/rounded_graph.pb


10. Customize app

Source : tensorflow-for-poets-2\android\tfmobile

10-1. Open source with Android Studio.

10-2. Update  graph.pb and labels.txt to  android/tfmobile/assets

copy ./tf_files/rounded_graph.pb  ./android/tfmobile/assets/graph.pb
copy ./tf_files/retrained_labels.txt  ./android/tfmobile/assets/labels.txt 


11. Change the output_name in ClassifierActivity.java

 private static final String INPUT_NAME = "input";
  private static final String OUTPUT_NAME = "final_result";



<Reference>
https://codelabs.developers.google.com/codelabs/tensorflow-for-poets-2/#
https://www.tensorflow.org/install/
https://towardsdatascience.com/north-indian-food-or-south-indian-food-deep-learning-knows-it-all-part-2-14a59d0ffc15
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
https://towardsdatascience.com/tensorflow-on-mobile-tutorial-1-744703297267


댓글

댓글 쓰기

이 블로그의 인기 게시물

@import' when modules are disabled

MagicaVoxel black screen

[Iphone][build error] pngcrush caught libpng error: PNG unsigned integer out of range.