tensorflow 2.xx multi gpu 사용하기 (gpu, cpu 지정하기, 2.3 이상)
tensorflow에서 여러 개의 GPU에 대해 분산 처리를 지원한다. 만약 내가 Tesla T4 두 개를 가지고 있고 model.fit을 통해 학습을 수행하면, 우선적으로 두 칩의 메모리에 모두 프로세스를 띄우게 되는데, 실제로는 single GPU에서만 잡을 처리하게 된다. 이렇게 되면, 나머지 GPU는 다른 프로세스에서 띄워지지도 않으면서, 사용하지도 않는 한마디로 리소스가 매우 낭비된다. 따라서 모델을 빌드하기 이전에, 먼저 내가 여러 개의 GPU를 사용할 것인지, 하나의 GPU를, 아니면 CPU를 사용할 것인지 결정하고 명시적으로 지정한 뒤에 빌드, 학습, 예측 등을 수행해야 자원을 효율적으로 사용할 수 있다. 그럼 지금부터 이렇게 하는 방법에 대해서 알아보자. 목차 1. 실행 환경 정보 1) ..
2023. 7. 19.
tf.matmul과 tf.multiply 차이 (행렬곱, 성분곱)
tf.matmul는 행렬곱 연산을 수행하며 tf.multiply는 element-wise 곱(성분곱) 연산을 수행함. 예시를 들어 연산을 수행해보자. 다음과 같은 상황을 가정해보자 # 예시 상황 a = [[1,2,3], [4,5,6]] b = [[1,2],[3,4],[5,6]] 행렬곱 연산은 정상 동작하나, # tf.matmul 연산 tf.matmul(a, b) 성분곱 연산은 오류가 발생한다. # element-wise 연산 tf.multiply(a, b) Traceback (most recent call last): File "", line 1, in File "환경정보/tensorflow/python/util/traceback_utils.py", line 153, in error_handler rai..
2023. 7. 18.
Autoencoder & Anomaly Detection (오토인코더와 이상 탐지)
강남우 교수님의 youtube 강의를 수강한 기록이다. 오토인코더 구조는 사용할 일이 많아 잘 알고 있었으나, 이를 이상 탐지에 사용할 수 있다는 점이 흥미로워 강의를 들어보았고, 매우 간단하나, 재미있어보여서 mnist 데이터로 실제 구현도 해보았다. 1. Autoencoder 오토인코더는 인코더와 디코더로 이루어진, 입출력이 동일한 모델 구조를 말함 인코더의 출력이자 디코더의 입력을 z, latent vector라 하며, 주로 입력 데이터의 크기보다 작게 구성함. 다른 말로는 code, feature, hidden representation이라고도 함 학습을 거듭하면, 입력 데이터는 인코더를 거쳐 latent vector로 표현되고, 이 벡터가 디코더를 거쳐 입력 데이터로 복원됨 데이터를 압축하는 구..
2023. 7. 14.