주요 콘텐츠

visionTransformer

사전 훈련된 ViT(Vision Transformer) 신경망

R2023b 이후

    설명

    [net,classNames] = visionTransformer는 패치 크기가 16인 기본 크기의 ViT 신경망(8,680만개 파라미터)을 반환합니다. 이 신경망은 384×384 해상도로 ImageNet 2012 데이터 세트를 사용하여 미세 조정되었습니다.

    이 기능을 사용하려면 Deep Learning Toolbox™ 라이선스와 Computer Vision Toolbox™ Model for Vision Transformer Network 지원 패키지가 필요합니다. 애드온 탐색기에서 이 지원 패키지를 다운로드할 수 있습니다. 자세한 내용은 애드온을 받고 관리하기 항목을 참조하십시오.

    예제

    [net,classNames] = visionTransformer(modelName)은 지정된 모델 이름을 사용하여 ViT 신경망를 반환합니다.

    [net,classNames] = visionTransformer(___,Name=Value)는 하나 이상의 이름-값 인수를 사용하여 추가 옵션을 지정합니다.

    예제

    모두 축소

    visionTransformer 함수를 사용하여 사전 훈련된 ViT 신경망을 불러옵니다. Computer Vision Toolbox™ Model for Vision Transformer Network 지원 패키지가 설치되어 있지 않은 경우, 필요한 지원 패키지로 연결되는 애드온 탐색기 링크를 함수에서 제공합니다. 지원 패키지를 설치하려면 링크를 클릭한 다음 설치를 클릭하십시오.

    사전 훈련된 ViT 신경망과 클래스 이름을 불러옵니다. 필요한 지원 패키지가 설치되어 있는 경우, 함수가 dlnetwork 객체와 클래스 이름으로 구성된 string형 배열을 반환합니다.

    [net,classNames] = visionTransformer;

    신경망을 확인합니다.

    net
    net = 
      dlnetwork with properties:
    
             Layers: [143×1 nnet.cnn.layer.Layer]
        Connections: [167×2 table]
         Learnables: [200×3 table]
              State: [0×3 table]
         InputNames: {'imageinput'}
        OutputNames: {'softmax'}
        Initialized: 1
    
      View summary with summary.
    
    

    클래스 개수를 확인합니다.

    numClasses = numel(classNames)
    numClasses = 
    1000
    

    입력 인수

    모두 축소

    모델 이름으로, 다음 값 중 하나로 지정됩니다.

    모델 이름신경망 이름파라미터 메모리파라미터(단위: 백만)영상 입력 크기입력값 범위입력 계층 정규화
    "base-16-imagenet-384"

    기본 크기의 ViT(패치 크기가 16임, 384×384 해상도로 ImageNet 2012 데이터 세트를 사용하여 미세 조정됨)

    331MB86.8384×384[0, 255]"zscore"
    "small-16-imagenet-384"작은 크기의 ViT(패치 크기가 16임, 384×384 해상도로 ImageNet 2012 데이터 세트를 사용하여 미세 조정됨)85MB22.1384×384[0, 255]"zscore"
    "tiny-16-imagenet-384"매우 작은 크기의 ViT(패치 크기가 16임, 384×384 해상도의 ImageNet 2012 데이터 세트를 사용하여 미세 조정됨)22MB5.7384×384[0, 255]"zscore"

    이름-값 인수

    모두 축소

    선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

    예: visionTransformer(DropoutProbability=0.2)는 드롭아웃 확률이 0.2로 설정된 사전 훈련된 Vision Transformer 신경망을 반환합니다.

    드롭아웃 계층에서 입력 요소를 제외할 확률로, [0, 1) 범위의 스칼라로 지정됩니다.

    드롭아웃 계층이 있는 신경망을 훈련시키는 경우, 이 계층은 드롭아웃 마스크 rand(size(X)) < p를 사용하여 입력 요소를 무작위로 0으로 설정합니다. 여기서 X는 계층 입력값이고 p는 계층 드롭아웃 확률입니다. 그런 다음, 계층은 나머지 요소를 1/(1-p)만큼 스케일링합니다.

    이 작업은 신경망의 과적합을 방지하는 데 도움이 됩니다[2], [3]. 수치가 높을수록 신경망은 훈련 중에 더 많은 요소를 제외합니다. 예측 시점에는 계층의 출력값이 입력값과 동일합니다.

    데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    어텐션 계층에서 입력 요소를 제외할 확률로, [0, 1) 범위의 스칼라로 지정됩니다.

    어텐션 계층이 있는 신경망을 훈련시키는 경우, 계층은 드롭아웃 마스크 rand(size(scores)) < p를 사용하여 어텐션 점수를 무작위로 0으로 설정합니다. 여기서 scores는 계층 입력값이고 p는 계층 드롭아웃 확률입니다. 그런 다음, 계층은 나머지 요소를 1/(1-p)만큼 스케일링합니다.

    이 작업은 신경망의 과적합을 방지하는 데 도움이 됩니다[2], [3]. 수치가 높을수록 신경망은 훈련 중에 더 많은 요소를 제외합니다. 예측 시점에는 계층의 출력값이 입력값과 동일합니다.

    데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    출력 인수

    모두 축소

    사전 훈련된 ViT 신경망으로, dlnetwork (Deep Learning Toolbox) 객체로 반환됩니다.

    클래스 이름으로, string형 배열로 반환됩니다.

    참고 문헌

    [1] Dosovitskiy, Alexey, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani et al. "An Image is Worth 16x16 words: Transformers for Image Recognition at Scale." Preprint, submitted June 3, 2021. https://doi.org/10.48550/arXiv.2010.11929.

    [2] Srivastava, Nitish, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. "Dropout: A Simple Way to Prevent Neural Networks from Overfitting." The Journal of Machine Learning Research 15, no. 1 (January 1, 2014): 1929–58

    [3] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386.

    확장 기능

    모두 확장

    버전 내역

    R2023b에 개발됨

    참고 항목

    | (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox)

    도움말 항목