[패스트캠퍼스 환급챌린지]딥러닝 42

[패스트캠퍼스]Chapter 4. 딥러닝 학습을 위한 프레임워크 04-01 파이토치(PyTorch) 개요

Chapter 4. 딥러닝 학습을 위한 프레임워크 자, 딥러닝을 위한 밑작업이 어느 정도 마무리되었으니, 이제 본격적으로 딥러닝 학습에 직접적으로 이용되는 프레임워크들을 알아보겠습니다. 현업에서 주로 쓰이는 라이브러리에는 현재 파이토치(PyTorch)와 텐서플로(TensorFlow) 등이 있으며, 최근 몇 년간을 기준으로 파이토치의 점유율이 조금씩 커지고 있는 추세입니다. 깃허브 등에 들어가면 상당수의 머신러닝, 딥러닝 코드가 파이토치로 작성되고 있죠. 텐서플로만 쓸 줄 알았던 저 같은 유저들은 뒷목을 잡았습니다... 하지만 그렇다 해도 파이토치와 텐서플로 두 프레임워크의 장단점이 있기 때문에 파이토치와 텐서플로의 순서대로 두 프레임워크를 모두 배워보겠습니다. 04-01 파이토치(PyTorch) 개요 들..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-14 예외 처리

03-14 예외 처리 이제 파이썬 기능에 대한 마지막 포스트로 예외 처리에 대해 알아보겠습니다. 예외는 프로그램 실행 중 발생하는 오류를 뜻합니다. 이러한 오류가 발생하면 프로그램이 그 자리에서 멈추기 때문에, 때로는 이러한 예외가 발생하더라도 프록램이 그대로 실행되게끔 처리해주는 과정이 필요합니다. 이를 예외 처리라고 합니다. 예외 def) 예외 처리(exception handling): 프로그램이 처리되는 동안 특정한 문제가 일어났을 때 처리를 중단하고 다른 처리를 하는 것 (동의어: 오류 처리(trouble shooting)) 예외, 즉 오류, 에러에는 여러 종류가 있습니다. 대표적으로 아래 첫 번째 이미지에서 보는 것과 같이 어떤 수를 0으로 나누면, 수학적으로 0으로 나누는 것이 불가능하기 때문..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-13 클래스의 이해와 활용

03-13 클래스의 이해와 활용 저번 포스트에서 소개한 함수와 더불어, 코드를 더욱 용이하게 사용하기 위한 수단 중 하나로 클래스(class)가 존재합니다. 잘만 사용하면 매우 유용한 기능이지만, 입문자들에게 있어서는 함수와 함께 통곡의 벽 가장 큰 장벽으로 꼽히기도 합니다. 클래스와 관련된 메서드와 그 외의 기법들도 한 두 가지가 아니지만, 여기서는 가장 기본적인 클래스의 개념과 사용 방법 위주로 소개해보겠습니다. 클래스와 객체 흔히 클래스, 객체를 설명할 때 붕어빵 또는 과자 틀에 비유해서 이야기하고는 합니다. 어떤 식이냐면... 클래스: 붕어빵 (또는 과자) 틀 객체(object): 틀로 찍어낸 붕어빵 (또는 과자) 객체와 인스턴스(instance)라는 용어가 함께 사용되고 있으니 참고하세요. 두 ..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-12 함수의 이해와 활용

아이고... 예비군이니 뭐니 바쁘기도 하거니와 좀 쉬고 왔습니다. 다시 달려보죠! 03-12 함수의 이해와 활용 코드를 여러 케이스에 대해 반복적으로 적용해야 할 경우, 스크립트가 길어지기 마련입니다. 이를 위해서 함수, 그리고 다음 포스트에서 언급할 클래스를 적극적으로 활용하면 소스코드를 기능별로 분리할 수 있습니다. 이러면 코드의 가독성을 높일 수 있고 유지/정비가 용이해진다는 장점도 있습니다. 함수의 정의 함수는 영단어 define에서 따온 def 구문을 이용해 정의할 수 있습니다. 해당 구문 뒤에 함수의 이름, 함수에 들어갈 입력값 (그리고 반환하는 값이 있어야 할 경우 return 문) 등의 요소로 구성됩니다. 여기서 함수에 들어가는 입력값을 인수라고 합니다. 예를 들어, 숫자 3개를 입력받아 ..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-11 파일 입출력

03-11 파일 입출력 머신러닝과 딥러닝 영역에서 모든 작업을 파이썬으로만 수행하는 것은 아닙니다. 다른 프로그램 또는 플랫폼에서 만들어진 자료를 파이썬으로 불러와 작업을 하는 것이 오히려 더 일반적이죠. 또한 학습이 끝난 머신러닝 모델이나 예측 결과 데이터를 파이썬 바깥으로 내보내는 작업도 흔히 있는 일입니다. 프로그램이 종료된 후에도 열람할 수 있게 데이터를 저장하는 것은 매우 중요하죠. 저장을 생활화합시다 이번 포스트에서는 이러한 파일 입출력에 대해 알아보겠습니다. 파일 객체 일반적으로 우리가 어떤 프로그램에서 데이터를 열고 닫을 때 GUI를 쓰는 것과 달리, 프로그래밍 언어 상에서 파일을 열고 닫을 때는 다소 비직관적이지만 널리 통용되는 방법이 있습니다. 파일의 주소에 접근한 후에 그 상태에서 파..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-10 반복문

