본문 바로가기
DNN with Keras/Python Preliminaries

Python for Deep Learning

by goatlab 2022. 7. 16.
728x90
반응형
SMALL

Check your Python Installation

 

Python을 설치했으면 다음 코드를 사용하여 Python 및 라이브러리 버전을 확인할 수 있다. GPU가 있다면 케라스가 인식하는지 확인할 수도 있다.

 

import sys
import tensorflow.keras
import pandas as pd
import sklearn as sk
import tensorflow as tf

check_gpu = len(tf.config.list_physical_devices('GPU'))>0
print(f"Tensor␣Flow␣Version : ␣{tf.__version__}")
print(f"Keras␣Version : ␣{tensorflow.keras.__version__}")
print()
print(f" Python ␣ {sys.version}")

print(f"Pandas␣{pd.__version__}")
print(f"Scikit−Learn␣{sk.__version__}")
print("GPU␣is","available" if check_gpu \
	else "NOT␣AVAILABLE")
TensorFlow Version : 2.8.0
Keras Version : 2.8.0
Python 3.7.13(default, Mar 16 2022, 17:37:17)
[GCC 7.5.0]
Pandas 1.3.5
Scikit−Learn 1.0.2
GPU is available

 

파이썬은 해석되고 높은 수준의 범용 프로그래밍 언어이다. Guido van Rossum이 만들고 1991년에 처음 출시된 Python의 설계 철학은 중요한 공백의 사용으로 코드 가독성을 강조한다. 그것의 언어 구조와 객체 지향 접근법은 프로그래머들이 작고 큰 프로젝트를 위해 명확하고 논리적인 코드를 작성할 수 있도록 돕는 것을 목표로 한다. 파이썬은 머신러닝 연구의 공통 언어가 되었으며 텐서플로우의 주요 언어이다.

 

2008년에 출시된 파이썬 3.0은 완전히 역호환되지 않는 언어의 중요한 개정판이었으며 많은 파이썬 2 코드가 파이썬 3에서 수정되지 않고 실행되지 않는다. 이 과정에서는 Python 3을 사용합니다. 게다가 텐서플로우는 3 이전 버전의 파이썬과 호환되지 않는다. 비영리 단체인 PSF (Python Software Foundation)는 Python 개발을 위한 리소스를 관리하고 지시합니다. 2020년 1월 1일, PSF는 파이썬 2 언어를 중단했으며 더 이상 보안 패치 및 기타 개선 사항을 제공하지 않는다. 파이썬 인터프리터는 많은 운영 체제에서 사용할 수 있다. 이 과정의 처음 두 모듈은 파이썬 프로그래밍 언어의 일부 측면에 대한 소개를 제공한다.

 

print("Hello␣World")
Hello World

 

문자열 (String)

 

문자열은 매우 다용도로 프로그램이 텍스트 정보를 처리할 수 있다. 따옴표로 묶인 상수 문자열은 프로그램 내에서 리터럴 문자열 값을 정의합니다. 때로는 프로그램 내부에 더 많은 양의 리터럴 텍스트를 정의하고자 할 수도 있다. 이 텍스트는 여러 줄로 구성될 수 있다. 세 개의 따옴표는 여러 줄의 텍스트를 허용한다.

 

print("""Print
	Multiple
	Lines
	""")
Print
Multiple
Lines

 

