IT/인공지능

[딥러닝] 딥러닝과 파이썬의 기초_1

U.N.nwonk 2021. 8. 19. 02:19

 딥러닝에 대해 공부하면서, 복습도 할겸 겸사겸사 포스팅을 해보고자 한다. 책과 구글링을 통해서 공부하고 있으며, 모르는 부분이 있으면 구글링과 책을 보고 부족한 부분을 추가로 작성할 것이다. ( 이번 학기는 4전공이기에 학점을 위해 미리 예습하고자 하는 공부라,, 공부량이 많을 수 밖에 없어 포스팅에 오타가 많을 수 있다,,,🥲 )

기기는 맥북 프로(M1)를 사용했고 파이썬3, 아나콘다를 설치했다.(아나콘다 설치할 때, 맥북 환경변수 설정을 하지 않으면 오류가 발생할 수 있으니 명령어 경로는 수정할 수 있도록 합시다!)

아나콘다 경로에러 참고 문서
https://youngq.tistory.com/78
 

[맥 아나콘다 에러] 아나콘다 경로 에러

아나콘다 에러 해결하기 UPDATA : 2019.11.20 최근 맥북의 OS업데이트와 아나콘다의 버전 업데이트가 비슷한 시기에 있었습니다. 덕분에 정확하게 누구 문제인지는 모르겠지만, 오랜만에 Jupyter notebook

youngq.tistory.com

 

딥러닝을 위해 파이썬을 설치하는 이유

 파이썬(Python)은 과학 분야, 특히 기계학습과 데이터 과학 분야에서 널리 쓰인다. 파이썬 자체의 뛰어난 성능에 넘파이와 사이파이(SciPy)같은 수치 계산과 통계 처리를 다루는 탁월한 라이브러리가 더해져 데이터 과학 분야에 확고한 위치를 차지한다또한 딥러닝 프레임워크 쪽에서도 파이썬을 애용한다.

예를 들어 카페(Caffe), 텐서플로(TensorFlow), 체이너(Chainer), 테아노(Theano) 유명 딥러닝 프레임워크들이 파이썬용 API 제공한다. 그렇기에딥러닝 프레임워크를 사용할  반드시 도움이 된다. 

현재의 파이썬은 2버전과 3버전이 있다. 3버전이 나왔지만 2버전도 많이 사용되고 있다.  둘은 100%호완되지 않기 때문에(하위호완성이 없다) 파이썬 3으로  코드가 파이썬 2에서는 실행하지 못하는 일도 생긴다. 여기서는 3버전을 쓰기 때문에 파이썬 3 설치하길 바란다외부 라이브러리는 최소한으로 2개만 사용한다. 넘파이, matplotlib  가지다. 넘파이는 수치 계산용 라이브러리다. 고도의 수학 알고리즘과 배열(행렬) 조작하기 위한 편리한 메소드가 많이 있다.  메소드를 이용하면 딥러닝을 효율적으로 구현할  있다Matplotib 그래프를 그려주는 라이브러리다. 실험 결과를 시각화하거나 딥러닝 실행 과정의 중간 데이터를 시각적으로 확인할  있다.

파이썬 인터프리터

터미널(윈도우 - cmd, 맥 - 터미널)에 접속하여

$ Python –version 명령어를 실행한다면 파이썬의 버전을 출력한다. 

파이썬 인터프리터는 대화 모드 하여, 개발자와 파이썬이 대화하듯 프로그래밍이 가능하다. ‘대화하듯 개발자가 1+2? 이라고 물으면 파이썬 이터프리터가 곧바로 3이라고 대답한다는 의미이다. 실제로

>>> 1+2
3

이렇게 출력되는 모습을   있다.

 

산술 연산

덧셈과 곱셈 등의 산술 연산을   있다.

* 곱셈 / 나눗셈 ** 거듭제곱을 의미한다

이 부분은 너무 간단하니 생략하겠다.

 

자료형

프로그래밍언어에는 자료형(data type)이라는 것이 있다. 자료형이란 데이터의 성질을 나타내는 것으로, 예를 들어 정수, 실수, 문자열과 같은형태가 있다. 파이썬에서는 type() 함수로 특정 데이터의 자료형을 알아볼  있다.

>>> type(10)
<class ‘int’>

Int 정수 float 실수, str 문자열형이다. 자료형과 클래스(class)라는 말을 같은 의미로 사용하는 경우도 있다.

 

변수

X y등의 알파벳을 사용하여 변수(variable) 정의할  있다. 또한 변수를 사용하여 계산하거나 변수에 다른 값을 대입할 수도 있다.

인터프리터에 출력한 모습이다.

>>> x=10
>>> print(x)
10
>>> y=3.14
>>> x * y
31.4
>>> # 주석처리 : 이 문장은 파이썬에서 생략됨.

 파이썬은 동적 언어로 분류되는 프로그래밍 언어이다. 동적이라 함은 변수의 자료형을 상황에 맞게 자동으로 결정한다는 뜻이다. 앞의 예에서 x 자료형이int(정수) 라는 것을 사용자가 명시한적이 없는 것처럼 10이라는 정수로 초기화할 , x 형태가 int임을 파이썬이 스스로 판단하는 것이다. 또한, 정수와 실수를 곱한 결과는 실수가 되었다(자동 형변환). 마지막으로 # 주석의 시작을 알리는 문자이다. # 이후의 문자는 모두 무시된다.

 

