본문 바로가기

Data-science/deep learning

(87)
pytorch에서 특정 layer freeze 하기 (학습하지 않기) freezing for param in model.parameters(): param.requires_grad = False --> 이 방법은 pretrained model을 로드할 때는 쓰기 어렵다. 초기에 frozen되지 않은 layer에 대해서만 작동함. 정확하게 이게 무슨 말일까??? --> 여튼 위 방법은 pretrained에서 특정 layer를 얼리고 학습하거나 하면 어려울 수 있으니, 아래 방법을 소개한다. The basic idea is that all models have a function model.children() which returns it’s layers. Within each layer, there are parameters (or weights), which can be obtained ..
MBTI 성격유형별 관상 stylegan2 morphing image Trainer를 뜯어보기 전까지는 Gs가 GeneratorSynthesis의 약자인 줄 알았다... 학습중인 Generator들의 moving average라고 표현하는 게 맞다. Gs가 명시되지 않으면, 가중치들의 moving average로 만들어진다고 한다. 1024 x 1024 pretrained model이라 입력도 같은 size로 처리해야 함. 위 이미지를 뽑는데 시간이 5분 가량 소요. 256 x 256 pretrained 모델을 찾고 해당 model에서 위를 진행해봐야 함 256 x 256 pretrained 모델 발견, 사용할 수 있게 변경 완료. 256 이미지로 변경후, 3분 가량 소요. label (MBTI 정보) 주입 후, 해당 label 이미지 끼리 합성후 저장하는 projecti..
동물(개, 강아지) 얼굴만 추출, pretrained detection model 이용하기 github.com/kairess/dog_face_detector kairess/dog_face_detector Detect dog face rect and facial landmarks(6 points) using dlib - kairess/dog_face_detector github.com detector만 필요하다. cnn base의 얼굴 검출기다. 여러 개가있는 이미지를 입력하고. Detector에서 검출된 Rectangle에 빨간 테투리를 그려준다. 그려준 후, (내가 추가한 코드) 원하는 크기만큼 잘라서 얼굴 이미지를 원하는 사이즈로 리사이징한 후 저장해준다. 빨간 사각형이 잘 그려졌다. 강아지 얼굴만 저장하기! 그럭저럭 잘 된듯하다. 학습 하나 안 하고도 이렇게 검출이 가능합니다.
multi gpu 실패... 원인을 알 수 없다. study-grow.tistory.com/entry/multi-gpu-%EC%8B%A4%ED%8C%A8-tensorflow-mirrored-strategy multi gpu 실패, tensorflow mirrored strategy 멀티 GPU가 잡히지 않을 떄 mirrored_strategy = tf.distribute.MirroredStrategy() tf.keras로 multi gpu를 쓰려면 위에 구문을 쳐주고 mirrored_strategy scope내에 model 생성 및 compile을 해줘야 한다. with.. study-grow.tistory.com 위 방법을 쓰면 될 줄 알았다만... gpu가 동작하지 않는다... 뭐가 문제인 걸까? NotImplementedError: _reduce ..
multi gpu 실패, tensorflow mirrored strategy 멀티 GPU가 잡히지 않을 떄 mirrored_strategy = tf.distribute.MirroredStrategy() tf.keras로 multi gpu를 쓰려면 위에 구문을 쳐주고 mirrored_strategy scope내에 model 생성 및 compile을 해줘야 한다. with mirrored_strategy.scope(): dense = densenet.DenseNet121(include_top=False, classes=2) inputs = tf.keras.Input(shape=(256, 256, 3)) x = dense(inputs) x = tf.keras.layers.GlobalAveragePooling2D()(x) outputs = tf.keras.layers.Dense(1, a..
dacon - Rainnet기반 강수량 예측시 CSI, MAE 계산 CSI 계산법 예) import numpy as np true = np.array([0.2, 0.3, 0.4, 0.05, 0.03]) pred = np.array([0.05, 0.2, 0.3, 0.01, 0.5]) true_ok = true >= 0.1 pred_ok = pred >= 0.1 num_true_ok = np.sum(true_ok) num_pred_ok = np.sum(pred_ok) num_H = np.sum(true_ok & pred_ok) num_total = np.sum(true_ok | pred_ok) print(f'true_ok : {num_true_ok}, pred_ok : {num_pred_ok} ==== \ntrue_ok : {true_ok},\npred_ok : {pred_..
Spatiotemporal CNN for Video Object Segmentation Spatiotemporal은 시공간 데이터이다. 비디오가 그 예다. 시간에 따라 이미지 데이터가 있다. 이미지내의 픽셀들의 위치는 공간이라 할 수 있으니 비디오는 시공간 데이터다. 또 시간에따른 교통량 데이터라든가, 시간에따른 인공위성에서 찍은 구름 사진 데이터도 Spatiotemporal하게 접근해야할 데이터다. 보통 시간이 들어가면 RNN의 일종인 LSTM이 쓰일 거라 생각한다. ConvLSTM이 그 방법중 하나다. 하지만 LSTM 없이 그냥 segmentation 방식으로 예측하기도 한다. 여기선 비디오 데이터가 input으로 들어가고 특정 시간의 frame, 즉 이미지를 예측하는게 과제다. 신기하게 gan의 loss를 차용한다. 아이디어가 쌈박하다. 그래서 기록해둔다. 그림에서 위의 브런치는 시간..
keras Data generator custom하게 만들기 많은 데이터를 한 번에 Test하려고 하면 RAM error가 뜸. 이때 어떻게 하냐? Data generator를 이용하면 된다. 방법은 생각보다 간단하다. Sequence라는 녀석을 상속받는 클래스를 만들고, init과 __len__, __getitem__을 작성해준다! 필자의 경우 files가 입력으로 들어오면, 거기서 image를 로드하면 되는 형태다. 또한 file을 열면 그 파일 내에 X, Y가 둘다 들어가 있다. __getitem__을 구현해주면 된다. index 부분은 건드리지 않고 나머지 부분을 본인의 로직에 맞게 수정하면 된다. from tensorflow.keras.preprocessing import image from tensorflow.keras.utils import Seque..

728x90