Programming
[딥러닝] 윈도우에서 Cuda, cuDNN 설치하기
[딥러닝] 윈도우에서 Cuda, cuDNN 설치하기
2024.09.29Cuda와 cuDNN 이란?CUDA toolkitNVDIA에서 개발한 소프트웨어 개발도구 모음GPU가 병렬연산을 수행할 수 있게 해준다. → 고성능 컴퓨팅 연산이 가능하게 됨 CUDA Toolkit 12.1 DownloadsGet the latest feature updates to NVIDIA's proprietary compute stack.developer.nvidia.comcuDNNGPU 가속화 라이브러리로 GPU의 성능을 극대화하고 모델 학습 및 추론 속도를 크게 향상cuda에서 설치한 파일에 덮어씌우는 형태로 설치 CUDA Deep Neural NetworkcuDNN provides researchers and developers with high-performance GPU accelera..
[C# 6.0] 문자열 보간(String interpolation)
[C# 6.0] 문자열 보간(String interpolation)
2021.07.04C# 6.0에서 문자열 보간(String interpolation)이라는 기능이 추가되었다. $ 특수문자는 문자열 리터럴을 보관된 문자열로 식별하는데, 보간 된 문자열이란 보간 식이 포함될 수 있는 문자열 리터럴이다. 기존 String.Format()과 기능은 동일 하지만 더 읽기 쉽고 편리하게 출력 서식을 지정할 수 있다고 한다. 기본적으로 사용은 문자열 앞에 $기호를 추가하면 된다. $"오늘은 {month}월 {day}일이야." 보간 된 문자열의 구조 보간 된 문자열의 구조는 다음과 같다. {[,][:]} 대괄호 안의 요소는 선택사항으로, 각 요소들이 의미하는 바는 아래 표와 같다. 요소 설명 interpolationExpression 서식을 지정할 결과를 생성하는 식. null의 문자열 표현은 St..
[C#] .NET Framework에 대응하는 C# 버전
[C#] .NET Framework에 대응하는 C# 버전
2021.06.02C#은 .NET Framework 버전 및 Visual Studio 버전과 밀접한 관련이 있으며, .NET Framework버전에 대응하는 C# 버전은 다음과 같다. .NET 버전 C# 버전 Visual Studio .Net 1.0 C# 1.0 Visual Studio .NET .Net 1.1 C# 1.1 Visual Studio .NET 2003 .Net 2.0 C# 2.0 Visual Studio 2005 .Net 3.0 C# 2.0 Visual Studio 2005 Extensions .Net 3.5 C# 3.0 Visual Studio 2008 .Net 4.0 C# 4.0 Visual Studio 2010 .Net 4.5 C# 5.0 Visual Studio 2012 Visual Studio 20..
[C# 8.0] 널 병합 할당자
[C# 8.0] 널 병합 할당자
2020.08.27널 병합 할당자 C# 8.0에서 null 병합 할당 연산자 ??= 가 도입되었다. ??= 연산자는 앞의 변수가 null 일 경우 뒤에 오는 피연산자의 값을 가져와 앞의 변수에 할당한다. 이때, 왼쪽 피연산자를 null이 아니라고 평가하면 ??= 연산자는 오른쪽 피연산자를 평가하지 않는다. 변경 전 if (list == null) { list = new List(); } 변경 후 static List AddData(List list, int? a, int? b) { // 널 병합 연산자 list ??= new List(); list.Add(a ??= 1); list.Add(b ??= 2); return list; } 널 병합 연산자와 널 병합 할당자는 다음과 같이 사용 할 수 있다. int? a = nul..
[C# 6.0] 널 조건 연산자 (Null-conditional operator)
[C# 6.0] 널 조건 연산자 (Null-conditional operator)
2020.08.27널 조건 연산자 (Null-conditional operator) C# 6.0 이상에서는 연산자 하나로 깔끔하게 해결할 수 있다. (= 널조건 연산자) ? 널 조건 연산자는 ? 앞에 있는 객체가 Null인지 체크해서 Null이면 그냥 Null을 리턴하고, 그렇지 않으면 ? 다음의 속성이나 메서드를 실행한다. 하나하나 if문으로 null체크를 할 필요가 없이 축약해서 사용할 수 있어지는 것이다. 문법적인 측면에서 ? 다음에 일반적으로 속성이나 메서드가 오기 때문에 ?. 와 같이 표현되지만, 만약 인덱서 혹은 배열 요소 등을 접근할 경우는 ?[] 와 같이 표현될 수도 있다. 예시 // rows가 NULL이면 cnt 도 NULL // rows가 NULL이 아니면 cnt는 실제 rows 갯수 int? cnt =..
[자료구조] 양방향 연결 리스트
[자료구조] 양방향 연결 리스트
2020.07.12양방향 연결 리스트 머리(Head)와 꼬리(Tail)를 모두 가짐 각 노드는 앞 노드와 뒤 노드의 정보를 모두 저장 양방향 연결 리스트 삽입 과정 양방향 연결 리스트 삭제 과정 데이터를 오름차순으로 저장하는 양방향 연결 리스트 구현 typedef struct { int data; struct Node *prev; struct Node *next; } Node; Node *head, *tail; void Insert( int data ) { Node* node = (Node*)malloc(sizeof(Node)); node->data = data; Node* cur; cur = head->next; while( cur->data next; ..
[자료구조] 단일 연결 리스트
[자료구조] 단일 연결 리스트
2020.07.08단일 연결 리스트 포인터를 이용해 단방향적으로 다음 노드를 가리킴 하나의 구조체 안에 두 개의 변수가 들어감 : data, next (다음 위치를 가리키는 pointer) 일반적으로 연결 리스트의 시작 노드를(Head)라고 하며 별도로 관리 마지막(끝) 노드의 다음 위치 값으로는 NULL을 넣음 #include #include //!data = 1; Node *node2 = (Node*)ma..
[자료구조] 연결 리스트
[자료구조] 연결 리스트
2020.07.08연결 리스트의 필요성 일반적으로 배열을 사용하여 데이터를 순차적으로 저장하고, 나열할 수 있다. 하지만 배열을 사용하는 경우 메모리 공간이 불필요하게 낭비될 수 있음 배열 기반의 리스트 데이터를 순차적으로 저장하고 처리할 때는 배열 기반의 리스트를 이용 #include #define INF 10000 int arr[INF]; int count = 0; void addBack(int data) { arr[count] = data; count++; } //!= 1; i--) { arr[i] = arr[i-1]; } arr[0] ..
[자료구조] 자료구조의 개요
[자료구조] 자료구조의 개요
2020.06.27자료구조란? 대량의 데이터를 효과적으로 저장, 처리하는 방법 기본적인 자료구조 선형구조 배열 연결 리스트 스택 큐 비선형 구조 트리 그래프 알고리즘이란? 어떤 문제를 풀기 위한 절차, 방법 자료구조와 알고리즘 서로 필요충분조건이다. 효율적인 자료구조 설계를 위해서는 알고리즘 지식이 필요 ↔ 효율적인 알고리즘을 작성하기 위해서는 문제 상황에 맞는 적절한 자료구조 사용해야 함 프로그램의 성능 측정 방법론 시간 복잡도(Time Complexity) : 알고리즘에 사용되는 연산 횟수를 의미 공간 복잡도(Space Complexity) : 알고리즘에 사용되는 메모리 양 수행 시간 최상 : 오메가 표기법 (Big-Ω Notation) 평균 : 세타 표기법 (Big-θ Notation) 최악 : 빅오 표기법 (Big..
[C#] String.Format 표준 숫자 서식 문자열
[C#] String.Format 표준 숫자 서식 문자열
2020.06.20소수점 밑에는 필요 없거나 특정 소수점까지 표현 할 때, string str = string.Format( "{0:f0}", 12.3456 ); // 결과 : 12 string str = string.Format( "{0:f1}", 12.3456 ); // 결과 : 12.3 string str = string.Format( "{0:f2}", 12.3456 ); // 결과 : 12.34 필요한 자리수 지정 시, 수 앞에 00 채울 수 있다. string str = string.Format( "{0:D2}", 5 ); // 결과 : 05 string str = string.Format( "{0:D3}", 5 ); // 결과 : 005 string str = string.Format( "{0:D4}", 5 )..