(스터디 내용 정리) step09. 함수를 더 편리하게
1. 파이썬 함수로 이용하기 현재 코드는 클래스로 정의됐으므로 코드 모양이 직관적이지 않다. x = Variable(np.array(0.5)) f = Square() y = f(x) # y = Square()(x) => 클래스 인스턴스 호출 후 다른 인자로 x가 들어간다. ...
1. 파이썬 함수로 이용하기 현재 코드는 클래스로 정의됐으므로 코드 모양이 직관적이지 않다. x = Variable(np.array(0.5)) f = Square() y = f(x) # y = Square()(x) => 클래스 인스턴스 호출 후 다른 인자로 x가 들어간다. ...
1. 반복문을 이용한 구현 Variable.backward 메소드를 DFS를 기반으로 수정한다. 수정 전 class Variable: ... def backward(self): f = self.creator # 1. ...
1. 스터디 참여 인공지능 동아리 초과 학기가 시작됐다.
1. 미분과 수치 미분 미분 계수의 정의는 다음과 같다.
1. 개요 이전 step 같은 코드는 모델이 달라질 때마다 직접 backward 메소드를 함수마다 호출해줘야 한다. 이는 매우 비효율적인 방법이다. 이 책에서는 이를 Define-by-Run으로 구현한다. Define-by-Run은 데이터를 클래스로 감싸고 계산 그래프를 위한 연결...
1. Variable 클래스 추가 구현 기존에 Variable 클래스는 data만 가지고 있었다. 역전파를 구현하기 위해 grad 인스턴스를 추가한다. class Variable: def __init__(self, data): self.data = data ...
지난 step에서 수치 미분(numerical differentiation)으로 미분 연산을 수행했다. 이번 step에서는 역전파의 개념을 서술한다.
이 책에서 구현하는 코드는 객체 지향으로 특히 캡슐화(encapsulation)와 다형성(Polymorphism)에 무게를 두고 있다.
지난 step에서 함수를 나타내는 Function 클래스와 이를 상속받아 실제 연산하는 Square 클래스를 구현했다. 이번 step에서는 또 다른 실제 연산 클래스를 구현하고 두 클래스간의 연결을 수행한다.
지난 step에서 변수를 Variable 클래스로 간단하게 구현했다. 이번 step에는 함수를 Function 클래스로 구현한다.
1. make basic
1. Basic command
1. I/O redirection
1. startup file
1. basic compile
1. file & directory
스트림과 반복자(iterator)를 활용하면 for/while문 없이 std::vector를 입/출력 할 수 있다. 최종 코드
귀찮고 생각보다 헷갈리는게 enum이다. 아마 나를 포함한 초보들은 더 그렇다. 잘 사용하지 않기 때문이다.
chatGPT와의 채팅을 번역/편집해봤다.
string을 다루다보면 문자열을 잘라야 할 경우가 많이 생긴다. 이번 포스팅에서는 <sstream> 헤더를 소개하고 문자열을 자르는 여러가지 경우를 살펴본다.
ios cppreference 문서
새로운 언어를 배우면 Hello World 프로그램을 작성한다. C++에서 Hello World 프로그램은 다음과 같다.
C++에서 클래스를 사용하는 이유에는 객체 간 용이한 연결도 있다. 이번 포스팅에서는 객체 간 연결에 집중해서 클래스를 서술하려 한다.
원래는 <sstream>을 포스팅할 예정이었지만, 순서를 조금 바꿨다.
1. iterator vs pointer https://en.cppreference.com/w/cpp/iterator
1. 개요 vector만큼이나 많이 쓰이는 type이 map이다.
C에서 가장 골치 아픈게 동적 할당이다.
개강한지 한 달이 지났지만, 이제라도 지금까지 배운 내용을 정리한다.