본문 바로가기

분류 전체보기73

[Pytorch] 가중치 초기화(Weight Initialization) 💡 가중치 초기화 : 모델 초기 가중치 값을 설정 : 초기 가중치에 따라 모델을 최적화 하는 데 많은 어려움을 겪을 수 있음 💡 가중치 초기화 방법 1. 상수 초기화 - 가중치를 모두 같은 값으로 초기화 - 구현이 간단하고 계산 비용이 거의 들지 않음 - 대칭 파괴(Breaking Symmetry) 현상 발생 * 대칭 파괴 ** 예를들어 가중치 값을 모두 0으로 할당하면 역전파 과정에서 모든 가중치가 동일한 값으로 갱신 - 스칼라값을 입력으로 받는 매우 작은 모델이나 퍼셉트론에 적용 - 주로 0 or 0.01등의 형태로 초기화 2. 무작위 초기화 - random 값이나 특정 분포 형태로 초기화 * Random, Unifom Distribution, Normal Distribution, Truncated .. 2024. 1. 16.
[Pytorch] train(), eval(), torch.no_grad()의 차이점 model.train() * Dropout Layer 활성화 * Batch Normalization Layer 활성화 model.eval() * model.train(False)와 동일한 기능 * evaluation mode로 바꿔주어 Dropout Layer 비활성화, Batch Normalization Layer는 훈려중에 계산된 통계값(평균, 분산의 이동평균)을 사용하게 함 ** Batch Normalization : 각 batch 별로 평균, 분산을 이용하여 정규화 torch.no_grad() * Gradient 계산을 비활성화 -> 메모리 사용량을 줄이고 계산 속도를 빠르게 만들 수 있음 -> 최근엔 torch.inference_mode()를 주로 사용 즉, train()과 eval()은 Lay.. 2023. 8. 26.
ddsd 보호되어 있는 글 입니다. 2023. 3. 20.
모델 확인 보호되어 있는 글 입니다. 2023. 3. 20.
[Spring] 게시판 만들기 1 https://www.youtube.com/@hancoding 한코딩 안녕하세요. 한코딩입니다. 학습한 코딩 지식을 공유하여 구독자님들과 함께 좋은 개발자로 발전하고 싶습니다. 영상이 도움이 되셨다면 구독과 좋아요 부탁드리고 영상의 부족한 부분이나 피 www.youtube.com 면접 가기 전에 뭐라도 만들고 싶어서 유튜브 한코딩님 강의를 들으며 Spring으로 간단한 게시판 만들기 실습을 진행하고 있습니다.' 먼저 다음과 같이 start.spring.io 에서 스프링 프로젝트를 생성하였습니다. 하나하나 기능들을 왜 쓰는지 살펴보면 1. Spring Web : 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 2. Spring Data JPA : JPA를 편히 쓰기 위해 만들어 놓은 모듈이다. 그럼 .. 2022. 12. 3.
[22-12-01]Java의 정석2 - 12 지네릭스, 열거형, 애너테이션 1. 지네릭스 :다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형 변환의 번거로움이 줄어든다. 예를들어 ArrayList와같은 컬렉션 클래스는 다양한 종류의 객체를 담을 수 있긴 하지만 보통 한 종류의 객체를 담는 경우가 더 많다. 그런데 꺼낼 때 마다 타입 체크를 하고 형 변환을 하는 것은 너무 번거롭기 때문에 이러한 문제를 지네릭스가 해결해준다. 장점 1. 타입 안정성 제공 2. 타입 체크와 형 변환 생략, 코드 간결 class Box { Object items; void setItem(Object item) { this.item = item; } Object getItem() .. 2022. 12. 1.
[2022-11-30] Java의 정석 2 - 11. 컬렉션 프레임웍 컬렉션 프레임웍? '데이터군을 저장하는 클래스들을 표준화한 설계' 컬렉션데이터 그룹은 크게 3가지 타입이 존재. 1. List - 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다 구현 클래스 : ArrayList, LinkedList, Stack, Vector 등 ArrayList ArrayList는 Object배열을 이용해서 데이터를 순차적으로 저장한다. 첫번째로 저장한 객체는 0번째 위치에 저장된다. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다. import java.util.*; class ArrayListEx1 { public static void main(String[] args) { ArrayLis.. 2022. 11. 30.
[2022-11-29] Java의 정석 - 1편 마지막~ 추상클래스 추상클래스란? 미완성 설계도다. 미완성 설계도로 제품을 만들 수 없듯, 추상클래스로 인스턴스는 생성할 수 없다. 추상 클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상클래스를 사용한느 이유는 추상 클래스 자체로는 클래스로서 역할을 다 못하지만, 아무것도 없는 상태에서 시작하는 것 보다 완전하지 않아도 어느정도 갖춰진 상태에서 시작하는것이 나을 것 이다. 추상클래스는 키워드 'abstract'을 붙이기만 하면 된다. 추상 클래스는 추상 메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않다. 추상클래스에도 생성자가 있으며, 멤버변수와 메서드도 갖고 있다. 추상메서드 메서드는 선언부와 구현부로 구성되어있다. 추상 메서드는 선언부만 작성하고 구현부는 작성하지 않은.. 2022. 11. 29.
[2022-11-28] Java의 정석 - 객체지향II 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 : 코드의 재사용성을 높이고 코드의 중복 제거하여 생산성, 유지보수에 크게 기여함 : 단일 상속만 가능하다. class Parent { int age; } class Child extends Parant { void play() { //내용 } } 조상 클래스 : 상속해주는 클래스 , 부모클래스, 상위클래스 , 기반클래스 자손 클래스 : 상속 받는 클래스 , 자손 클래스, 하위 클래스, 파생된 클래스 만일 Parent클래스에 age라는 정수형 변수를 멤버 변수로 추가하면, 자손 클래스는 조상의 멤벌르 모두 상속 받기 때문에, Child 클래스는 자동적으로 age라는 멤버 변수가 추가된다. - 자손 클래스의 멤버변수 개수는 조상 클래스 보다 .. 2022. 11. 29.