텐서플로로 구현하는 딥러닝과 강화학습 2장
ivis 이영록
TensorFlow 소개
• 텐서플로우(TensorFlow)는 기계 학습과 딥러닝을 위해 구글에서 만든 오픈소스 라이브러리입니다.
•데이터 플로우 그래프를 통한 풍부한 표현력
• 코드 수정 없이 CPU/GPU 모드로 동작
• 아이디어 테스트에서 서비스 단계까지 이용 가능
• 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리
• Python/C++를 지원하며,
SWIG
를 통해 다양한 언어 지원 가능•
http://www.tensorflow.org
에 풍부한 레퍼런스가 있슴TensorFlow의 자료형
• 상수
• 상수를 저장하는 데이타 형이다.
• a = tf.constant([5],dtype=tf.float32)
• b = tf.constant([10, 5],dtype=tf.float32)
• c = tf.constant(2,dtype=tf.float32)
tf.constant(
value,
dtype=None, shape=None, name='Const',
verify_shape=False
)
TensorFlow의 Graph
• tensorflow는 연산과정을 그래프 형태로 표현
• 그래프는 노드와 엣지로 이루어진 자료구조
• d=a*b+c 라고 하면 tensorflow에서는 계산을 수행하는 것이 아니고 그래프를 생성
TensorFlow의 Session
• tensorflow는 Session 안에 그래프를 만들고 실행함
d = a * b + c
sess = tf.Session() #session 생성
sess.run(d)
TensorFlow의 자료형
• placeholder
• 입력데이터 연결을 위한 일종의 통로
• 피딩(feeding)이라는 방법으로 데이터 바인딩
• x = tf.placeholder(dtype=tf.float32)
tf.placeholder(
dtype,
shape=None, name=None )
input_data = [1,2,3,4,5]
x = tf.placeholder(dtype=tf.float32) y = x*a
sess = tf.Session()
result = sess.run(y,feed_dict={x:input_data})
print(result)
TensorFlow의 자료형
• 변수
• 트레이닝시 값이 변하는 weight와 bias에 사용
• var = tf.Variable(1)
• b = tf.constant([5], dtype=tf.float32)
• 변수는 초기화를 꼭 해줘야함
__init__(
initial_value=None, trainable=True,
collections=None, validate_shape=True, caching_device=None, name=None,
variable_def=None, dtype=None,
expected_shape=None, import_scope=None, constraint=None )
init = tf.global_variables_initializer()
sess.run(init)
TensorBoard
• tensorboard는 tensorflow를 이용해서 학습할때 각종 지표들이 어떻게 변화하는지 시각화
• 학습과정을 시각화 하려면 학습중에 시각화 하려는 데이터를 tf.summary 모듈을 이용해서 파일에 저장해 두었다가 텐서보드 를 통해서 시각화