keras

· 인공지능
케라스 합성곱 신경망 만들기 케라스의 합성곱층은 Conv2D 클래스이다. 최대 풀링은 MaxPooling2D 클래스를 사용하고, 특성 맵을 일렬로 펼칠 때는 Flatten 클래스를 사용한다. from tensorflow.keras.layers import Conv2D, MaxPolling2D, Flatten, Dense 필요한 클래스를 임포트한다. 합성곱층 쌓기 합성곱층을 추가한다. Conv2D 클래스의 첫 번째 매개변수는 합성곱 커널의 개수이다. 두 번째 매개변수는 합성곱 커널의 크기로 높이와 너비를 튜플로 전달한다. 합성곱 커널로는 전형적으로 3 x 3 또는 5 x 5 크기를 많이 사용한다. activation 매개변수에 렐루 활성화 함수를 지정한다. 패딩은 세임 패딩을 사용하는데, tf.nn.con..
· 인공지능
케라스 케라스는 딥러닝 패키지를 편리하게 사용하기 위해 만들어진 래퍼(wrapper) 패키지이다. 대표적인 딥러닝 패키지인 텐서플로, 씨아노 등을 사용해 신경망을 구현하려면 꽤 많은 양의 코드를 입력해야 한다. 코드를 살펴보자. #훈련할 가중치 변수 선언 w = tf.Variable(tf.zeros(shape=(1))) b = tf.Variable(tf.zeros(shape=(1))) #경사 하강법 옵티마이저 설정 optimizer = tf.optimizers.SGD(lr = 0.05) #에포크만큼 훈련 num_epochs = 10 for step in range(num_epochs): #미분 연산 과정 기록 with tf.GradientTape() as tape: z_net = w * x_train +..
· 인공지능
다중 분류 신경망 구현 MinibatchNetwork 클래스를 확장하여 다중 분류를 수행하는 MultiClassNetwork 클래스를 구현해 보자. 소프트맥스 함수 추가 다중 분류에서는 마지막 출력층에 소프트맥스 함수를 사용해야 하므로 은닉층과 출력층에 각기 다른 활성화 함수를 적용한다. 이를 위해 activation() 메서드의 이름을 sigmoid()로 바꾸고 softmax() 메서드를 추가한다. def sigmoid(self, z): a = 1 / (1 + np.exp(-z)) #시그모이드 계산 return a def softmax(self, z): #소프트맥스 함수 exp_z = np.exp(z) return exp_z / np.sum(exp_z, axis=1).reshape(-1,1) 소프트맥스..