DataScience
article thumbnail
파이썬으로 RNN 구현하기
파이썬/Tensorflow,Pytorch 2022. 12. 14. 20:09

직접 Numpy로 RNN 층을 구현해보겠습니다. 앞서 메모리 셀에서 은닉 상태를 계산하는 식을 다음과 같이 정의하였습니다. h{t} = tanh(W{x}X{t} + W{h}h_{t−1} + b) #의사 코드(pseudocode)로 실제 동작하는 코드가 아님. hidden_state_t = 0 # 초기 은닉 상태를 0(벡터)로 초기화 for input_t in input_length: # 각 시점마다 입력을 받는다. output_t = tanh(input_t, hidden_state_t) # 각 시점에 대해서 입력과 은닉 상태를 가지고 연산 hidden_state_t = output_t # 계산 결과는 현재 시점의 은닉 상태가 된다. 우선 t 시점의 은닉 상태를 hidden_state_t라는 변수로 선언하..

CNN으로 MNIST분류하기
파이썬/Tensorflow,Pytorch 2022. 12. 13. 02:47

CNN으로 MNIST 분류하기 1. 모델 이해하기 우리가 만들 모델의 아키텍처를 이해해봅시다. 합성곱 신경망은 출처에 따라서 합성곱 층을 부르는 단위가 조금 다릅니다. (1) 첫번째 표기 방법 합성곱(nn.Cov2d) + 활성화 함수(nn.ReLU)를 하나의 합성곱 층으로 보고, 맥스풀링(nn.MaxPoold2d)은 풀링 층으로 별도로 명명합니다. (2) 두번째 표기 방법 합성곱(nn.Conv2d) + 활성화 함수(nn.ReLU) + 맥스풀링(nn.MaxPoold2d)을 하나의 합성곱 층으로 봅니다. 다시 말해 풀링도 하나의 층으로 보느냐, 안 보느냐의 문제인데 누가 옳고 틀리냐의 문제는 아니므로, 이번 챕터에서는 편의를 위해 맥스풀링까지도 포함해서 하나의 합성곱 층으로 판단하고 정리해보겠습니다. 다시 ..

파이썬 자료형의 값을 저장하는 공간, 변수
파이썬/파이썬 기초 2022. 12. 13. 01:54

파이썬에서는 같다 라고 선언하면 주소값 까지 같다고 본다. 그래서 추후에 한쪽 변수를 바꿔줘도 다른 한쪽 변수가 변하는 상황이 생긴다. a = [1,2,3] b = a print(id(a)) print(id(b)) 1906865579072 1906865579072 a[1]을 4로 바꿔줫더니 b도 바뀌는 상황이 발생한다. a[1] = 4 print(a) print(b) [1, 4, 3] [1, 4, 3] 위와 같은 상황을 방지하기 위해서 [:] 이용 c=[1,2,3] d=c[:] c[1]=4 print(c) print(d) [1, 4, 3] [1, 2, 3] copy모듈 이용 from copy import copy e=[1,2,3] f=copy(e) e[1]=4 print(e) print(f) [1, 4,..