03-10 반복문 어느 프로그래밍 언어든지 가장 중요한 문법 하나를 꼽으라면 반복문의 존재가 아닐까 합니다. 하나의 코드로 수행해야 하는 작업을 여러 번 반복해야 할 경우, 반복문을 적용하는 것만으로 사용자의 수고를 덜고 효율적인 작업이 가능하기 때문이죠. 파이썬에서는 for문이 대표적으로 사용되고, 이를 지난 포스트에서 설명한 조건문과 합친 while 반복문도 사용됩니다. for 문법 for 문은 반복 횟수를 지정한 후, 그 횟수만큼 정해진 문법을 수행하는 반복문입니다. 파이썬의 for 문은 여러 가지 괴랄한 변칙적인 적용이 가능한데, 이는 타 언어에서 횟수를 지정하는 카운터만을 이용하는 것과 달리 리스트 또는 튜플 내의 원소 자체를 카운터의 척도로 이용할 수 있기 때문입니다. 말로 설명하긴 뭐하니 예..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-09 조건문

03-09 조건문 개발자들(특히 웹 개발자들) 사이에는 유서 깊은 개싸움토론 주제가 하나 전해져 내려옵니다. 웹 개발에 쓰이는 HTML은 과연 프로그래밍 언어인가? 결론부터 말하자면 HTML은 프로그래밍 언어로 보기는 어렵습니다. 그 이유 중 하나로, 조건문, 반복문, 변수가 없기 때문이라는 측면이 있습니다. HTML은 문서나 데이터의 구조를 표현하는 언어인 마크업 언어(MarkUp Language)로 분류됩니다. 이 뿌리 깊은 발작 버튼논쟁을 먼저 소개한 이유는, 이번 포스트와 다음 포스트에서 조건문과 반복문을 다루기 때문입니다. 프로그래밍 언어로 논리(로직)를 실행하고 구성하려면 이러한 조건문, 반복문의 이용은 피할 수 없습니다. 조건문 조건문은 프로그램 실행의 흐름을 제어합니다. 특정 길이 이상의 ..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-08 참과 거짓 자료형

03-08 참과 거짓 자료형 오늘날의 디지털 컴퓨터들이 모든 정보를 0 또는 1로 구분한다는 점은 아마 많이들 알고 계실 겁니다. 이 특성을 이용한 자료형이 있는데 일명 불 또는 부울(Bool, Boolean) 자료형입니다. 이 자료형은 참과 거짓을 판별하는 논리 연산자의 역할을 합니다. 이번 포스트에서는 이러한 참, 거짓 자료형에 대해 정리해보겠습니다. 부울 자료형 부울 자료형은 컴퓨터과학에서 말하는 논리 연산(logical operation)에 뿌리를 두고 있습니다. 참과 거짓이라는 두 상태를 이용하며, 논리 연산을 하는 게이트(gate)를 조합하는 데에도 사용됩니다. 보통 참(True, T)을 1로 놓고 거짓(False, F)을 0으로 놓곤 합니다. 파이썬에서는 변수에 True, False를 할당함..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-07 사전 자료형과 집합 자료형

03-07 사전 자료형과 집합 자료형 딥러닝 공부를 시작하고 코딩에도 어느 정도 숙달될 무렵까지도 저는 이 두 자료형의 중요성을 깨닫지 못했습니다. 그리고 함수에 키워드를 추가할 일이 생기자 그제서야 이걸 배운 이유를 깨우쳤습니다... 항상 깨달음이 늦어 오늘 소개할 이 두 자료형은 특정한 원소의 존재 여부를 빠르게 확인하고 추가/삭제할 수 있습니다. 들어가기에 앞서 사전 자료형의 명칭은 영문 명칭인 딕셔너리(dictionary)를 직역한 이름입니다. 파이썬을 다룬 서적마다 다르기는 하지만 보통 딕셔너리라는 영문명 그대로 사용하기 때문에 이 포스트에서도 딕셔너리 자료형이라는 이름이 혼용되었음을 알려드립니다. 또한 다른 프로그래밍 언어 등에서는 연관 배열(associative array), 해쉬(hash)..

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-06 리스트 자료형과 튜플 자료형

03-06 리스트 자료형과 튜플 자료형 프로그래밍을 할 때는 변수 한 두개를 다루는 것이 아니라 수백, 수천 개 이상의 변수를 다뤄야 할 때가 많습니다. 멀리 갈 것도 없이, 전교생의 성적을 처리할 때 학생 수가 백 명, 천 명을 넘어가는 경우는 드물지 않죠. 따라서 이와 같이 여러 변수를 하나로 묶어서 처리할 수 있는 자료형이 필요한데, 리스트(list)와 튜플(tuple)이 바로 그것입니다. 리스트 자료형 이미 자료구조 편부터 파이썬의 리스트를 각종 자료구조와 비교하면서 설명했기 때문에 익숙하실 지도 모르겠습니다.내적 친밀감 대략적으로 그 특징을 짚고 넘어가자면 아래와 같습니다. 대괄호 [] 안에 여러 원소들을 쉼표로 구분해 넣을 수 있다. 인덱싱이나 슬라이싱을 사용할 수 있다. 원소를 수정할 수 있..