분류 전체보기 96

텐서 차원 변경하기(pytorch - squeeze, unsqueeze/ numpy - squeeze, expand_dims)

텐서의 원소를 유지한채 모양과 차원크기 변환 차원이 1인경우 해당 차원을 제거, 특정 위치에 1인차원을 추가 dim은 제거하거나 추가할 차원의 위치 1.numpy - squeeze, expand_dims # 1차원 배열 생성 array = np.array([[1], [2], [3]]) # 차원을 추가하여 2차원 배열로 만들기 expanded_array = np.expand_dims(array, axis=0) # 차원을 제거하여 1차원 배열로 만들기 squeezed_array = np.squeeze(expanded_array, axis=0) print("Original array:") print(array) print(array.shape) print("\nAfter expand_dims:") print(..

배열구조 바꾸기(numpy - reshape, pytorch - view/reshape)

원소의 수를 유지하면서 배열의 모양을 바꾸는 방법 1.[numpy - reshape] array.reshape(변환 shape), np.reshape(array, 변환 shape) 재배정이 불가능한 경우 ValueError arr = np.arange(1, 10) # [1, 2, 3, 4, 5, 6, 7, 8, 9] reshaped_arr = np.reshape(arr, (3, 3)) print("Original array:") print(arr) print("\nReshaped array:") print(reshaped_arr) Original array: [1 2 3 4 5 6 7 8 9] Reshaped array: [[1 2 3] [4 5 6] [7 8 9]] 2.[pytorch - view, r..

텐서, 행렬의 곱셈 - numpy(*, dot, @), pytorch(mul, matmul, @) 비교

1.[Numpy]의 곱연산자 '*' '*' 연산자는 원소별(element-wise) 곱셈 스칼라 곱 별연산은 같은 shape 여야만 계산 다른 경우는 (1, n)꼴 일때 브로드캐스팅 적용 브로드캐스팅 지원 'dot' 'dot'함수는 두 행렬간의 내적(dot product) 앞의 행렬의 마지막 축과 뒤의 행렬의 두 번째 축간의 내적 수행 '@' 행렬 곱셈 행렬이라는 2차원 공간에서는 내적 'dot'과 같은 역할 3차원부터는 텐서곱(외적)이라 다른 결과 마지막 축에 대해서만 행렬 곱셈 pytorch의 'matmul', '@'와 동일한 행렬곱셈 np의 'matmul'과도 동일 2.[pytorch] 의 곱연산자 'mul' 원소별(element-wise) 곱셈 브로드캐스팅 지원 'matmul' 행렬곱셈 '@'와 ..

tensor(텐서) 개념 및 numpy, pytorch 비교하기

