전체 글(327)
-
텐서플로우(Tensorflow) get_variable 함수 - tf.get_variable 이란?
import tensorflow as tf self.user_emb_matrix = tf.get_variable( shape=[n_user, self.dim], initializer=KGCN.get_initializer(), name='user_emb_matrix') get_variable() 는 새로운 객체를 생성한다. 이때 기존에 같은 변수 이름을 사용하는 객체가 존재한다면, 이어서 그 값을 받아올 수 도 있다! tf.get_variable('var2', None, initializer=value) var2 라는 이름을 가진 객체를 생성하기 전에, 해당 이름을 사용하는 객체가 존재하는지 탐색한다. 이때 기존에 같은 변수 이름을 사용하는 객체가 존재하고, 그 값을 받아오고 싶다면 reuse=tf.AUT..
2022.11.14 -
텐서플로우(Tensorflow) - tf.placeholder 란?
쉽게 말해서 형태를 지정하지 않은 tensor를 선언하는 것이다. list = [] 처럼 크기를 정해주지 않은 채 리스트에 그때그때 접근하여 사용하는 것 처럼, DNN layer에 사용하기에 특화된 자료형(?) 이다. import tensorflow as tf a = tf.placeholder(tf.float32, [None, None]) 이때 a에는 2차원 배열인데 크기가 정해지지 않은 tensor가 선언된다. DNN layer에서 아직 input, output dimension을 정해지지 않았을 때, 이를 고려하지 않고 데이터셋에만 집중할 수 있도록 특화된 접근방식이라고 보면 된다!
2022.11.14 -
[python] argparse.ArgumentParser() 사용법
기본적으로 ArgumentParser는 프로그램 실행 시, 실행시킬 파일의 파일명이나 파라미터를 지정할 수 있는 기능을 가진 라이브러리 이다. 단계별로 사용법을 알아보자. 1. 라이브러리 임포트 import argparse 2. 전달 인자(=파일명 또는 파라미터)를 저장할 객체 선언 parser = argparse.ArgumentParser() 3. 객체에 인자 지정 - 이때 다양한 option이 존재하기 때문에 그때그때 찾아쓰는걸 권장한다. - 일반적으로 다음과 같은 예시에서는 -d 는 인자 이름, type은 문자열, default 값은 movie, help란 인자에 대한 description을 의미한다. parser.add_argument('-d', type=str, default='movie', h..
2022.11.05 -
window cmd 가상환경 생성 및 삭제 - anaconda prompt
프로젝트 단위 별 라이브러리를 관리할 수 있어서 필수적으로 알아야할 항목. 사용하지 않을 시 라이브러리끼리 충돌이 일어날 수 있으므로 특히 tensorflow, pytorch 등 딥러닝 모델을 사용할때는 호환되는 버전이 있는데 기존 프로젝트와 충돌을 막기위해 필히 사용할 것을 권장함. 1) Anaconda prompt 창 열기 2) 가상환경 목록 확인 conda env list - base : 기존 환경 - KGCN : 하나의 가상환경 총 두개의 가상환경이 존재함을 알 수 있다. 3) 가상환경 생성 conda create -n 가상환경이름 ex) conda create -n newenv ++) conda create -n newenv pip pip를 설치해주지 않을 경우 pip install시에 base..
2022.11.01 -
Pytorch "Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!" 에러 해결
# # GPU에서 추론하기 위해 weight도 cpu가 아니라 GPU에 올리기 위함 # if torch.cuda.is_available(): # model.cuda() 보통 이걸로 해결된다. 계산을 해야하는데 하나는 cpu에, 하나는 gpu에 있어서 발생하는 문제로, .cuda() 를 사용하여 텐서 모두 GPU로 올려주면 계산이 가능해진다. 이때 저장된 모델을 불러와서 추가 학습을 시킬 경우, optimizer에서 다음과 같은 에러가 연속적으로 발생하는데, model = Model() ... model = model.cuda() 이렇게 작성되있을꺼다. model = Model().cuda() 이렇게 한줄로 바꿔주면... 해결된다 https://thewayaboutme.tistory.com/384
2022.09.28 -
Pytorch 모델 저장하기(torach.save(model, PATH)), 모델 불러오기(torch.load(PATH)), 불러온 모델 이어서 학습하기
torch.save(model, PATH) # 모델 클래스는 어딘가에 반드시 선언되어 있어야 합니다 model = torch.load(PATH) model.eval() 이는 단순히 저장된 모델을 불러와서 prediction을 하기 위함이다. 모델을 저장할때는 모델말고도 파라미터, optimizer, loss등을 함께 저장할 수 있는데, 이 경우 확장자는 .tar 이다. torch.save({ 'epoch': epoch, 'model_state_dict': model.state_dict(), 'optimizer_state_dict': optimizer.state_dict(), 'loss': loss, ... }, PATH) model = TheModelClass(*args, **kwargs) optimiz..
2022.09.28