본문 바로가기
TensorFlow OpenCV

TensorFlow epoch, batch 2018. 9.

by BABEL-II 2019. 10. 5.

TensorFlow 예제 소스를 기반으로 한 번 살펴보아요.

여기에는 미니배치나 이터레이션에 대해서는 말할 부분이 없네요?

이터레이션에 대해서 뭐 꼭 있어야 하나? ???

 

// 이렇게 하고 주석 붙이는 것은 파이썬에서는 오류가 납니다.

// 쉽게 표시하려고 이렇게 한 것 뿐이에요!!

 

with tf.Session() as sess: // 자 일단 세션 가지고 시작하자....

   sess.run(init) // 이건 뭐 초기화 하는 것이죠?

   for epoch in range(training_epochs): // 이게 가장 바깥쪽 루프에요. 아하.. epoch는 세상이 한 번 도는 것

                                             // training_epochs는 그럼 뭐냐?? 앞에서 그냥 줬습니다. 한 200번

                                             // 돌으라고 시켰더군요. epoch가 아마 세상의 시작이던가?

      avg_cost = 0. // 평균 비용인데 각 epoch 안에 있는 것을 보니. 한번의 epoch 마다 계산하는군요.

      total_batch = int(mnist.train.num_examples/batch_size) // 자 궁금하시던 배치 이야기 나옵니다.

                                                                     // 뭐다? 샘플 갯수 / 배치 사이즈 = 배치 갯수

                                                                     // 배치는 뭐다? 뭐긴 데이터 크니까 쪼개서 학습하는

                                                                     // 한 덩어리.

      for i in range(total_batch): // 쪼갠 덩어리 하나씩 가져다가 학습하려면 배치 갯수만치 돌려야지?

         batch_xs, batch_ys = mnist.train.next_batch(batch_size) // 으흥!! 데이터 내놔!! 한 번에 배치 크기만치!!

         sess.run(optimizer, feed_dict={X:batch_xs, Y:batch_ys}) // 요것이 학습하는 거에욤. 옵티마이저, 달려라~

         avg_cost += sess.run(cost, feed_dict={X:batch_xs, Y:batch_ys})/total_batch // 이 문장은 설명 안 할꼬얌

      if epoch % display_step == 0: // epoch마다 출력하면 정신 사나우니까.

         print ("Epoch", "%04d" % (epoch+1), "cost=", "{:.9f}".format(avg_cost)) // 출력 조건이 되면 결과 보여주고.

   print ("Optimization finished") // 자 끝났어요?

 

이것 보고 이해가 어려우면 5번 더 보시고

그래도 무슨 말이야 싶으시면

업종 전환하시면 됩니당.

 

  •