목록인공지능 (4)
까먹으면 적어두자
문제 loss값이 말도 안되게 높거나 nan이 나옴 소스일부 x = model.output x = Dense(4096, name="fc1", activation="relu")(x) x = Dropout(0.5)(x) x = Dense(4096, name="fc2", activation="relu")(x) x = Dropout(0.5)(x) x = Dense(365, activation='softmax', name='softmax')(x) model = Model(model.input, x) model.summary() epoch=nepoch learning_rate = 0.001 momentum = 0.9 sgd = optimizers.SGD(lr=learning_rate, momentum=momentu..
문제 GPU를 사용하는 학습에서 GPU usage가 70%를 찍었다가 다시 낮아지는 과정을 반복함. = GPU를 제대로 활용하지 않고 사이에 간격이 있다. = GPU가 노는 시간이 있다. 원인 flow_from_directory 등을 통해 데이터를 불러오는 경우 불러와서 메모리에 저장하는 속도보다 gpu가 처리하는 속도가 빠름. 그 사이에 기다리는 시간이 발생 해결방법 fit_genfit_generator 에서 workers 와 use_multiprocessing를 변경 예시) model.fit_generator(training_set, epochs = nepoch, steps_per_epoch=len(training_set), validation_data = test_set, validation_ste..
개요 Pytorch는 모델의 실제 내용 (가중치, 양자화 방법, 옵티마이저 등)을 저장할 때 state_dict라는 파이썬 딕셔너리에 저장한다. 따라서 Pytorch의 가중치를 직접 조작하거나 살펴볼때는 state_dict을 통해 가중치에 접근해야 한다. 여기서 조금 헷갈리는데 모델 그 자체와 state_dict에 접근하는 것은 조금 다른 의미를 가진다는 것이다. 예시 예를 들어 다음과 같은 모델을 정의했다. import torch import torch.nn as nn class DNN(nn.Module): def __init__(self): super(DNN, self).__init__() self.w1 = nn.Linear(2, 10) self.bias1 = torch.zeros([10]) self..
문제 GPU로 인공지능 모델을 돌리기 위해서는 Compute Unified Device Architecture(CUDA)를 설치해야 한다. 그런데 가끔 이 CUDA와 Tensorflow나 pyTorch의 버전이 호환이 안 되는 경우가 있다. 그럴 경우 CUDA를 밀고 낮은 버전으로 설치해야 하는데 리눅스 서버에서 이를 잘못 지우면 다 망가져버릴 수도 있다. 가장 문제는 CUDA를 지워도 설치하는 과정에서 원하는 버전이 아닌 전에 설치한 상위 버전으로 설치되는 것이다. 해결방법 1. CUDA를 지워버리기 apt-get --purge remove "*cublas*" "cuda*" 일부 포스팅에서는 nvidia*를 지우라고 안내하는 포스팅도 있는데 이러면 그래픽 드라이버도 지워버리기 때문에 더 귀찮아질 수도 ..