pytorch 의 N.Sequential(*net[3:5])이 무슨 뜻 인지 말씀 드 리 겠 습 니 다.

코드 에 이게 있 더 라 고요.
在这里插入图片描述

1 class ResNeXt101(nn.Module):
    2 def __init__(self):
        3 super(ResNeXt101, self).__init__()
        4 net = resnext101()
        # print(os.getcwd(), net)

        5 net = list(net.children())  # net.children()  resneXt      
        # for i, value in enumerate(net):
        #     print(i, value)
        6 self.layer0 = nn.Sequential(net[:3])  #       0, 1, 2  
        print(self.layer0)
        7 self.layer1 = nn.Sequential(*net[3: 5])  #  3, 4    
        8 self.layer2 = net[5]
        9 self.layer3 = net[6]
코드 의 여섯 번 째 줄(번 호 는 스스로 지우 고 내 가 올 린 것)self.layer0 = nn.Sequential(net[:3])
일곱 번 째 줄self.layer1 = nn.Sequential(*net[3: 5])하나 있어 요nn.Sequential(net[:3])nn.Sequential(*net[3: 5])오늘 은 용법,의미,역할 을 말 하지 않 습 니 다.저도 잘 모 르 기 때 문 입 니 다.놀 라 서nn.Sequential()이 걸 왜 가 져 왔 는 지*net[3: 5]코드 에“ * ”가 없 을 때 다음 과 같은 문제 가 발생 합 니 다.
在这里插入图片描述
목록 이 하위 클래스 가 아니 라 매개 변수 가 틀 렸 다 는 뜻 이다.

net = list(net.children())
이 줄 코드 는 모델 의 각 층 을 꺼 내 목록 을 만 들 고 직접 인쇄 해 보면 됩 니 다.대충 출력 은*등등.
在这里插入图片描述
모두 요소 입 니 다.일반적인 목록 과 는 다 릅 니 다.
우리 가[conv(),BatchNorm2d(), ReLU,MaxPool2d]를 가 져 왔 을 때 들 어 오 는 매개 변 수 는 목록 이지 만net[:3]을 사용 할 때 들 어 오 는 것 은 하나의 요소 입 니 다.

list1 = ["conv", ("relu", "maxing"), ("relu", "maxing", 3), 3]
list2 = [list1[:1]]
list3 = [*list1[:1]]
print("list2:{}, *list1[:2]:{}".format(list1[:1], *list1[:1]))
在这里插入图片描述
결과✳리스트✳원소 이기 때문에*net[:3]중의nn.Sequential(*net[3: 5])는 바로*net[3: 5]이 용기 에 여러 층 으로 들 어 가 는 것 이다.
pytorch 에 있 는 N.Sequential(*net[3:5])이 무슨 뜻 인지 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 pytorch N.Sequential(*net[3:5])내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기