목록분류 전체보기 (29)
Real Late Starter
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bqJmde/btqCD9FLzRe/uueV0du2xYFqOgMyWefrxK/img.png)
1. 검색 1) 순차검색 정렬되지 않은 자료의 검색과정 - 첫번째 원소부터 순서대로 검색대상과 키 값이 같은 원소가 있는지를 비교하여 찾음 - 키 값이 동일한 원소를 찾으면 그 원소의 인덱스를 반환 - 자료구조의 마지막에 갈 때 까지 검색 대상을 찾지 못하면 검색 실패 찾고자 하는 원소의 순서에 따른 비교횟수 결정 - 첫 번째 원소를 찾을 떄에는 1번 비교, 두 번째 원소를 찾을 때에는 2번 비교 - 정렬되지 않은 자료에서의 순차 검색의 평균 비교 횟수 (n+1)/2 - 시간 복잡도는 O(n) def sequentialSearch(a,n,key): i = 0 while i < n and a[i] != key: i += 1 if i < n: return i else: return -1 정렬된 자료의 검색과..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/x06pi/btqCsG532xW/wQccaO7RddLQHd0UgxqV1K/img.png)
이미 만들어논 코드를 재사용할 수 있다면, 불필요한 작업을 축소하고 효율성을 향상할 수 있고 결과적으로 생산성을 높일 수 있습니다. 객체지향 프로그래밍은 이러한 장점들을 제공하여 대규모 프로그램을 효율적으로 코딩할 수 있습니다. 파이썬에서 제공하는 강력한 기능인 객체지향 프로그램 기법에 대해 알아봅니다. 1. 객체지향(Object Oriented Programming)의 이해 객체지향 프로그래밍이란? 효율적인 프로그램을 만들기 위한 기술이다. 프로그램의 로직을 상태와 행위로 이루어진 객체를 만든 다음 해당 객체들을 레고 블록 처럼 조립하여 하나의 프로그램을 만드는 것이다. 객체 형성 => 객체 조립 => 프로그램 형성 즉, 객체들을 만들고 그 객체를 이용해 문제를 해결하는 프로그래밍 방법이다. 객체란 무..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/oNue0/btqCBx8qamS/iR1eMiN4vIaD1xfUiKNOC1/img.png)
사전의 value 값으로 정렬하는 방법은 sorted 함수를 사용합니다. sorted 함수는 key 를 받을 수 있는데, 여기서 lambda 식을 사용하여 튜플에서 1 번째 index를 기준으로 정렬하는 것 이지요 >>> d = {'A': 3, 'C': 1, 'G': 5, 'T': 2} >>> d {'A': 3, 'C': 1, 'G': 5, 'T': 2} ## d.items() 를 하여 각 key, value 가 tuple로 들어있는 ## 리스트 (dict_items 객체) 로 만듭니다 >>> d.items() dict_items([('A', 3), ('C', 1), ('G', 5), ('T', 2)]) ## dict_items 객체를 lambda 식을 활용하여 정렬을 하는 거지요 ## 오름차순 정렬 >..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bp6pGL/btqCqNcWatF/4KwGiMg7N0ELxVjYeD5KKk/img.png)
우리가 프로그래밍을 하면서 때때로 오류을 마주치게 된다. 오류를 해결하는 것이 가장 좋겠지만 오류를 해결하는데 너무 많은 시간을 쏟게된다면 효율적이지 않을 것이다. 오류는 두가지로 구분 할 수 있다. 1. 구문오류 - 해석 단계에서 발생 - 잘못된 명령을 입력해 발생한다. 2. 예외 - 실행 단계에서 발생 - 문법적인 문제는 없지만 실행 중에 예기치 않게 발생하는 오류를 말한다. 2-1) 예외 발생 시 해결 방법 A. if 문을 이용한 예외의 처리 - 정상적인 흐름을 제어할 경우에만 사용 가능 try ~ except 문 예외가 발생했을 때 처리 try ~ except ~ else 문 예외가 발생했을 때 처리 예외가 발생하지 않았을 때 try ~ except ~ else ~ finally 문 예외가 발생했..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bJPTNL/btqCuZxukY7/0Y4yZRkvLBVL6FTmbGTMe1/img.png)
파이썬 프로그래밍에서는 함수나 기능 등을 직접 만들어서 사용할 수도 있겠지만 전문가나 고급 프로그래머가 미리 만들어논 기능들을 사용하여 간편하게 프로그래밍을 할 수 있다. 이러한 것을 활용하면 생산성 및 품질 향상을 기대할 수 있다. 이런 기능들을 API(Application Programming Interface)이라고한다. 따라서 자신이 프로그래밍을 할 때는 미리 만들어진 API가 있는지 확인하고 코딩을 하는 습관을 기르면 좋다. 이미 잘 만들어진 함수가 있는데 자신이 직접 프로그래밍하면서 시간을 들일 필요가 없기 때문이다. 파이썬은 다양한 목적의 내장함수를 제공한다. 내장함수는 다음과 같이 나누어 볼 수 있다. - 수치형 데이터 조작을 위한 함수 - 집합과 원소 사이의 관계를 다루는 함수 - 각종 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bc2rdz/btqB6Zx2fth/jLlGoXct6SWFcW6lzgszc0/img.jpg)
이번 포스트에서는 저번에 올렸던 2020/02/11 - [PyTorch] - [PyTorch] 4-1. 나만의 이미지 데이터셋 만들기 에 이어서 Custom Dataset을 만드는 방법에 대해 알아보겠습니다. 저번에 올렸던 포스트에서는 torch.dataset에서 제공하는 ImageFolder로 이미지데이터셋을 만드는 것을 알아보았습니다. 하지만 우리가 사용하는 데이터가 모두 이미지 데이터는 아니기 때문에 다른 형태의 데이터도 불러오기 위해서는 원하는 형태로 가공할 수 있는 방법을 알아야합니다. 커스텀 데이터셋을 어떻게 구성하는가에 대해 알아보겠습니다. 1. Dataset & Loader import torch import torch.nn as nn import torchvision from torch...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/brDVTm/btqB5gMlyzm/EFlySo4eSrdSzSLbk4vSxk/img.jpg)
1. Loss ※ Loss 란? 모델의예측이라벨과 얼마나 차이가 나는지를 측정합니다. 다르게 표현하면, 모델이 얼마나 부정확한지를 나타냅니다. 이 값을 판단하려면 모델에서 손실 함수를 정의해야 합니다. 예를 들어 선형 회귀 모형은 일반적으로평균 제곱 오차를, 로지스틱 회귀 모형은로그 손실을 손실 함수로 사용합니다. 위의 그림에서 Input(입력) = x, Output(출력) = y, Label(실제 정답) = d 이라고 가정했을 때. 우리는 데이터를 모델에 넣었을 때 Input과 Label를 가지고 있습니다. 모델을 통해서 나온 Output 값은 실제 값과 차이가 있을 수 있습니다. 따라서 y = W(weight)x + b(bias)로 y를 정의했을 때 실제 정답인 d - y의 차이가 Loss가 됩니다...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/48AQE/btqB1cjUHYY/up6hpSJCKpLzm7dNgAnsv1/img.jpg)
1. Nvidia Graphic Driver install CUDA 환경을 사용하기 위해서는 Graphic Driver - CUDA - cuDNN 순으로 설치를 해주어야 합니다. 우선 그래픽드라이버 부터 설치하겠습니다. 그래픽 드라이버가 이미 설치 되어있는지 부터 확인합니다. 만약 설치가 되어있다면 CUDA 설치로 바로 넘어가시면 됩니다. cat /proc/driver/nvidia/version # 출력이 아래처럼 나온다면 이미 드라이버가 설치된 것입니다. > NVRM version: NVIDIA UNIX x86_64 Kernel Module 440.44 Sun Dec 8 03:38:56 UTC 2019 > GCC version: gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~..