일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 대학원 급여
- 활성화 함수
- 의료 ai 대학원 월급
- 로스트아크
- C# 프로젝트
- python
- 인공지능
- 딥러닝 실험 깃 버전관리
- 인공지능 깃 버전관리
- pandas
- 자바
- 영화 api
- 경사하강법
- 디자인 패턴
- 디자인패턴
- 통계학
- MLP
- 머신러닝
- 딥러닝
- API
- Dehaze
- DCP
- 파이썬
- 자바 영화 api
- 대학원 월급
- 파이썬 경사하강법
- 백준
- 자바 프로젝트
- 코딩테스트
- 정규화
Archives
- Today
- Total
대학원 일기
케라스 창시장에게 배우는 딥러닝 3장 본문
Chapter 3. 케라스 텐서플로 소개
컴파일 단계 : 학습과정 설명(p136 내용)
-
모델 구조 정의
-
손실함수 (keras.optimizers.손실함수)
-
옵티마이저 (keras.losses.옵티마이저함수)
-
측정 지표 (keras.metrics.측정 지표)
-
-
keras
-
.compile()
-
아래쪽에 예시코드 적은것 잇어요
-
층(Layer)
-
page 130 - 층의 구조
-
Page 132
-
안나올 것 같기는 한데... 혹시나 정방향 패스를 정의해라고 하면 여기 페이지 보시면 됩니다
-
def call(self,inputs) 부분
-
input 이랑 W 내적하고 bias를 더해주고, 선언한 acitivation있으면 activation 함수까지 거친 값을 return
-
-
-
-
page 133
-
Sequantial로 Dense layer 만드는 코드
-
-
층은 핵심 클래스인데 무엇을 캡슐화한 객체일까요?
-
가중치(상태)
-
연산(정방향 패스)
-
fit 메소드 (p139)
-
구성
-
입력 샘플(numpy 배열)
-
훈련 타깃(numpy 배열)
-
epochs
-
batch_size
-
-
반환 객체
-
history객체(딕셔너리)
-
이전에 history1 = model.fit(~arg) 했던거 기억하시나요.... 그럼 쓸 때 history1.history['key값 뭐 예를 들면 loss같은..'`이렇게 쓸 수 있어요
-
-
-
numpy array와 tensor의 차이점 : tensor에는 값을 할당 할 수 없다. 즉 텐서는 상수이다. ->이를 해결하기위해 변수가 존재 (tf.Variable 사용)
-
층호환 (layer compatibility) : 모든 층이 특정 크기의 입력 텐서만 받고, 특정 크기의 텐서만 반환하는 것
-
코드 문제,,,
-
adam, sparse_categorical_crossentropy, accuracy 를 사용한 complie method 를 작성해 보시오.
model.compile(optimizer = 'adam',
loss = 'sparse_categorical_crossentropy',
metrics = ['accuracy'])
텐서플로의 핵심 객체
-
텐서
-
변수
-
텐서연산
-
덧셈, relu, matmul
-
-
그레이디언트 테이프
-
자동 미분(automatic differentiation)을 수행하기 위한 도구
-
딥러닝 모델을 학습할 때, 주로 역전파(backpropagation) 알고리즘을 사용하여 그래디언트(gradient)를 계산하는 데에 활용
-
gradinet = tape.gradient(loss, weights) : 가중치에 대한 모델 손실의 그레디언트를 계산
-
input_var = tf.Variable(initial_value=3.)
with tf.GradientTape() as tape:
result = tf.square(input_var)
gradient = tape.gradient(result, input_var)
-
자동 미분을 수행할 때, 기본적으로는 변수(Variable)를 자동으로 감시하고 해당 변수들에 대한 그래디언트를 계산
-
변수가 아닌 , 상수를 감시하려면 직접 지정해줘야 함
-
tape.watch()
-
특정 텐서(변수나 상수)를 감시(watch)하도록 지정
-
GradientTape 내부에서 감시되지 않은 텐서에 대한 그래디언트를 계산하려고 시도하면 TensorFlow는 그래디언트를 찾을 수 없다는 의미로 None 을 반환
-
다시 말하면, tape.watch(x) 를 사용하지 않으면 tape 가 x 를 감시하지 않아서 x 에 대한 그래디언트를 계산할 수 없게 됨
-
input_const = tf.constant(3.)
with tf.GradientTape() as tape:
tape.watch(input_const) # 상수에 대한 tape.watch
result = tf.square(input_const)
gradient = tape.gradient(result, input_const)
tf.constant는 TensorFlow에서 상수(constant) 텐서를 생성하는 함수 이 함수를 사용하여 생성된 텐서는 값이 변경되지 않는 상수로, 모델의 가중치처럼 학습 중에 업데이트되지 않음 모델의 가중
'AI > 인공지능 기초' 카테고리의 다른 글
케라스 창시장에게 배우는 딥러닝 5장 (0) | 2023.12.12 |
---|---|
케라스 창시자에게 배우는 딥러닝 2장 (1) | 2023.12.06 |
모델 저장과 콜백 (1) | 2023.12.06 |
딥러닝 모델 학습 (0) | 2023.12.06 |
딥러닝 구조와 모델 (0) | 2023.12.06 |
Comments