본문 바로가기
국비교육기관/수업

88일차 Deap Learning 모델 생성, loss, Dense

by 밀키스 2021. 7. 13.

21.07.13

 


 Deap Learning 

 

 

@ Sequential Model - Dense 

# add() : 신경망에 설계한 층을 추가하는 기능
model = Sequential()

# 입력층
model.add(Dense(units=512, input_dim = 784, activation = 'relu'))

# 은닉층
model.add(Dense(256,activation = 'relu'))

# 출력층
model.add(Dense(10, activation='softmax'))

Dense() : 층(퍼셉트론으로 구성된 층)을 설정 - 입력층, 은닉층, 출력층

  • 입력층 : 특성을 입력받는 기능
  • 은닉층 : 입력받은 특성으로부터 새로운 특성을 추출하는 기능
  • 출력층 : 은닉층의 결과를 출력하는 기능

add() : 신경망에 설계한 층을 추가하는 기능

  • units : 해당 층의 출력의 수 (층에 배치된 퍼셉트론의 수), 코드블럭과 같이 생략하여 숫자만 적어도 무방
  • input_dim : 입력 수 (특성의 수), 입력층에만 입력
  • activation : 활성화 함수 (대부분 출력층을 제외하고는 relue를 사용)

출력층의 activation

  • 회귀분석 : linear를 쓰거나 activation을 안씀
  • 이진분류 : sigmoid, 혹은 y를 원핫인코딩 하였을 때 softmax를 사용.
    • sigmoid와 softmax의 차이점은, sigmoid의 경우 단순히 0이냐 1이냐를 판단하지만, softmax의 경우 1인 경우와 0인 경우의 확률을 뱉어낸다.
  • 다진분류 : softmax ( y를 반드시 One-hot Encoding하고나서 써야함)

 

 

 


% summary() 

  • 출력층의 Param 값은 2570개인데 이에 대한 부분을 계산하는 방법은 입력 * 출력 + 출력 이다.

 

 


@Model의 compile 

 

model.compile(loss = 'categorical_crossentropy',
             optimizer = 'adam', metrics = ['accuracy'])
  • loss : 손실함수 / 비용함수
    • 회귀분석 : mse 또는 mean_squared_error
    • 이진분류 : binary_crossentropy
    • 다진분류 : categorical_crossentropy
    • sparse_categorical_crossentropy : 원핫인코딩 안한 경우에 원핫 인코딩을 해줌
  • optimizer : 경사하강법의 종류 (rmsprop, adam)
  • metrics : 평가 방법 (분류 : accuracy, 회귀분석 : metrics를 사용하지 않음)

 

 


@ DataFrame 붙히기 

위와 같은 DataFrame을 오려서 하나의 DF로 만들려고 한다.

아래에 보인 방법은 그저 concat을 쓴것과, iloc / loc로 한 열씩 일일이 적어준 그 차이일 뿐이다.

 

 


%concat 활용 

  • 위의 방법은 concat을 사용하였다.
  • axis를 1로 준것은 가로 방향으로 붙힌것.
  • 주지 않으면 (Default는 0) 세로로 붙혀버린다.
  • index는 "추첨일"로 주었다.

 

 

 


% iloc / loc 활용 

  • 이번에는 해당 DataFrame에서 필요한 Column만 잘라서 일일이 적어주었다.
  • index는 "일시" 열로 주었다.

 

 

 


% 2개의 DataFrame 붙히기 

이번에는 위에서 만든 2개의 DataFrame에서 일시와 추첨일이 동일한 행만 가져와서 붙힌

 

  • 2개의 DF를 concat으로 붙히는것은 동일하다.
  • 다만, join이란 부분에 inner를 주어 두 DF에 동일한 행 인덱스를 갖는 행만 가져와서 붙혀준다.
  • ㅁㄴㅇ

ㅁㄴㅇㅁㄴㅇㅁㄴㅇㅁㄴㅇ

asd

asd

 

 

 


%GEMM Error 

위와 같이 GEMM이란 에러 메세지는 GPU를 무언가가 점거하고 있다는 뜻.

때문에 비워주거나, 다시 컴퓨터를 껐다 키던가...

나의 경우에는 뭔지 모르지만 50% 가량을 무언가가 점거하고 있었다.

asd

asd

 

반응형

댓글