from torchvision import models
:
torchvision :딥러닝 이미지 관련 도구 제공
그 안의 models 을 import 한다
>> torchvision.models
> resnet18 = models.resnet18(pretrained=True) 로 간단하게 사용 가능
dir(): 객체 내부의 모든 멤버(속성, 메서드)를 확인
class Person:
def __init__(self, name): # 생성자 정의
self.name = name # 인스턴스 변수 초기화
p = Person("Alice") # Person 객체 생성, name="Alice"
print(p.name) # 출력: Alice
1. Person 이라는 객체 생성
2. init : self (나자신) 의 name > self.name 속성
3. name 으로 초기화
4. Person 에 현재 생성자는 self.name 뿐 이므로 거기에 Alice 저장
//
self는 객체 자신을 나타내는 특별한 매개변수, 직접 사용 X
- self : 클래스 내부에서만 사용
- 외부 : self 없이 바로 속성에 접근
//
5. p 라는 객체를 만들고 거기의 name 속성에 Alice를 저장
// 이때 p 를 클래스 Person 으로 만든 인스턴스 라고 함
6. 출력
//
self.속성 = 초기화 값
1. 속성 /= 초기화값
ex) self.heart = 120
p=Person(130) > 을 해도 120 고정값
2. 속성 = 초기화값
ex) self.heart = heart
p=Person(130) > 130 : 이때 매개변수를 활용할 수 있음
resnet101 > 101
네트워크의 계층 수(layer count) > 즉, 모델 내에 101개의 레이어가 있음
// 레이어 : 신경망의 각 층을 의미
>> resnet101 모델 : 101개의 레이어를 거쳐서 최종적으로 하나의 결과물을 출력
conv1: 첫 번째 합성곱층. // 콘볼루션
이미지의 기본 특징을 추출.
layer1 :
(0) Bottleneck 구조
with open("imagenet_classes.txt") as f:
- imagenet_classes.txt 파일 open , f : 파일 객체를 가리킴.
- with 구문 : 파일을 자동으로 닫아줌 > 파일을 열고 닫는 과정을 안전하게 처리할 수 있음
f.readlines()
- 파일의 모든 줄을 읽어서 리스트로 반환, 각 리스트 항목 : 파일의 한 줄에 해당합니다.
strip() : 문자열의 앞뒤 공백을 제거