- TIL Conv1D, Conv2D, Conv3D 차이 말 그대로다. 1차원 배열 데이터에는 Conv1D를, 2차원 배열 데이터에는 Conv2D를 사용한다. 아직까지 Conv3D를 사용해 본 적은 없지만 마찬가지로 3차원 배열 데이터에 사용한다. 즉, Conv1D, Conv2D, Conv3D 차이는 입력 데이터의 차원이다. 그런데 여기서 끝나면 의문이 생긴다. 코드를 보자. model = tf.keras.models.Sequential([ # Note the input shape is the desired size of the image 150x150 with 3 bytes color tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(150, 150, 3)), tf.keras.layers.M..
- TIL sigmoid보다 tanh를 쓰는 이유 1. sigmoid보다 tanh의 기울기가 더 크기 때문이다. 기울기가 더 크면 경사 하강법을 할때 더 큰 step으로 W와 b를 업데이트할 수 있으므로 더 빨리 cost를 0으로 만들 수 있다. cost는 0에 가까울수록 성능이 좋으므로 일반적으로 sigmoid보다 tanh가 성능이 더 좋은 것이다. 2. 기울기 편향을 피할 수 있다. 그래프를 보면 sigmoid는 (0,1)의 범위를 가지고 있고, tanh는 (-1,1)의 범위를 가진다. 모든 입력 벡터가 양수값을 가지고 있을때, 양의 값만을 가지는 sigmoid는 역전파를 할 때 모든 가중치가 같은 방향으로 움직이게 된다. 모두 증가하든지, 모두 감소하든지 말이다. 즉, 이동 방향이 편향될 수 있다는 단점이 있다. 하지만 tanh는 (-1,1) 범위..
- 용어정리 C++ 용어 정리 및 사이트 추천 1년 만에 C++ 프로그래밍을 하면서 까먹었던 개념들을 다시 정리해보았다. 각 용어의 출처는 하이퍼링크를 통해 확인할 수 있고 가장 도움을 많이 받은 곳은 끝나지 않는 프로그래밍 일기와 소년코딩이다. 참고로 예시는 회색, Tip은 파란색으로 표시했다. C++ 용어 정리 iostream Input/Output stream namespace 이름 충돌 문제를 해결하기 위해 도입된 개념으로, 모든 식별자(변수, 함수, 형식 등의 이름)가 고유하도록 보장하는 코드 영역 :: 연산자 범위 지정 연산자로, 어떤 namespace를 가리킬 때 사용하는 연산자 using - using 선언문 using namespace std::cout; - using 지시문 using namespace std; std cin, co..
- 용어정리 딥러닝 용어 정리 및 책 추천 책을 읽으며 딥러닝 관련 용어를 정리해보았다. 용어 출처의 대부분은 책이며, 간혹 설명이 잘 안나와있는 것은 구글링하여 보완했다. 구글링한 용어들은 하이퍼링크에 출처를 표기해놓았다. 참고로 예시는 회색, Tip은 파란색으로 표시했다. 딥러닝 용어 정리 브로드캐스트(broadcast) • 흩뿌리다, 퍼뜨리다, 확대된다는 뜻 • 원소별로(element-wise) 연산하는 것 Ex) Pandas에서 시리즈나 데이터프레임에 있는 모든 데이터에 대해 한 번에 연산하는 것 Ex) Numpy 배열과 스칼라값의 연산을 Numpy 배열의 원소 각각과 스칼라값의 연산으로 바꿔 수행하는 것 퍼셉트론(perceptron) = 인공 뉴런, 단순 퍼셉트론, 단층 퍼셉트론(single-layer perceptron) • 다수의 신..
- TIL ValueError: output array is read-only mnist = tf.keras.datasets.fashion_mnist (training_images, training_labels), (test_images, test_labels) = mnist.load_data() training_images /= 255.0 test_images /= 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activation=tf.nn.relu), tf.keras.layers.Dense(10, activation=tf.nn.softmax) ]) model.compile(optimizer="adam", loss="sparse_categorical_cr..