분류 전체보기465 [C++] Iterator Traits와 User-Defined Iterators References C++ Standard Library 2nd Contents Iterator Traits User-Defined Iterators Iterator Traits 반복자에는 위와 같이 다양한 카테고리가 있습니다. 이는 각각이 자신만의 특수한 기능이 있다는 것을 나타냅니다. 서로 다른 반복자 카테고리는 서로의 동작을 오버로딩할 수도 있고, 오버로딩될 수 있습니다. 이때, iterator tags와 iterator traits를 사용하여 이러한 오버로딩을 적용할 수 있습니다. 각 반복자 카테고리에서 C++ 표준 라이브러리는 iterator에 대한 "label"처럼 사용되는 iterator tag를 제공합니다. 실제 헤더 파일을 살펴보면 상속이 사용되었다는 것을 볼 수 있습니다. 따라서, fo.. 2022. 12. 11. [C++] Clocks and Timers References C++ Standard Library 2nd Contents Chrono Library Durations Clocks and Timepoints Data and Time Functions by C and POSIX [C++] chrono 라이브러리 (Date, Time 유틸리티) [C++] chrono 라이브러리 (Date, Time 유틸리티) References Professional C++ https://en.cppreference.com/w/ Contents Compile-Time rational numbers (컴파일 시간 유리수, ratio) Duration Clock Time Point 이번 포스팅에서는 C++ 표준 라이브러리에서 시간 관련 기능인 chrono 라이 juns.. 2022. 12. 8. [C++] Type Traits와 Type Utilities References C++ Standard Library 2nd cppreference (link) Contents Type Traits ( 2022. 12. 7. [C++] Numeric Limits References C++ Standard Library 2nd cppreference (link) 숫자 타입(numeric types)는 일반적으로 플랫폼에 따라서 한계값이 다릅니다. C++ 표준 라이브러리에서는 이러한 한계값을 numeric_limits 라는 템플릿으로 제공합니다. 이렇게 제공되는 numeric limit은 일반적인 전처리 C 상수를 대체하고 보완하는데 사용될 수 있습니다. 물론, 정수 타입에 대해서는 와 를 통해, 부동소수점 타입에 대해서는 와 를 통해 기존에 사용되던 C 상수도 여전히 지원됩니다. 하지만, C++에서 제공하는 numeric limits를 사용하면 데이터 타입에 안전하다는 것과 프로그래머가 이러한 한계값을 처리하는 템플릿을 작성할 수 있다는 장점을 얻을 수 있습니다... 2022. 12. 6. [C++] Pairs and Tuples References The C++ Standard Library 2nd (Ch 5.1) Contents std::pair std::tuple 아래 내용은 C++11 기준으로 작성된 내용입니다. C++98의 첫 번째 C++ 표준 라이브러리에서는 특정 클래스를 정의하지 않고 다른 타입의 value pairs를 처리하는 간단한 클래스가 제공되었습니다. 이 C++98 클래스는 표준 함수로부터 value pair를 리턴할 때나 컨테이너의 요소가 key/value pairs일 때 사용되었습니다. TR1에서는 요소의 수가 제한되었지만, 임의의 수의 요소를 가질 수 있도록 pair의 개념을 확장한 tuple 클래스를 도입했습니다. 여기서는 최대 10개의 다른 타입의 요소를 가질 수 있는 tuple이 구현되었습니다. C.. 2022. 12. 6. [pytorch] autograd References PyTorch Official Tutorial (link1, link2) 파이토치의 autograd는 파이토치가 머신러닝 프로젝트를 빌드하는데 유연하고 빠르게 만들어주는 것들 중 하나입니다. 이는 복잡한 계산인 mutiple partial derivaties (referred to as gradients)를 빠르고 쉽게 계산할 수 있도록 해줍니다. 이 연산은 backpropagation 기반의 뉴럴 네트워크 학습의 핵심입니다. autograd는 런타임에서 동적으로 연산을 추적합니다. 즉, 모델에 decision branches나 길이를 런타임 전까지 알 수 없는 loop가 있는 경우에도 연산은 여전히 올바르게 추적되고 올바른 gradients를 얻을 수 있습니다. 이 때문에 파이토치는.. 2022. 12. 5. [C++] C++11에서 추가된 기능 (2) References The C++ Standard Library Contents New Template Features Lambda Keyword decltype New Function Declaration Syntax Scoped Enumerations New Fundamental Data Types +) Old Languages Features [C++] C++11에서 추가된 기능 (1) [C++] C++11에서 추가된 기능 (1) References The C++ Standard Library Contents nullptr and std::nullptr_t auto Uniform Initialization Range-based Loop Move Semantics and Rvalue Reference.. 2022. 12. 4. [C++] C++11에서 추가된 기능 (1) References The C++ Standard Library Contents nullptr and std::nullptr_t auto Uniform Initialization Range-based Loop Move Semantics and Rvalue References New String Literals Keyword noexcept Keyword constexpr C++11부터 유용하고 새로운 기능들이 추가되었는데, references에서 언급하고 있는 C++11 기능들을 이번 포스팅을 통해서 한 번 정리해보고자 합니다. Spaces in Template Expressions std::vector >; // OK in each C++ version std::vector>; // OK since C.. 2022. 12. 3. [pytorch] Tensors References PyTorch Official Tutorial (link) Tensors는 파이토치에서 중심이 되는 data abstraction 입니다. 이번 포스팅에서는 튜토리얼에서 설명하고 있는 torch.Tensor에 대해서 조금 더 자세히 살펴보도록 하겠습니다. import torch import math 시작하기에 앞서, 위의 두 패키지를 import 해줍니다. Creating Tensors Tensor를 생성하는 가장 간단한 방법은 torch.empty() 를 호출하는 것입니다. x = torch.empty(3, 4) print(type(x)) print(x) 여기서 우리는 torch 모듈에 있는 수 많은 factory methods 중 하나를 사용해서 텐서를 생성했으며, 여기서 생성한 .. 2022. 12. 1. [pytorch] Tutorial - Optimizing Model Parameters References Official PyTorch Tutorial (link) 이번에는 앞선 튜토리얼에서 살펴본 내용들을 통합하여, 네트워크 모델을 학습, 검증, 테스트하는 방법을 살펴보겠습니다. 모델의 학습은 iterative process입니다. 각 반복에서 모델을 output을 계산하고, 실제 결과와의 loss를 통해 error를 계산하고 파라미터(모델의 weights)에 대한 gradient를 계산한 뒤, gradient descent 알고리즘을 사용하여 파라미터를 최적화합니다. Prerequisite Code 다음 코드를 통해서 FashionMNIST 데이터를 받아오고, 간단한 네트워크를 구성합니다. import torch from torch import nn from torch.utils.da.. 2022. 11. 30. 이전 1 2 3 4 5 6 7 8 ··· 47 다음