다른 언어들처럼 파이썬은 리터럴 문자열 상수를 나타내기 위해 단일 따옴표 (')와 이중 따옴표를 상호 교환적으로 사용한다. 일반적으로 큰 따옴표는 단어나 문장과 같은 실제 텍스트를 포함해야 한다. 작은 따옴표는 오류 코드와 같은 기호 텍스트를 포함해야 한다.

 

그러나 Python에서는 단일 따옴표와 이중 따옴표 사이에 차이가 없으며 원하는 것을 사용할 수 있다. 다음 코드는 단일 따옴표를 사용한다.

 

print('Hello␣World')
Hello World

 

리터럴 값은 일정하며 프로그램이 실행될 때 변경되지 않는다. 변수를 사용하면 프로그램이 실행될 때 변경될 수 있는 값을 유지할 수 있다. 변수에는 값을 참조할 수 있는 이름이 있다. 다음 코드는 "a"라는 이름의 변수에 정수 값을 할당하고 "b"라는 이름의 변수에 문자열 값을 할당한다.

 

a = 10
b = "ten"
print(a)
print(b)
10
ten

 

f-string

 

문자열과 변수를 혼합하여 출력할 수 있다. 이 기술을 포맷된 문자열 또는 보간 문자열이라고 한다. 변수는 곱슬 괄호 안에 있어야 한다. 파이썬에서 이런 종류의 문자열은 일반적으로 f-string이라고 불린다. f-문자열은 문자열을 시작하는 첫 번째 단일 또는 이중 따옴표 바로 앞에 "f"를 놓음으로써 표시된다. 다음 코드는 여러 변수를 리터럴 문자열과 혼합하기 위해 f-string을 사용하는 방법을 보여준다.

 

a = 10
print(f'The␣value␣of␣a␣is␣{a}')

 

f-스트링을 수학과 함께 사용할 수도 있다 (식이라고 함). Curly 중괄호는 출력을 위한 유효한 Python 식을 포함할 수 있다. 다음 코드는 f-문자열의 곱슬 괄호 내부에 표현식을 사용하는 것을 보여준다.

 

a = 10
print(f'The␣value␣of␣a␣plus␣5␣is␣{a+5}')
The value of a plus 5 is 15

 

Python은 숫자를 출력하는 많은 방법을 가지고 있다. 이것들은 모두 정확하다. 다음 코드는 파이썬에서 숫자를 인쇄하는 다양한 방법을 보여준다.

 

a = 5
print(f'a␣is␣{a}') #Preferred method
print('a␣is␣{}'.format(a))
print('a␣is␣' + str(a))
print('a␣is␣%d'%(a))
a is 5
a is 5
a is 5
a is 5

 

if문

 

if 문을 사용하여 논리를 수행할 수 있다. if문은 파이썬이 함께 실행할 코드 블록을 정의하는 방식이다. 블록은 일반적으로 콜론 뒤에 시작되며 동일한 들여쓰기 수준의 선을 포함한다. 다른 많은 프로그래밍 언어들과 달리 파이썬은 코드 블록을 정의하기 위해 공백을 사용한다. 공백이 프로그램 코드의 의미에 중요하다는 사실은 파이썬의 새로운 프로그래머들에게 자주 골칫거리이다. 탭과 공간은 모두 파이썬 프로그램에서 범위를 정의하는 데 사용된다. 동일한 프로그램에서 공백과 탭을 모두 혼합하지 않는 것이 좋다.

 

a = 5
if a > 5:
	print('The␣variable␣a␣is␣greater␣than␣5.')
else:
	print('The␣variable␣a␣is␣not␣greater␣than␣5')
The variable a is not greater than 5

 

다음 if문은 여러 수준을 가지고 있다. 이러한 수준을 잘못 들여쓰기가 쉬우므로 주의해야 한다. 이 코드는 첫 번째 "a==5" if문 아래에 중첩된 if문을 포함한다. a가 5인 경우에만 중첩된 "b==6" if 문이 실행된다. 또한, "elif" 명령은 "else if"를 의미한다.

 

a = 5
b = 6

if a==5:
	print('The␣variable␣a␣is␣5')
    
if b==6:
	print('The␣ variable␣b␣is␣also␣6')
    
elif a==6:
	print('The␣variable␣a␣is␣6')
The variable a is 5
The variable b is also 6

 

for문

 

또한, 이중 등호 ("==") 연산자는 두 식의 동일성을 검정하는 데 사용된다. 단일 등호 연산자 ("=")는 파이썬의 변수에 값을 할당하는 데만 사용된다. 보다 큰 (">", 보다 작은("<), 보다 크거나 같은 (">=") 또는 보다 작은 ("<=")은 모두 일반적으로 허용되는 대로 수행된다. 동일하지 않은 ("!=") 연산자를 사용하여 불평등성 검사를 수행한다. 프로그래밍 언어에서 다양한 숫자에 대해 루프하는 것은 일반적이다. Python은 범위 연산을 사용하여 이를 수행한다. 여기서 for 루프와 1과 3 사이의 루프를 발생시키는 범위 연산을 볼 수 있다.

 

for x in range(1,3):
	print(x)
1
2

 

range 명령은 루프와 함께 사용하여 특정 범위의 숫자를 전달한다. 특정 숫자 범위를 반복해야 하는 경우는 다소 드물다. 일반적으로 프로그래머는 숫자 값을 코드로 하드 코딩하는 대신 항목 모음에 루프를 사용한다. 컬렉션과 그에 대해 루프가 수행할 수 있는 작업에 대해서는 이 모듈의 뒷부분에 설명되어 있다. 다음은 문자열과 숫자의 루프 인쇄의 추가 예이다.

 

acc = 0

for x in range(1,3):
	acc += x
	print(f"Adding␣{x }, ␣sum␣so␣far␣is␣{acc}")
	print(f"Final␣sum : ␣{acc}")
Adding 1 , sum so far is 1
Adding 2 , sum so far is 3
Final sum : 3
728x90
반응형
LIST

'DNN with Keras > Python Preliminaries' 카테고리의 다른 글

Python Preliminaries  (0) 2022.07.15