[골빈해커 Chapter5 정리]
[개념 정리]
chapter4의 예제 포유류 조류 파일을 csv로 저장한 후 작업 환경에서 읽어온다.
data = np.loadtxt('./data.csv', delimiter = ',', unpack = True, dtype = 'float32')
#loadtxt의 unpack 매개변수 : 한 열을 쭉 읽어와 행으로 변환
#loadtxt의 transpose 매개변수 : 전치 행렬을 제작
은닉망을 늘릴땐, 전층의 은닉층 개수를 물려받아 사용하며
최정 출력 은닉망은 결과로 분류될 클래스 개수로 정의한다.
#주의할 점
신경망의 계층 수와 은닉층 뉴런수를 늘리면 복잡도가 높은 문제를 해결하는데 도움을 준다.
그러나 많이 늘릴 수록 과적합 문제에 빠질 수 있다.
global_step 생성이유 : 학습 마다 과정을 1씩 증가시키기 위함.
모델을 다시 불러와 사용할 때, 어느정도 학습 시켰는지 알기 위함.
저장된 모델 불러오기
from google.colab import drive
drive.mount('/content/drive')
ckpt = tf.train.get_checkpoint_state('/content/drive/My Drive/Colab Notebooks/hacker_deepLearning/model')
if ckpt and tf.train.checkpoint_exists(skpt.model_checkpoint_path):
saver.restore(sess, skpt.model_checkpoint_path)
else:
sess.run(tf.global_variables_initializer())
#코렙에서 구글 드라이브에 있는 모델 폴더에 접근하고 싶을때 연결을 위한 drive import
saver.save(sess, '/content/drive/My Drive/Colab Notebooks/hacker_deepLearning/model/dnn.ckpt', global_step = global_step)
#학습한 모델을 구글 드라이브에 다시 저장하고 싶을 때 또한 마찬가지로 경로 설정을 해준다.
[Method 정리]
cost = tf.reduce_mean(
tf.nn.softmax_cross_entropy_with_logits_v2(labels = Y, logits = model)
)
#cross_entropy함수 logits_v2를 추가 시켜야한다. - 버전2
optimizer = tf.train.AdamOptimizer(learning_rate = 0.01)
#GradientDescentOptimizer 보다 성능이 좋은 Adam을 사용하여 경사하강법을 진행한다.
saver = tf.train.Saver(tf.global_variables())
#tf.train.Saver()을 통하여 변수를 저장한다.
ckpt = tf.train.get_checkpoint_state('/content/drive/My Drive/Colab Notebooks/hacker_deepLearning/model')
#지정 경로에 모델에 관해 checkpoint가 있는지 확인.
[코렙으로 텐서 보드 실행]
정말 찾아도 잘 이해가 가지 않고 공부하며 알아보고 있습니다.
코렙으로 텐서보드를 돌리기란..
제가 찾아보며 알게된 링크를 첨부합니다.
https://github.com/mixuala/colab_utils