일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬 yield
- anaconda tensorflow
- 황토펜션
- 하늘숲황토펜션
- tensorflow 설치
- 하늘숲 황토 펜션
- 출근 전날
- HTML
- Python
- 파이썬 GUI
- 파이썬
- 지리산 펜션
- LISP
- tensorflow
- 아나콘다 텐서플로
- 전용 계곡
- LISP 함수
- 산청 황토 펜션
- 오봉 계곡
- 하늘숲펜션
- 계곡 펜션
- cuda
- 텐서플로 설치
- python yield
- 지리산 황토 펜션
- 지리산 둘레길
- ubuntu
- CUDA9.0
- machine learning
- 인공지능
- Today
- Total
YongWook's Notes
Tensorflow Machine Learning Cookbook 정리 본문
본 포스팅은 Tensorflow Machine Learning Cookbook 교재로 공부한 내용을 재구성하였음을 미리 밝힙니다.
-
텐서플로우 동작 방식
시작
-> 데이터셋 가져오기 또는 생성하기
-> 데이터 변환 및 정규화
-> 데이터셋을 학습셋, 테스트셋, 검증셋으로 분할
-> 알고리즘 매개변수 설정
-> 변수 및 플레이스홀더 초기화
-> 모델구조 정의
-> Loss Function 선언
-> 모델 초기화 및 학습
-> 모델 평가
-> Hyperparameter 조정
-> 적용 및 새로운 결과 예측
-> 끝 - 텐서 정의
고정텐서
- 0값으로 채워진 텐서 : zero_tsr = tf.zeros([row_dim, col_dim])
- 1값으로 채워진 텐서 : ones_tsr = tf.ones([row_dim, col_dim])
- 동일한 상수로 채워진 텐서 : filled_tsr = tf.fill([row_dim, col_dim], 42) #42값으로 채움
- 기존 상수를 이용할 때 : constant_tsr = tf.constant([1, 2, 3]) - useless형태가 비슷한 텐서
-기존의 형태를 바탕으로 텐서 변수를 초기화 하는방법zeros_similar = tf.zeros_like(constant_tsr) ones_similar = tf.ones_like(constant_tsr)
순열 텐서
- 구간을 지정하는 방식으로 텐서 선언# result : [0.0, 0.5, 1.0] <- start와 stop값에 float만 들어감 linear_tsr = tf.linspace(start=0.0, stop=1.0, num=3) # result : [6, 9, 12] <- integer값 가능 integer_seq_tsr = tf.range(start=6, limit=15, delta=3)
랜덤 텐서 - Uniform distribution
randunif_tsr = tf.random_uniform([row_dom, col_dim], minval=0, maxval=1) #minval <= x < maxv
- Normal distribution
random_str = tf.random_normal([row_dim, col_dim], mean=0.0, stddev=1.0) #특정 범위에 속하는 정규 분포 임의의 값을 생성하고 싶을 때 runcnorm_tsr = tf.truncated_normal([row_dim, col_dim], mean=0.0, stddev=1.0
-배열 섞을 때
shuffled_output = tf.random_suffle(input_tensor) cropped_output = tf.random_crop(input_tensor, crop_size)
numpy배열을 tensor로
-convert_to_tensor()를 이용하자.
-
Place Holder 및 Variable사용
어떠한 데이터가 placeholder에 해당하는지 variable에 해당하는지 파악하는 것이 중요하다. variable은 알고리즘에 속한 매개변수. placeholder는 특정 타입과 형태의 데이터를 투입하게 될 객체.
Variable 생성 및 사용 예제
my_var = tf.Variable(tf.zeros([2,3])) sess = tf.Session() initialize_op = tf.global_variables_initializer() sess.run(initialize_op)
-Placeholder 생성 및 사용 예제
sess = tf.Session() x = tf.placeholder(tf.float32, shape=[2,2]) y = tf.identity(x) x_vals = np.random.rand(2,2) sess.run(y, feed_dict={x: x_vals})
-다른 변수의 초기화 결과를 이용하기
sess = tf.Session() first_var = tf.Variable(tf.zeros([2,3])) sess.run(first_var.initializer) second_var = tf.Variabel(tf.zeros_like(first_var)) sess.run(second_var.initializer)
- 행렬 다루기
행렬 연산은 매우 중요하다. Tensorflow에서는 numpy배열 뿐만 아니라 diag() 함수 등 여러가지 기능을 제공한다.
identity_matrix = tf.diag([1.0, 1.0, 1.0]) A = tf.truncated_normal([2, 3]) B = tf.fill([2, 3], 5.0) C = tf.random_uniform([3, 2]) D = tf.convert_to_tensor(np.array([[1., 2., 3.], [-3., -7., -1.], [0., 5., -2.]]))
#곱하기 print(sess.run(tf.matmul(B, identity_matrix))) #행렬 인자 전치 print(sess.run(tf.transpose(C))) #행렬식(determinant) 구하기 print(sess.run(tf.matrix_determinant(D))) #역행렬 구하기 print(sess.run(tf.matrix_inverse(D))) #숄레스키 분해 print(sess.run(tf.cholesky(identity_matrix))) #행렬 고윳값 & 고유 벡터 print(sess.run(tf.self_adjoint_eig(D)))
'-software > AI' 카테고리의 다른 글
딥러닝 환경 구축하기 (Tensorflow) - 2. 사용 (2) | 2018.12.09 |
---|---|
딥러닝 환경 구축하기 (Tensorflow) - 1. 설치 (0) | 2018.12.09 |
<논문정리> Delving Deeper Into Convolutional Networks for learning Video Representation (2) | 2017.05.16 |
<인공지능> Multiple-Object Detection (3) Fast R-CNN (4) | 2017.04.05 |
<인공지능> Multiple-Object Detection (2) - SPP-Net (1) | 2017.03.14 |