Tensorflow
- 정의 : google에서 개발하고 공개한 머신러닝/딥러닝 라이브러리
- 별명 : google에서 무료로 풀어놓은 괴물 (크앙)
- Tensor란 무엇인가?
- 데이터를 위한 컨테이너(container)
- 임의의 차원 갯수를 가지는 행렬의 일반화된 모습
- 텐서에서는 차원(dimension)을 종종 축(axis)라고 부른다.
- 텐서의 축 개수를 rank라고도 부른다.
종류 | 차원 | 개념 |
Scalar | 0D rank 0 tensor | 하나의 숫자 |
Vector | 1D rank 1 tensor | 1차원 배열, 연속적인 숫자들의 집합 = 숫자들의 배열 |
Matirx | 2D rank 2 tensor | 2차원 배열, 행렬 형태의 숫자들의 집합 = 벡터의 배열 |
Tensor | 3D rank 3 tensor | 3차원 배열 = 행렬의 배열 |
- 핵심 속성
- 축의 개수(랭크)
- 크기(shape)텐서의 각 축을 따라 얼마나 많은 차원이 있는지를 나타낸 파이썬의 튜플이다.
- 데이터 타입텐서에 포함된 데이터의 타입니다.
- Tensor의 구조
- 텐서들은 graph구조에서 node에서 node로 전달(flow)된다
- 그래프 자료구조는 node와 edge로 구성
- 따라서 node와 edge를 먼저 정의하고 session을 정의!
- 텐서들은 graph구조에서 node에서 node로 전달(flow)된다
Keras
- 파이썬으로 구현된 딥러닝 라이브러리
- 특징
- 모듈화
- 모든 모듈은 독립적으로 실행
- 모델은 시퀀스 또는 그래프 구성
- 간결성
- 간결, 이해하기 쉬움
- 확장성
- 새로운 클래스나 함수로 모듈을 쉽게 추가할 수 있다.
- 모듈화
- 학습과정
- 데이터 생성
- 데이터셋으로부터 train, test, 시험셋을 생성, 포맷, 변환 등
- 모델 구성
- 시퀀스 모델 생성, 레이어 추가
- 케라스 함수 API 사용 가능
- model의 종류
- Sequential : 가장 간단한 레이어 모델
- Sequential 모델로 원하는 레이러를 순차적으로 적재
- 인공 신경망의 입력, 은닉, 출력층 생성
- model의 add()를 이용해 단계 추가
- Dense()
- fully - connected layer 생성
- Sequential : 가장 간단한 레이어 모델
- 모델 학습 과정 설정
- 학습에 대한 설정
- 손실함수, 최적화 방법 정의
- BY compile( )
- compile() : 모델에 오차함수, 최적화 방법, 메트릭 함수 지정
- point는 binary일때는 주로 sigmoid, multi일때는 softmax를 사용한다
- binary일 때 sigmoid를 못 쓰는 것은 아니다. 그러나 주로 sigmoid를 사용한다.
- 모델 학습
- train set으로
- fit
- 모델학습, 오차로부터 매개변수 업데이트
- 학습과정 확인
- 모델 평가
- evaluate( ) : test set으로 모델 평가
- 모델 사용
- predict( ) : 임의값에 대한 모델 출력
- 저장 및 불러오기
- save()
- 인공신경망 모델 저장
- load_model()
- 저장된 모델 불러오기
- save()
- 데이터 생성
'개발 > sk infosec cloud ai 전문가 양성과정' 카테고리의 다른 글
[naive bayes classification] (0) | 2020.10.05 |
---|---|
[파이썬 라이브러리를 활용한 머신러닝 #3] (0) | 2020.09.22 |
[파이썬 라이브러리를 활용한 머신러닝 #2] (0) | 2020.09.13 |
[파이썬 라이브러리를 활용한 머신러닝 #1] (0) | 2020.09.13 |
[MNF 비지도학습] SK infosec 클라우드 AI전문가 양성과정 실습파일 (0) | 2020.09.11 |