1.파이썬에서는 클래스 정의는def.. 그리고 기본 인자로 self
오브젝트와 인스턴스의 관계?
붕어빵 틀 클래스
실제로 구워낸 건 붕어빵
붕어빵을 구별하는건 인스턴스
2.상속
UML클래스 참고
3.다중상속 vs 단일상속
다중상속 : C++ , Python : Class ~(A,B)
UML에서는 삼각형머리에 실선(방향 자식0>부모)
다중상속의 예시
class Person:
def greeting(self):
print('안녕하세요.')
class University:
def manage_credit(self):
print('학점 관리')
class Undergraduate(Person, University):
def study(self):
print('공부하기')
james = Undergraduate()
james.greeting() # 안녕하세요.: 기반 클래스 Person의 메서드 호출
james.manage_credit() # 학점 관리: 기반 클래스 University의 메서드 호출
james.study() # 공부하기: 파생 클래스 Undergraduate에 추가한 study 메서드
단일상속(주류) : 자바, C#, 삼각형 머리에 점선(방향 자식->부모)
다중상속의 문제점 : 상속을 받고 나서 재활용을 얼마나 하나?
10개의 메소드를 가지는 클래스를 상속받았어, 이중에 5개만 활용함. 안 쓰는 나머지 코드 5개가 메모리 차지 -> 시스템 부하발생
약점을 보완 --> interface(여러 개를 받는 것이 가능)
-클래스
-인터페이스
-파이썬기반 오픈소스 딥러닝 라이브러리
-최신버전 1.12
-페이스북이 주도
기존의 caffe2와 통합(2018.3) 토치와 카페가 합쳐져서 파이토치
ONYX(Open Neural Network Exchange)
GPU가속 지원(Nvidia CUDA)
-텐서플로와 같이 딥러닝분야 Big2
-텐서플로2 이후 케라스(Keras) 중심
에 대한 반발로 PyTorch사용빈도 증가
-자연어/영상처리(YOLO) 처리분야에서
텐서플로에 비해 많이 사용됨
-일반적인 파이썬 코딩과 비슷
-파이토치는 일반적인 프로그램과 유사한 구조라 상대적으로 직관적이고 이해하기
쉬움
-세션이 필요하지 않다.
-텐서 선언
-계산 그래프 생성(Define)
-세션생성
-데이터 입력(feed_dict 옵션 사용) -> 코드 실행(run/eval)
-비직관적이고난이도가 높다 -> keras 로 전환(텐서플로2)
텐서가 무엇인고? = 그냥 행렬이다. 텐서플로우는 텐서를 정의하고 조작하면서 뭐하겠다는거
!pip3 install tensorflow
import tensorflow as tf
tf.compat.v1.disable_eager_execution() # linebyline을 끊다(원래 오리지날 함수지만 호환성을 위해 2에서 1쓸때 필요한 코드)
x = tf.constant(1, name='x') # 텐서 정의
print(x) # rank/shape/dtype
y = tf.Variable(x+9,name='y')
print(y)
model = tf.compat.v1.global_variables_initializer() # 텐서 초기화
with tf.compat.v1.Session() as session:
session.run(model)
print(session.run(y))