전체 글 115

싱글톤(Singleton) 패턴이란?

싱글톤 패턴이란? 애플리케이션이 시작될 때, 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴. 간단히 말하면 하나의 인스턴스만 생성하여 사용하는 디자인 패턴이다. 인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하는 것이다. 구현 방법 생성자가 설령 여러번 호출되더라도, 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자들은 이미 생성한 최초의 객체를 반환시키도록 만들어야 한다. (보통 생성자를 private으로 선언해 다른 곳에서 생성하지 못하도록 만들고, public으로 get()함수를 만들어 이를 통해 최초의 객체를 받아 사용하도록 구현한다.) 쓰는 이유는? 객체는 생성할 때마다 메모리 영역을 할당받아야..

디자인패턴 2023.05.13
객체 지향이란?

우선 객체란 프로그램 동작의 주체가 되는 요소를 의미합니다. 모든 객체에는 상태와 동작이 존재하는데 보통 상태를 멤버 변수, 동작을 함수와 연결지어 이야기합니다. 객체 지향은 말 그대로 객체를 지향하는 즉, 객체를 통해 코드를 구성하는 방법론이라고 정의할 수 있습니다. 객체 지향은 왜 사용할까? 일단 절차지향 방식과 비교했을 때 객체지향은 생산성과 유지보수 용이성이 좋아서 개발자가 개발을 비교적 쉽고 빠르게 수행할 수 있기 때문이라고 생각합니다. 어떠한 면에서? 모듈화된 객체를 기반으로 코드가 작성되기 때문에 코드 재사용이 편리하고, 만약 객체를 수정할 경우 해당 객체를 사용하는 곳에 모두 일괄적으로 적용되니 유지보수가 간편합니다. 그리고 업무 분담이 쉬워 큰 큐모의 프로그래밍에 유리합니다. 단점은? 절..

C++ 2023.05.13
클래스, 객체, 인스턴스란 무엇일까?

1. 클래스 클래스는 객체의 설계도이다. 2. 인스턴스 프로그램이 실행되면 내가 설계한 클래스에 대한 정보가 메모리에 로드된다. new라는 키워드를 사용하면 독립된 데이터 공간(변수)를 실제 메모리상에 가지는 실체화가 되는데 이것을 인스턴스라고 한다. 한마디로 인스턴스는 클래스(설계도)를 실제로 구현한 것이다. 3. 객체 인스턴스와 같은 맥락에서 종종 사용된다. 동일한 인스턴스 여러개가 맵에 생성되어 있다고 가정할 때 이것들을 보통 객체라고 부른다. 한마디로 정리하면 "객체는 소프트웨어 세계에 구현할 대상이고, 이를 구현하기 위한 설계도가 클래스이며, 이 설계도에 따라 소프트웨어 세계에 구현된 실체가 인스턴스이다. 인스턴스는 객체에 포함되는 개념이라고 볼 수 있다.

C++ 2023.05.13
[인공지능 응용] loss값을 동적으로 조절하기

테스트 코드 #Pretrained NN이 항상 1이 나오도록 학습시킨다. #Gound Truth를 1로 넣어주고 학습 시킨 후 모델 저장, 이후 test 해보면 1에 가까운 값이 나온다. #하지만 1을 넘기는 값이 나오는 문제가 발생. import torch import torch.nn as nn import torchvision.models as models from torch.autograd import Variable from torchsummary import summary from tensorboardX import SummaryWriter #cuda로 보낸다 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') print(..

수업내용 정리 2023.05.12
[인공지능 응용] Tensorboard로 그래프 출력하기

테스트 코드 import torch import torch.nn as nn import torchvision.models as models from torch.autograd import Variable from torchsummary import summary import matplotlib.pyplot as plt import numpy as np from tensorboardX import SummaryWriter #1) 텐서보드 생성 tf_summary = SummaryWriter() #tf_summary = SummaryWriter("./") #특정 폴더 #cuda로 보낸다 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu'..

수업내용 정리 2023.05.12