1.개념 1-1.텐서 차원별 개념 스칼라(Scalar), 벡터(Vector), 행렬(Matrix), 텐서(Tensor)는 선형 대수학(Linear Algebra)에서 중요한 개념들입니다. 각각은 다양한 수학적 객체를 나타내며, 데이터 및 연산을 표현하는 데에 활용된다. 스칼라(Scalar): 크기만 가지고 방향이 없는 양, 실수나 정수 0차원 벡터(Vector): 벡터는 크기와 방향을 가지는 양 2차원 벡터는 평면에서의 위치, 3차원 벡터는 공간에서의 위치를 나타냄 벡터는 순서가 있는 숫자의 나열로 표현되며, 각 요소는 벡터의 한 차원을 나타냄 1차원 행렬(matrix): 숫자들을 2차원 배열로 나타낸 것으로 행과 열로 이루어짐 M x N 행렬은 M개의 행과 N개의 열로 이루어짐 2차원 텐서(tensor..

[Mermaid] Flowchart, Sequence Diagram , Class Diagram 그리기 예시

Mermaid은 텍스트 기반으로 그래프 및 다이어그램을 그릴 수 있는 마크업(Markup) 언어입니다. 다양한 형태의 그래프 및 다이어그램을 간단한 텍스트로 표현할 수 있어서 문서 작성이나 프로젝트 문서화에 유용합니다. (참고: Markdown은 마크업 언어의 일종으로, 특히 가독성이 높고 간단한 문서 작성을 목적으로 합니다.) Mermaid는 브라우저에서 렌더링되기 때문에 Markdown 문서나 HTML 페이지에서 사용할 수 있습니다. 그리고 Notion 에서도 mermaid 차트들을 그릴 수 있습니다. 1. Flowchart (플로우 차트) 플로우 차트는 작업이나 프로세스의 흐름을 나타냅니다. 각 단계는 상자로 표시되며, 화살표는 작업의 흐름을 나타냅니다. 시작점과 끝점이 명시되며, 각 단계의 작업이..

기타/참고자료 2023.11.20

[python] 문자열에서 특정 문자열 찾기(find, index, rfind, rindex)

Python에서 문자열에서 특정 부분 문자열을 찾거나 위치를 찾는데 사용되는 메소드에는 find, index, rfind, rindex가 있다. find(substring, start, end): 부분 문자열 substring을 찾고, 처음 발견된 위치(index)를 반환 찾지 못할 경우 -1을 반환 start와 end 매개변수를 사용하여 검색 범위를 제한 sentence = "Hello, world!" index = sentence.find("world") print(index) # 출력: 7 index(substring, start, end): find와 비슷하지만, 부분 문자열이 없을 경우 ValueError를 발생 sentence = "Hello, world!" index = sentence.in..

[python] List 두 인자 위치 변경하기(스와프, swap)

Python에서 리스트(List)에서 두 요소의 위치를 바꾸려면 다음과 같이 할 수 있다. 간단한 방법으로 두 변수의 값을 서로 교환하면 된다. 예를 들어, 리스트 my_list에서 인덱스 i와 인덱스 j의 값을 바꾸려면 다음과 같이 할 수 있다. my_list = [1, 2, 3, 4, 5] # 인덱스 1과 인덱스 3의 값 바꾸기 i, j = 1, 3 my_list[i], my_list[j] = my_list[j], my_list[i] print(my_list) # [1, 4, 3, 2, 5] python의 swap 기능을 사용하면 두 변수의 값을 간단하게 교환할 수 있고, 새로운 변수를 만들지 않아도 되는 장점이 있다. 그리고 두개 이상, 세개, 네개 인자도 위치 변경이 가능하다.

[NLP] Unigram, N-gram 언어 모델이란??

현재 다양한 언어 모델이 개발되고 발전되어 왔는데, 처음에는 단순한 구조에서 출발해 점차 복잡한 모델로 확장하게 됐다. 그 중에서 가장 간단한 Unigram, Ngram 모델을 살펴보려고 한다. 1.개념: N-gram 모델은 텍스트에서 나타나는 연속된 N개(Unigram은 1개)의 아이템(일반적으로 단어)에 대한 확률 분포를 모델링하는 통계적 언어 모델입니다. 이 모델은 특정 시퀀스에서 다음 아이템이 나타날 확률을 추정하여 문장의 일관성을 평가하고, 자연어 처리 등 다양한 응용 분야에서 활용됩니다. 1-1.Uni-gram 모델 가장 단순한 언어 모델로 Unimodel을 수식으로 표현하면 다음과 같다. $$P_{uni}(w_{1},w_{2}, ... , w_{n}) = P(w_{1})P(w_{2})...P..

카테고리 없음 2023.11.15

[python] lambda 함수로 한줄 함수 만들기

개념 및 구문 Lambda 함수는 파이썬에서 익명 함수(anonymous function)를 생성하는 방법 중 하나입니다. Lambda 함수는 간단한 함수를 정의할 때 사용되며, 일반적으로 한 줄로 작성됩니다. Lambda 함수는 함수 정의를 간결하게 표현할 때 유용합니다. lambda arguments: expression `arguments`: 함수에 전달할 매개변수(인자)를 나타냅니다. `expression`: 인자를 받아 처리하고 결과를 반환하는 표현식을 나타냅니다. Lambda 함수는 주로 함수의 인자로 전달되거나, 간단한 함수를 인라인으로 정의할 때 사용됩니다. Lambda 함수는 간단한 작업을 수행할 때 유용하지만, 복잡한 작업을 처리하기 위해서는 일반적인 함수를 정의하는 것이 더 적합할 수..

[python] isdigit, isnumeric, isdecimal, isalpha, isalnum 함수로 문자 숫자 확인하기

Python isdigit 함수 isdigit 함수는 문자열이 숫자로만 이루어져 있는지 여부를 확인하는 메서드입니다. 이 함수는 문자열 내의 모든 문자가 숫자 문자(0-9)로만 구성되어 있을 때 True를 반환하고, 그렇지 않을 경우 False를 반환합니다. 사용법 text = "12345" result = text.isdigit() print(result) # 출력: True주의 사항 isdigit 함수는 문자열이 모든 문자가 숫자인지를 검사합니다. 따라서 소수점, 음수 기호, 지수 표기법 등의 추가 문자가 있는 경우 False를 반환합니다. 공백 문자 또는 다른 문자(예: "$", ",", "A" 등)가 포함되어 있으면 isdigit 함수는 False를 반환합니다. text1 = "12345" tex..