리스트
>>> a = [1, 2, 3, 4, 5] # 리스트 생성
>>> print(a)
[1, 2, 3, 4, 5]
>>> a[4] = 99 # a라는 리스트의 5번째 항목에 99의 값을 저장한다. ( 인덱스는 0부터 시작하기에 4는 5번째 값을 의미함)
>>> pinrt(a)
 [1, 2, 3, 4, 99]

원소에 접근할 때는 a[0]처럼 한다. []안의 수를 인덱스(색인) 하며 인덱스는 0부터 시작한다(인덱스 0  번째 원소를 가리킨다). 또한 파이썬 리스트에는 슬라이싱(slicing)이라는 편리한 기법이 준비되어 있다슬라이싱을 이용하면 범위를 지정해 원하는 부분 리스트를 얻을  있다.

Ex) a[0:2] # 2 포함하지 않음

햇갈릴 여지가 있으니 예시를 하나 더 보여주겠다.

>>> # 예시2
>>> a[1:] # 인덱스 1부터 끝까지 얻기
[2, 3, 4, 99]
>>> a[ :3] # 처음부터 인덱스 3까지 얻기(3번째는 포함하지 않는다)
[1, 2, 3]
>>> a[:-1] # 처음부터 마지막 원소의 1개 앞까지 얻기
[1, 2, 3, 4]
>>> a[:-2] # 처음부터 마지막 원소의 2개 앞까지 얻기
[1, 2, 3]
# 리스트를 슬라이싱하려면 a[0:2]처럼 쓴다. a[0:2]는 인덱스 0부터 1(2보다 하나 앞) 까지의 원소를 꺼낸다. 인덱스 번호 -1은 마지막 원소, -2는 끝에서 한개 앞의 원소에 해당한다.

 

딕셔너리

리스트는 인덱스 번호로 0, 1, 2, … 순으로 값을 저장하는 반면, 딕셔너리(dictionary) 키값을  쌍으로 저장한다. , 영한사전처럼 단어와  의미를 함께 저장하는 것이다.

>>> me = {‘height’ : 180} # 딕셔너리 생성
>>> me[‘height’] # 원소에 접근
180
>>> me[‘weight’] = 70
>>> print(me)
{‘weight’ : 70, ‘height’ : 180}

 

bool

파이썬에는 bool(bool / Boolean) 이라고 불리는 자료형이 있다.  자료형은 True() False(거짓)라는    하나를 취한다. Bool에는 and, or, not 연산자를 사용할  있다.

>>> in = True # 안에 있다
>>> out = False # 밖에 있다
>>> type(in)
<class ‘bool’>
>>> not in
False
>>> in and out # 안에 있으면서 밖에 있다.
False
>>> in or out # 안에 있거나 밖에 있다.
True

 

if 문

조건에 따라 if / else 문을 사용하면 된다.

>>> hungry = True
>>> If hungry:
                    Print(“I’m hungry”)


I’m hungry
>>> hungry = False
>>> If hungry:
                    Print(“I’m hungry”)
    Else:
                    Print(“I’m not hungry”)
                    Print(“I’m sleepy”)

I’m not hungry
I’m sleepy

파이썬에서는 공백 문자가 중요한 의미를 지닌다이번 if문에서도 if hungry: 다음 줄은 앞쪽에 4개의 공백문자가 있다 들여쓰기는 지난 조건(if hungry) 충족될  실행되는 코드를 표현한다.

#TIP : 공백 대신 (tab)문자를 써도 되지만 파이썬에서는 공백 문자 쪽을 권장한다. 그리고  단계  들여  때마다 공백 4개씩을  추가하는 것이일반적이다. (근데 귀찮으면 탭 써도 된다. 오류는 안난다.)

 

for문

반복문(루프) 처리에는 for 사용한다.

>>> for I in[1, 2, 3, 4]
…                 Print(i)

1
2
3
4

여기에서는 [1,2,3,4]이라는 리스트 안의 원소를 하나씩 출력하는 예를 보여주었다. For…in…:구문을 사용하면 리스트  데이터 집합의  원소에 차례로 접근할  있다.

 

함수

특정 기능을 수행하는 일련의 명령들을 묶어 하나의 함수(function)으로 정의할  있습니다

>>> def hello():
…                 print(“Hello World!”)

>>> hello()
Hello World!
함수는 인수를 취할 수 있다. 또한, +연산자를 사용하여 문자열을 이어 붙일 수 있다.
>>> def hello(object):
…                 print(“Hello “ + object + “!”)

>>> hello(“cat”)
Hello cat!

파이썬 인터프리터를 종료하려면 리눅스와 맥에서는 ctrl +D 입력하면 된다.

반응형

'IT > 인공지능' 카테고리의 다른 글

[인공지능] 뇌에 관하여  (0) 2021.08.07
[인공지능] 지능이란 무엇일까?  (0) 2021.08.06