일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cuda
- LISP
- 인공지능
- tensorflow
- 계곡 펜션
- CUDA9.0
- 지리산 둘레길
- Python
- 텐서플로 설치
- 지리산 펜션
- 오봉 계곡
- anaconda tensorflow
- 산청 황토 펜션
- ubuntu
- 하늘숲펜션
- 지리산 황토 펜션
- 하늘숲 황토 펜션
- python yield
- 파이썬 GUI
- 출근 전날
- LISP 함수
- tensorflow 설치
- 파이썬
- machine learning
- 황토펜션
- 전용 계곡
- 하늘숲황토펜션
- 아나콘다 텐서플로
- HTML
- 파이썬 yield
- 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형태가 비슷한 텐서
-기존의 형태를 바탕으로 텐서 변수를 초기화 하는방법12zeros_similar
=
tf.zeros_like(constant_tsr)
ones_similar
=
tf.ones_like(constant_tsr)
순열 텐서
- 구간을 지정하는 방식으로 텐서 선언1234# 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
- Normal distribution1randunif_tsr
=
tf.random_uniform([row_dom, col_dim], minval
=
0
, maxval
=
1
)
#minval <= x < maxv
-배열 섞을 때123random_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
12shuffled_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 생성 및 사용 예제
1234my_var
=
tf.Variable(tf.zeros([
2
,
3
]))
sess
=
tf.Session()
initialize_op
=
tf.global_variables_initializer()
sess.run(initialize_op)
-Placeholder 생성 및 사용 예제
12345sess
=
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})
-다른 변수의 초기화 결과를 이용하기
12345sess
=
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() 함수 등 여러가지 기능을 제공한다.
12345identity_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.
]]))
123456789101112#곱하기
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 |