분류 전체보기465 [pytorch] Tutorial - Automatic Differentiation (autograd) References Official Pytorch Tutorial (link) torch.autograd Neural network를 학습할 때, 가장 많이 사용되는 알고리즘은 backpropagation 입니다. 이 알고리즘에서 파라미터, 즉, 모델의 weights는 주어진 파라미터에 대한 loss function의 gradient에 따라 조정됩니다. Gradient를 계산하기 위해서 파이토치는 torch.autograd라는 built-in differentiation engine을 사용하며, 이는 computational graph의 gradient를 자동으로 계산할 수 있도록 지원합니다. 간단하게 다음과 같이 input이 x, 파라미터가 w, b로 이루어진 하나의 레이어로 구성된 네트워크와 loss.. 2022. 11. 29. [pytorch] Tutorial - Build the Neural Network References Official PyTorch Tutorial (link) Build the Neural Network Neural network는 데이터에 대한 연산을 수행하는 layer 또는 module로 구성됩니다. 파이토치에서 torch.nn 네임스페이스는 neural network를 구성하는데 필요한 레이어들을 제공합니다. 파이토치의 모든 레이어(모듈)들은 nn.Module의 sub class이며, neural network는 다른 레이어(모듈)들로 구성된 레이어(모듈)일 수도 있습니다. 이번 포스팅에서 파이토치 튜토리얼에서 설명하는 neural network에 대해 살펴보도록 하겠습니다. import os import torch from torch import nn from torch.ut.. 2022. 11. 29. [pytorch] Tutorial - Datasets & DataLoaders & Transforms References Official PyTorch Tutorials (link) 파이토치에서는 데이터를 쉽게 전처리하고, 모델을 학습하는 코드와 별도로 모듈화할 수 있는 기능인 torch.utils.data.DataLoaders와 torch.utils.data.Dataset을 제공합니다. Datasets은 샘플 데이터와 대응하는 라벨을 저장하고, DataLoader는 Dataset을 순회하면서 쉽게 샘플 데이터에 액세스할 수 있도록 해줍니다. Loading a FashionMNIST Dataset torchvision에서 제공하는 FashionMNIST가 Dataset의 서브클래스인데, 파이토치는 다양한 이미지, 텍스트, 오디오 데이터셋을 제공합니다. Image Datasets Text Datasets .. 2022. 11. 26. [pytorch] Tutorial - Tensors References Official PyTorch Tutorials (link) PyTorch Documentations (link) Tensor Vies (link) 텐서는 배열이나 행렬과 매우 유사한 데이터 구조체입니다. 파이토치에서 텐서는 모델의 input/output 그리고, 모델의 파라미터를 표현하는데 사용됩니다. 텐서는 numpy의 ndarray와 유사한데, 텐서는 GPU나 다른 하드웨어 가속기에서도 사용할 수 있습니다. 실제로, 파이토치의 텐서와 넘파이의 배열은 기본 메모리를 공유할 수 있어서, 서로 간의 변환에서 데이터를 복사할 필요가 없습니다. 이에 대해서는 아래에서 조금 자세히 살펴보도록 하겠습니다. 텐서는 automatic differeniation(자동 미분)에 최적화되어 있는데, .. 2022. 11. 26. [C/C++] 동적 라이브러리 References Advanced C and C++ Compiling Contents Creating the Dynamic Library (about -fPIC flag) Designing Dynamic Libraries Dynamic Linking Modes 지난번 포스팅 정적 라이브러리에 이어서 동적 라이브러리에 대해서 살펴보도록 하겠습니다. Creating the Dynamic Library 컴파일러와 링커는 일반적으로 동적 라이브러리를 빌드하는데 다양한 플래그를 제공합니다. 간단하게 플래그부터 살펴보겠습니다. 리눅스에서 동적 라이브러리르 생성할 때, 일반적으로 최소 아래의 두 플래그를 사용합니다. -fPIC 컴파일러 플래그 -shared 링커 플래그 gcc -fPIC -c first.c seco.. 2022. 11. 16. [C/C++] 정적 라이브러리 References Advanced C and C++ Compiling Contents Creating Static Libraries Using Static Libraries Tips and Tricks Creating Static Libraries 정적 라이브러리는 컴파일러에 의해 생성된 object file들이 하나로 통합된 archive file입니다. 생성된 object file들을 하나로 통합하는 것은 archiver라는 툴로 수행됩니다. 리눅스에서 archiver tool은 ar 입니다. 이 툴은 GCC toolchain의 일부입니다. 예를 들어, 다음의 간단한 두 줄의 커맨드로 두 개의 소스 파일의 정적 라이브러리를 생성할 수 있습니다. gcc -c first.c second.c ar rcs.. 2022. 11. 11. [C/C++] Static vs Dynamic 라이브러리 References Advanced C and C++ Compiling Contents Static Libraries Dynamic Libraries [C/C++] 간단한 프로그램 컴파일/링크 과정 [C/C++] 간단한 프로그램 컴파일/링크 과정 References Advaned C and C++ Compiling Contents Program's lifetime Compile Process Link Process 프로그램의 lifetime은 바이너리의 내부 구조에 의해 결정되는데, 바이너리는 OS loader가 load, unpack, 그리고, 그 내용을 실행 junstar92.tistory.com 위 포스트에서 컴파일러와 링커의 작업을 분리하는 이유를 이야기하면서 code reuse principle.. 2022. 11. 8. [C/C++] Program Execution References Advanced C and C++ Compiling Contents Shell, Kernel, Loader Program Loading Stage Executing Program Entry Point 이번 포스트에서는 프로그램을 실행할 때 발생하는 일련의 과정들에 대해 살펴보도록 하겠습니다. 여기서는 C/C++ 코드로 빌드되어 생성된 executable binary에 대해 설명합니다. 지난 포스트에 빌드된 바이너리가 어떤 식으로 구성되어 있는지 간단하게 살펴봤는데, 필요하시면 참조 바랍니다. [C/C++] 간단한 프로그램 컴파일/링크 과정 [C/C++] 간단한 프로그램 컴파일/링크 과정 References Advaned C and C++ Compiling Contents Program.. 2022. 11. 4. [C/C++] 간단한 프로그램 컴파일/링크 과정 References Advaned C and C++ Compiling Contents Program's lifetime Compile Process Link Process 프로그램의 lifetime은 바이너리의 내부 구조에 의해 결정되는데, 바이너리는 OS loader가 load, unpack, 그리고, 그 내용을 실행하게 됩니다. 여기서 프로그램이 C/C++로 작성되었을 때, 코드부터 실행까지의 과정을 간단히 살펴보겠습니다. Creating the source code 우선 다음의 3가지 파일을 간단하게 작성하도록 하겠습니다. function.h #pragma once #define FIRST_OPTION #ifdef FIRST_OPTION #define MULTIPLIER (3.0) #else #de.. 2022. 11. 3. Mathematics For Machine Learning 스터디 노트 Home - MML Study Note junstar92.github.io 최근 PRML(Pattern Recognition and Machine Learning)을 공부하면서... 보다가 수학 공부나 더하러 간다는 악명을 듣기는 했습니다만..., 진짜로 수학 공부를 조금 더 해야할 것 같아서 MML(Mathematics for Machine Learning) 교재를 기반으로 선형대수학과 확률 등 머신러닝/딥러닝에 기반이 되는 수학을 다시 공부할 필요성을 느껴서 최근 MML 책을 보면서 공부하고 있습니다. 공부하며 정리한 내용을 블로그에 작성하려다가 아무래도 github으로 관리하는 것이 조금 더 편해서 github을 사용하여 공부한 내용들을 정리하고 있습니다. 챕터 별로 링크는 아래에 달아두도록 하겠습.. 2022. 7. 15. 이전 1 ··· 3 4 5 6 7 8 9 ··· 47 다음