Languages

Languages/Python

[Pytorch] view, reshape, transpose, permute 함수 사용법과 contiguous 특성

Pytorch를 이용하여 코드를 구현할 때 데이터의 차원을 수정하거나 조작할 때 가장 많이 사용되는 함수는 view, reshape, transpose, permute이다. 이 함수들에 대해 제대로 된 사용법과 특징을 정리할 필요가 있다 생각하여 남겨두고자 한다. 또한 contiguous한 특성에 따라 어떤 함수를 사용하여야 하는지도 함께 정리하려 한다.  view()메모리를 공유하며 차원 변경연속된(Contiguous) 메모리를 사용할 때만 가능원본 텐서와 메모리를 공유 (즉, view()를 바꿔도 원본도 바뀜) import torchx = torch.arange(6) # [0, 1, 2, 3, 4, 5]y = x.view(2, 3) print(y)# 출력# tensor([[0, 1, 2], # ..

Languages/Java(Spring boot)

[Spring] Spring IoC(Inversion of Control)와 의존성 주입(Dependency Injection, DI)

Spring은 자바 기반 애플리케이션 개발에서 효율성을 높이고, 코드의 유연성과 재사용성을 극대화하는 데 중점을 둔다. 이 중심에는 Bean, Spring IoC(Inversion of Control), 그리고 의존성 주입(Dependency Injection, DI)이라는 개념이 있다. 이 글에서는 이 세 가지 개념을 하나씩 살펴보고, 스프링이 이를 통해 어떻게 애플리케이션을 관리하는지 설명한다. BeanSpring에서 Bean은 스프링 IoC 컨테이너가 관리하는 객체를 의미한다. 애플리케이션 실행 과정에서 생성되고, 필요한 곳에 주입되며, 생명 주기를 관리받는 객체이다. 아래는 Bean의 대표적인 특징 3가지이다.Bean은 스프링 컨테이너에 의해 등록되고, 생성되며, 관리된다.기본적으로 싱글턴(Sin..

Languages/Java(Spring boot)

[Spring] @Component와 @Configuration 어노테이션의 차이

Spring Boot로 서버를 만들며 시간에 쫓겨 프레임워크가 제시하는대로 구현은 했지만 세부적인 내용에 대한 이해가 부족하다고 느껴 기초부터 다시 정리하고 있다. 시작하기 전 Bean이 등록되고 준비되는 순서는 아래와 같다.@ComponentScan으로 클래스 경로에서 빈 정의 검색 - @Component, @Service, @Repository, @Controller@Configuration 클래스와 @Bean 처리 - 프록시를 생성하고, 의존성을 관리빈 생성(@Component 빈 먼저, @Bean 빈 나중에 생성 가능)의존성 주입(@Autowired, 생성자, 필드, 메서드 주입)빈 초기화(@PostConstruct, 커스텀 초기화 메서드) 애플리케이션 컨텍스트 준비 @Component@Compo..

Languages/Dart(Flutter)

[Dart] Extension Method와 응용

Extension Method Dart에서 제공하는 기능인 Extension Method는 특정 타입에 대한 전용 메소드를 만들어주는 기능이다. 이를 이용해 해당 데이터 타입에서 자주 사용되는 동작을 호출해 주는 메소드를 지정해 줄 수 있다. 아래와 같은 측면에서 Extension Method 사용을 고려해 보면 좋다. 가독성 향상 휴먼 에러 감소 유지보수성 개선 코드 재사용성 증대 코드 중복 감소 다만 지나치게 남용할 경우 오히려 너무 기능이 세분화되거나 코드 간 의존성이 높아질 수 있어 사용에 유의하여야 한다. 나는 프로젝트 구현시 Extension Method를 DateTime formatting을 위해 사용하거나 Enum Type에 대한 객체를 생성해 두고 요소별로 분기처리를 수행할 때 주로 사용..

Languages/Dart(Flutter)

[Flutter] BuildContext와 Builder

Flutter를 이용하여 개발한 지 시간이 꽤 지났지만 아직 BuildContext에 대해 정확히 알지 못한 채 진행해 왔던 것 같다. BuildContext는 Stateless와 Stateful 위젯 모두에서 사용되며, Dialog를 띄울 때와 화면 높이, 너비를 알아낼 때도 사용되는 등 자주 만나게 되는 만큼 정리해 보고 넘어가려 한다. BuildContext @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Demo')), body: Builder( ... 이하 중략 override 메소드인 build는 구현한 UI 위젯들을 화면에 출력될 수 있도록 리턴한다. BuildCon..

Languages/Dart(Flutter)

[Dart] 반복문 심화(map, reduce, fold)

map map은 forEach와 유사하게 동작한다. map과 forEach는 List의 element를 e변수에 차례대로 받아오고 element 값을 자리의 파라미터 값을 중괄호 안쪽의 기능수행 영역에서 사용할 수 있다. 다만 map 함수는 return 값을 반환할 수 있고 반환된 모든 값을 차례대로 변수에 저장할 수 있다는 차이가 있다. void main() { List colors = ['red', 'orange', 'yellow', 'green', 'blue']; // forEach loop colors.forEach((e) { print(e); }); // map loop final result = colors.map((e){ return '${e} is color'; }); } 하지만 map의 ..

AlienCoder
'Languages' 카테고리의 글 목록
loading