Main Content

squeezenet

(권장되지 않음) SqueezeNet 컨벌루션 신경망

  • SqueezeNet network architecture

squeezenet 함수는 권장되지 않습니다. 대신 imagePretrainedNetwork 함수를 사용하십시오. 자세한 내용은 버전 내역을 참조하십시오.

설명

SqueezeNet은 18개 계층으로 구성된 컨벌루션 신경망입니다. ImageNet 데이터베이스의 1백만 개가 넘는 영상에 대해 훈련된 신경망의 사전 훈련된 버전을 불러올 수 있습니다 [1]. 사전 훈련된 신경망은 영상을 키보드, 마우스, 연필, 각종 동물 등 1,000가지 사물 범주로 분류할 수 있습니다. 그 결과 이 신경망은 다양한 영상을 대표하는 다양한 특징을 학습했습니다. 이 함수는 SqueezeNet v1.1 신경망을 반환합니다. 이 신경망은 SqueezeNet v1.0과 비슷한 정확도를 가지면서도 예측당 수행해야 하는 부동소수점 연산이 적습니다[3]. 신경망의 영상 입력 크기는 227×227입니다. MATLAB®의 여타 훈련된 신경망에 대한 자세한 내용은 사전 훈련된 심층 신경망 항목을 참조하십시오.

예제

net = squeezenet은 ImageNet 데이터 세트에서 훈련된 SqueezeNet 신경망을 반환합니다.

net = squeezenet('Weights','imagenet')은 ImageNet 데이터 세트에서 훈련된 SqueezeNet 신경망을 반환합니다. 이 구문은 net = squeezenet과 동일합니다.

lgraph = squeezenet('Weights','none')은 훈련되지 않은 SqueezeNet 신경망 아키텍처를 반환합니다.

예제

모두 축소

사전 훈련된 SqueezeNet 신경망을 불러옵니다.

net = squeezenet
net = 

  DAGNetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]

이 함수는 DAGNetwork 객체를 반환합니다.

SqueezeNet은 Deep Learning Toolbox™에 포함되어 있습니다. 다른 신경망을 불러오려면 googlenet과 같은 함수를 사용하여 애드온 탐색기에서 사전 훈련된 신경망을 다운로드하는 링크를 가져옵니다.

출력 인수

모두 축소

사전 훈련된 SqueezeNet 컨벌루션 신경망으로, DAGNetwork 객체로 반환됩니다.

훈련되지 않은 SqueezeNet 컨벌루션 신경망 아키텍처로, LayerGraph 객체로 반환됩니다.

참고 문헌

[1] ImageNet. http://www.image-net.org.

[2] Iandola, Forrest N., Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, and Kurt Keutzer. "SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5 MB model size." Preprint, submitted November 4, 2016. https://arxiv.org/abs/1602.07360.

[3] Iandola, Forrest N. "SqueezeNet." https://github.com/forresti/SqueezeNet.

확장 기능

버전 내역

R2018a에 개발됨

모두 축소

R2024a: 권장되지 않음

squeezenet 함수는 권장되지 않습니다. 대신 imagePretrainedNetwork 함수를 사용하십시오.

squeezenet 함수에 대한 지원을 제거할 계획은 없습니다. 그러나 imagePretrainedNetwork 함수에는 전이 학습 워크플로에 도움이 되는 추가 기능이 있습니다. 예를 들어, numClasses 옵션을 사용하여 데이터의 클래스 개수를 지정할 수 있습니다. 또한 이 함수는 별도의 수정 없이도 훈련을 다시 할 수 있는 상태로 신경망을 반환합니다.

imagePretrainedNetwork 함수는 신경망을 dlnetwork 객체로 반환하는데 이 객체에는 클래스 이름이 저장되지 않습니다. 사전 훈련된 신경망의 클래스 이름을 가져오려면 imagePretrainedNetwork 함수의 두 번째 출력 인수를 사용하십시오.

다음 표에서는 squeezenet 함수의 몇 가지 일반적인 사용법과 imagePretrainedNetwork 함수를 대신 사용하도록 코드를 업데이트하는 방법을 보여줍니다.

권장되지 않음권장됨
net = squeezenet;[net,classNames] = imagePretrainedNetwork;
net = squeezenet(Weights="none");net = imagePretrainedNetwork(Weights="none");

imagePretrainedNetworkdlnetwork 객체를 반환하는데, 이 객체는 다음과 같은 이점도 있습니다.

  • dlnetwork 객체는 신경망 구축, 예측, 기본 제공 훈련, 시각화, 압축, 검증 및 사용자 지정 훈련 루프를 지원하는 통합 데이터형입니다.

  • dlnetwork 객체는 외부 플랫폼에서 만들거나 가져올 수 있는 더 넓은 범위의 신경망 아키텍처를 지원합니다.

  • dlnetwork 객체는 trainnet 함수에서 지원되기 때문에 손실 함수를 쉽게 지정할 수 있습니다. 내장 손실 함수 중에서 선택하거나 사용자 지정 손실 함수를 지정할 수 있습니다.

  • 일반적으로 dlnetwork 객체를 사용한 훈련과 예측이 LayerGraphtrainNetwork를 사용하는 워크플로보다 더 빠릅니다.

dlnetwork 객체로 지정된 신경망을 훈련시키려면 trainnet 함수를 사용하십시오.