반응형

분류 전체보기 505

C언어 함수 선언 방법 경우의 수 정리(input, return 타입별)

C언어 function 선언 방법 예제 C언어에서 함수를 선언하는 방법을 input 자료와 return되는 자료의 유형에 따라 분류하여 정리해보도록 하겠습니다. 기본적으로 C언어 함수 선언 코드의 틀은 다음과 같이 구성됩니다. 반환자료형 함수이름(input1자료형 input1이름, input2자료형 input2이름, ...){ ~함수 코드~ return 반환값; } 이제 반환자료형과 input자료형의 유형에따라 함수 선언 방법의 예시를 살펴보겠습니다. 1. input과 return 모두 없는 경우 가장 간단한 경우로, input 자료 없이 호출되고 반환 값도 없는 경우입니다. 반환자료형은 void로 선언하며, input 칸은 비워도되고, void로 설정해도 무관합니다. return 부분은 생략해도 좋고,..

C & C++ 2022.05.18

[Pandas] 파이썬 데이터프레임 값 변경/대체 방법 정리

파이썬 판다스 값 바꾸기, 수정 방법 예제 Pandas 라이브러리의 데이터프레임에서 원하는 부분의 값을 변경, 대체하는 여러 가지 방법들을 정리해보도록 하겠습니다. 이해를 돕기 위하여, 아래의 데이터프레임을 예시로 값이 대체된 결과를 보여드리겠습니다. (앞의 코드 수행 결과에 누적된 변경 결과를 첨부할 예정이니 참고해주세요.) import pandas as pd a = {'A' : [1, 2, 3, 4, 5, 6], 'B' : [10, 20, 30, 40, 50, 60], 'C' : [100, 200, 300, 400, 500, 600]} df = pd.DataFrame(a) df 값 1개만 변경 가장 간단한 경우로 원하는 값 1개를 수정하는 예시를 먼저 살펴보겠습니다. df.loc[행의 인덱스, 열 이..

Python/Pandas 2022.05.18

파이토치에서 모델 학습이 되지 않는 경우 원인 정리(파라미터가 그대로인 경우)

Pytorch gradient가 흐르지 않는 경우 원인과 해결법 파이토치 모듈을 이용하여 모델을 학습하는 과정에서 train 과정이 진행되는 것처럼 보여도 실제로는 파라미터가 업데이트되지 않고 학습이 안되는 경우가 있습니다. 이번 글에서는 제가 겪었던 원인을 바탕으로 모델 학습이 되지 않을 때 의심할만한 원인 3가지 정도를 간략하게 정리해보도록 하겠습니다. 1. 모델의 layer freeze 여부 체크 모델의 각 layer의 requires_grad 속성을 확인하여 해당 값이 True로 설정되어있는지를 확인해야 합니다. 이를 확인할 수 있는 방법의 코드는 아래와 같습니다. # 각 layer의 requires_grad가 True인지 확인 for param in model.parameters(): print..

Python/Debugging 2022.05.17

파이썬 소요 시간 측정 방법 : time.time() 활용과 %timeit

파이썬에서 실행 시간을 재는 방법 파이썬에서 코드의 실행 시간을 측정하는 대표적인 두 가지 방법으로 time.time()과 timeit 모듈의 %timeit을 사용하는 경우에 대해서 각각 살펴보겠습니다. time.time() 활용 시간 측정 time 모듈의 time 함수는 현재 시각을 초 단위로 알려주기에 시작 시간과 끝 시간의 시각을 기록하여 이 둘 간의 차이를 구하면 소요 시간이 측정됩니다. import time start = time.time() # 시작 시간 기록 # 원하는 코드 실행 for i in range(10 ** 8): pass end = time.time() # 끝 시간 기록 # 소요 시간 출력(초 단위) print(end - start) # 2.647819757461548 %timei..

파이썬 lambda 이용 함수 선언 예제 : 인자/return 값 여러개, 기본 값 지정, if문 활용 등

파이썬 lambda 사용법 정리 파이썬에서 lambda를 이용하여 함수를 만드는 예제들을 정리해보며 기본적인 사용법과 인자나 반환 값이 여러개인 케이스, 기본 값을 지정하고 싶은 경우, 조건문을 포함하고 싶은 케이스 등에서 lambda를 활용하는 방법을 살펴보겠습니다. lambda 기본 사용 케이스 lambda의 기본적인 사용법은 lambda 사용할 변수 : 반환할 값 형태의 문법입니다. 이해를 돕기 위해 숫자 1개를 받아 2배를 취한 값을 돌려주는 함수 func1을 생각해보겠습니다. lambda를 이용하여 다음와 같이 함수를 작성할 수 있습니다. func1 = lambda x : 2 * x a = func1(5) # 10 b = func1(-3.5) # -7 여기서 lambda a : 2 * a 처럼 ..

[C언어/C++] 나눗셈 연산의 원리, 몫과 나머지를 구하는 방법

C언어(C++ 포함) 나누기, 몫, 나머지 C언어와 C++에서 나눗셈 연산이 수행되는 원리를 살펴보고 몫과 나머지를 구하는 방법에 대해서도 다루어보도록 하겠습니다. 나눗셈 연산 원리 5 나누기 2의 연산 결과는 2.5라는 사실을 쉽게 알 수 있지요. 그러나 C언어나 C++에서 해당 연산을 수행해보면 그냥 2가 출력되는 것을 볼 수 있습니다. 심지어는 실수 자료형으로 값을 선언해도 2.5가 아닌 2.0이 저장되고 있습니다. #include int main(){ int a = 5 / 2; double b = 5 / 2; printf("%d\n", a); // 2 printf("%.1f\n", b); // 2.0 } 이와 같은 현상이 발생하는 이유는 정수 자료형 간의 연산은 기본적으로 정수를 반환하도록 설정되..

C & C++ 2022.05.15

[Numpy] 파이썬 단위행렬 함수 np.eye(), 역행렬 함수 LA.inv()

파이썬 넘파이 단위행렬, 역행렬 함수 Numpy 라이브러리에서 단위행렬을 손쉽게 설정할 수 있는 np.eye()와 역행렬을 구하여 반환받을 수 있는 LA.inv() 혹은 np.linalg.inv()에 대해서 다루어보겠습니다. 단위행렬 함수 : np.eye 기본적으로 np.eye(n) 형태로 n * n 사이즈(n은 정수)의 단위행렬을 생성할 수 있습니다. import numpy as np np.eye(4) ''' array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]])''' np.eye 내에 dtype 인자를 설정하여 배열 내 값들의 자료형을 지정할 수 있습니다. np.eye(5, dtype = int) ''' array..

Python/Numpy 2022.05.15

파이썬 리스트 정렬 함수 sort()와 sorted()의 사용법 정리, 차이 비교

Python 정렬 함수 sort vs sorted 예제 파이썬에서 리스트를 단번에 정렬할 수 있는 sort와 sorted 함수에 대하여 각각의 사용법과 두 함수의 차이 비교에 관한 내용을 다루어보도록 하겠습니다. sort 함수 사용법 리스트 자료형에 대하여 list.sort() 코드 선언 후 리스트를 다시 출력해보시면 기본적으로 오름차순 정렬이 진행된 모습을 확인할 수 있습니다. list_a = [8, 1, 5, 3, 9] list_a.sort() # 이렇게만 실행하면 자동으로 정렬된 값으로 변경 print(list_a) # [1, 3, 5, 8, 9] 만일, 내림차순 정렬을 원한다면 reverse 인자를 True로 설정해주시면 됩니다. list_a = [8, 1, 5, 3, 9] list_a.sort(..

[Pytorch] 모델에 저장된 파라미터 확인, 출력 방법

파이토치에서 파라미터 값 보는법 파이토치에서 모델에 저장된 parameter의 값들을 확인하는 방법들을 살펴보겠습니다. 파라미터만 출력 : model.parameters() 이용 layer 순서대로 파라미터를 출력하려면 선언된 모델의 parameters()를 호출하여 아래와 같이 순회해주시면 됩니다. for param in model.parameters(): print(param) 각 layer에 저장된 weight와 bias 값들이 차례대로 잘 출력되는 것을 볼 수 있었습니다. layer 이름과 같이 출력 : model.named_children() 이용 만일, layer의 이름과 매칭하여 저장된 파라미터를 확인하고 싶은 경우에는 아래와 같이 named_children()을 호출하여 layer 이름과 ..

Python/Pytorch 2022.05.13

파이썬 텍스트 데이터 증강 모듈 : nlpaug

Text Augmentation 라이브러리 nlpaug 파이썬에서 텍스트 데이터를 augmentation해야할 때 유용하게 사용할 수 있는 nlpaug 모듈에 대해서 소개해보고 사용법을 간단하게 살펴보겠습니다. nlpaug에서 지원하는 텍스트 증강 종류 우선, nlpaug 라이브러리에 대한 내용이 정리된 공식 github 페이지의 링크는 아래와 같습니다. GitHub - makcedward/nlpaug: Data augmentation for NLP Data augmentation for NLP . Contribute to makcedward/nlpaug development by creating an account on GitHub. github.com 해당 페이지의 내용을 확인해보시면 텍스트 데이터뿐..

Python/NLP Code 2022.05.13
반응형