SAS Demo | Deep Learning with Python (DLPy) and SAS Viya for Computer Vision

안녕하세요, 저는 Susan Kahler이고 인공 지능과 기계 학습에 대한 책임이 있습니다 SAS에서

이 비디오에서는 SAS Deep Learning Python API 또는 DLPy에 대해 간략하게 설명합니다 이 시리즈는 DLPy가 지원하는 최신 컴퓨터 비전 모델에 중점을 둘 것입니다 DLPy를 통해 Python에 익숙한 데이터 과학자는 딥 러닝을 활용할 수 있습니다 SAS Viya의 컴퓨터 비전 기능 설명의 링크를 사용하여 주제로 직접 이동하십시오

첫 번째 섹션에서는 DLPy와 함께 Functional API를 활용하여 빌드하는 방법을 살펴 봅니다 ResNet 모델을 포함한 기능 추출을위한 복잡한 모델 다음으로 축구를 추적하기 위해 U-Net 모델을 사용하여 이미지 세분화를 수행하는 방법을 볼 수 있습니다 선수 그런 다음 DLPY가 VGG16을 백본으로 사용하여 Faster R-CNN을 사용하여 객체 감지를 지원하는 방법을 살펴 보겠습니다 회로망

스위칭 기어, DLPy가 어떻게 MobileNet 및 ShuffleNet을 지원하고 성능을 비교하는지 살펴 보겠습니다 ResNet50 모델이있는 모델 중 하나입니다 마지막으로 훈련과 추론 모두에서 멀티 태스킹 학습이 수행되는 방법을 살펴 보겠습니다 제품 권장 사항에 대해서는 소매 도메인에서 추론을 위해 Python 용 이벤트 스트림 처리 패키지 인 SAS ESPPy를 사용합니다 DLPy에는 Python 3 이상 및 SAS Viya 34가 필요합니다

또한 Analytics 전송을위한 SAS 스크립팅 래퍼 또는 SWAT 패키지가 필요합니다 DLPy는 python-dlpy 디렉토리의 SAS 소프트웨어 용 GitHub에서 사용할 수 있습니다 이 비디오에 실린 Jupyter 노트북도 해당 위치에 있습니다 DLPy의 최신 컴퓨터 비전 기능에 대해 배우고 즐기시기 바랍니다 스스로를 위해

안녕하세요, 저는 SAS의 데이터 과학자 인 Wenyu이며 딥 러닝과 컴퓨터에 중점을 둡니다 비전 API 이 비디오에서는 고급 Python API, Python을 사용한 SAS Deep Learning 또는 (DLPy) 이 비디오의 목적은 SAS에서 기능적 API를 활용하는 방법을 보여주는 것입니다 복잡한 모델을 만들기위한 DLPy 보다 유연한 방법을 제공하기 때문에 Functional API에 중점을두고 있습니다

Keras Functional API와 매우 유사한 복잡한 모델을 구현하십시오 Sequential API는 공유 모델을 만들 수 없다는 점에서 제한적입니다 레이어 또는 여러 입력 또는 출력이 있습니다 입력 및 출력이 여러 개인 모델이 Functional API를 사용하는 좋은 예입니다 간단한 6 단계로 SAS DLPy를 사용하여 모델을 생성 해 봅시다

텐서를 반환하는 Input ()에 의해 두 개의 텐서 (회색조 이미지와 RGB 이미지)를 정의합니다 목적 그런 다음 그레이 스케일 이미지가 두 개의 컨볼 루션 브랜치에 공급됩니다 이 모델에는 또 다른 입력 컬러 이미지가 있습니다 그런 다음 이미지의 특징을 추출하기 위해 컨벌루션 연산이 사용됩니다

세 개의 텐서가 연결되고 OutputLayer_1에서 분류를 계산하는 데 사용됩니다 손실 또한 모델은 OutputLayer_2를 통해 감독됩니다 그런 다음 정의 된 입력 텐서 및 출력 텐서를 Model () 함수에 전달합니다 마지막으로 compile ()을 호출하여 네트워크를 컴파일합니다

여기서는 모델의 요약과 네트워크 그래프를 보여줍니다 레이어 연결 이 다음 모델에서는 ResNet 유사 모델을 작성하는 방법을 고려하십시오 이 작업에서는 돌고래 또는 기린을 포함하는지 여부에 따라 이미지를 분류합니다 먼저 각각의 직후에 배치 정규화를 채택하는 회선 블록을 정의합니다

회선 다음으로, 나머지 블록 내에서 바로 가기 연결을 사용하여 입력 기능을 연결합니다 컨볼 루션의 출력에 4 개의 누적 잔차 블록이 있으며 네트워크는 전체 평균 풀링으로 끝납니다 다음은 4 개의 잔차 블록이 순차적으로 누적되고 전체 평균이 표시되는 모델의 그래프입니다 풀링

모델이 빌드되면 ImageTable API에 의해 데이터가로드되고 모델을 학습 할 수 있습니다 순차적 인 모델처럼 SAS DLPy API를 사용하면 사전 훈련 된 여러 출력 모델을보다 쉽게 ​​정의 할 수 있습니다 기능 추출기로서의 백본 다음 경우에는 가중치와 함께 ResNet18 모델을로드합니다 다음으로로드 된 모델을 기능 모델로 변환하고 원래 작업 계층을 삭제합니다 이를 위해 to_functional_model ()을 사용하고 stop_layers를 지정합니다

그래프 이동을 중지하는 레이어 즉, stop_layers와 stop_layers가 뒤에 오는 모든 레이어가 제거됩니다 기능적 모델 그런 다음 OutputLayer와 Keypoints Layer라는 두 가지 새로운 작업 계층을 추가합니다 그래프 하단에서 새로 추가 된 두 개의 레이어를 볼 수 있습니다

이 비디오에서는 DLPy를 사용하여 여러 입력 및 출력을 가진 모델을 만든 다음 ResNet과 유사한 모델이며 마지막으로 순차 모델을 기능 모델로 변환했습니다 시청 해 주셔서 감사합니다 안녕하세요, 저는 Maggie Du이고 SAS의 기계 학습 개발자이며 딥 러닝 및 컴퓨터 비전 API 이 비디오에서는 DLPy라고하는 SAS 고급 딥 러닝 Python API를 사용하여 게임에서 축구 선수를 추적하는 이미지 분할 문제를 해결하는 방법을 보여줍니다 각 플레이어에 대한 통계를 제공합니다

코치에 의한 경기 후 분석과 같은 여러 목적으로 통계를 사용할 수 있습니다 팬들에게 증강 게임 시청 경험을 제공합니다 이미지 분할은 이미지를 의미 적으로 의미있는 부분으로 분할하려고 시도합니다 각 부분을 사전 정의 된 레이블 중 하나로 분류합니다 따라서 픽셀 수준에서 이미지를 이해하는 새로운 방법입니다

예를 들어이 이미지에는 개, 고양이 및 배경의 세 가지 클래스가 있습니다 따라서 우리는 각 픽셀에 어떤 클래스가 속하는지를 나타내는 특정 색상을 부여합니다 전반적으로 각 객체의 정확한 경계를 얻을 수 있습니다 시작하자 필요한 모듈을로드 한 후 데이터 세트를로드하려고합니다

우리는 축구 경기의 이미지를 예로 들어 170 이미지가 포함 된 모두 256 * 256으로 조정되었습니다 다음은 원시 이미지와 해당 주석의 시각화입니다 이미지에는 축구 선수, 축구 공 및 배경의 세 가지 다른 객체가 있습니다 따라서 주석 이미지에는 세 가지 색상이 포함됩니다 그런 다음 데이터 세트를 학습 데이터, 유효성 검사 데이터 및 테스트 데이터로 무작위로 나눕니다

다음으로 SAS DLPy를 사용하여 U-Net 모델을 구축하려고합니다 이 대칭 모델은 인코딩과 디코딩의 두 부분으로 볼 수 있습니다 기능 크기가 가장 작은 레이어 인 병목 현상 레이어로 분할됩니다 인코딩 부분에서 풀링 레이어를 사용하여 다운 샘플링을 수행하여 기능을 추출합니다 디코딩에서 입력 컨볼 루션 레이어를 사용하여 입력 이미지에서 업 샘플링 학습 된 정보를 재구성하는 부분

또한 텐서를 직접 결합하는 4 개의 연결 레이어를 모델에 추가했습니다 두 개의 다른 레이어에서 이전의 특정 정보를 쉽게 상속받을 수 있습니다 층 SAS DLPy는 사전 정의 된 U-Net 모델을로드하는 기능을 제공합니다 인코딩을위한 4 개의 풀링 계층 및 디코딩을위한 4 개의 전치 컨볼 루션 계층

축구 경기 데이터 모델에는 3 천 4 백만 개가 넘는 매개 변수가 포함되어 있습니다 SAS DLPy API를 사용하여 계층별로 고유 한 U-Net 모델을 만들 수도 있습니다 병목 현상 레이어의 크기 및 컨볼 루션 수와 같은 기능을 쉽게 결정할 수 있습니다 두 풀링 레이어 사이에 원하는 레이어 아키텍처가 구축되면 교육 데이터를 사용하여 모델을 교육하고 유효성을 검사 할 수 있습니다 검증 데이터 사용

교육이 완료된 후 테스트 데이터를 사용하여 모델의 성능을 테스트 할 수 있습니다 새로운 이미지를 수행합니다 스코어링 메트릭을 확인하거나 예측을 직접 시각화 할 수 있습니다 이 예에서 잘못된 분류 비율은 056 %로 65,536 픽셀 중 약 360 픽셀 만 잘못 레이블이 지정됩니다 두 번째 방법은 간단합니다

여기에 원시 이미지, 주석 및 예측을 나란히 놓고 모델의 성능을 확인하기 위해 모든 것을 쉽게 비교할 수 있습니다 첫 번째 열에는 원시 이미지가 표시되고 가운데 열에는 실제 이미지가 표시됩니다 세 번째 열의 이미지는 예측에서 얻습니다 마지막 두 열 사이에는 약간의 차이 만 있습니다 이는 U-Net 모델을 의미합니다

이 데이터에 매우 효과적이었습니다 이 비디오에서는 SAS DLPy를 사용하여 이미지 세분화 모델을 신속하게 구축하고 이 모델에 대한 교육 및 스코어링 방법 SAS DLPy에는 훨씬 더 많은 기능이 포함되어 있으므로 향후 사용 사례 시청 해 주셔서 감사합니다! 안녕하세요, 제 이름은 Xindian Long이고 컴퓨터 비전을위한 딥 러닝 알고리즘을 개발합니다 YOLO, Faster R-CNN, Mask R-CNN 등 SAS Deep Learning for Python (또는 DLPy)은 고급 Python과 함께 제공됩니다 사용자가 이러한 기능을 사용할 수 있도록하는 API

현재 그림 1과 같이 주로 물체 감지 방법에는 두 가지 유형이 있습니다 첫 번째 방법은 단일 단계 방법입니다 이 유형의 방법에서 경계 상자 지역화 및 객체 분류는 하나에서 수행됩니다 단계 YOLO, SSD와 같은 알고리즘이이 범주에 속합니다

두 번째 방법은 다단계 방법입니다 여기에는 두 가지 단계가 있습니다 첫 번째 단계에서 지역 제안 네트워크는 관심있는 직사각형 지역을 찾는 것입니다 객체를 포함 할 가능성이 높은 (또는 ROI) 두 번째 단계에서는 추가 회귀 및 분류를 수행하여 실제로 해당 지역에 개체가 있으며, 그렇다면 범주와 정확한 위치 그리고 모양입니다 Faster R-CNN, R-FCN과 같은 알고리즘이이 범주에 속합니다

첫 번째 범주의 알고리즘은 일반적으로 두 번째 범주의 알고리즘보다 빠릅니다 예를 들어 실시간 성능이 필요한 응용 프로그램이있는 경우 YOLO는 아마도 좋은 선택 Faster R-CNN과 같은 두 번째 범주의 알고리즘은 일반적으로 더 정확합니다 “Faster R-CNN”이라는 이름이 언급 된 다른 알고리즘보다 더 빠르게 실행되는 것은 아닙니다 이리

R-CNN 및 Fast R-CNN 알고리즘보다 이전 버전보다 훨씬 빠릅니다 그림 2는 앵커 박스의 중요한 개념을 보여줍니다 그들은 객체에 사용됩니다 YOLO와 Faster R-CNN의 탐지 알고리즘 이 개념을 이해하는 것이 매우 중요합니다 앵커 상자는 이미지의 여러 위치에있는 추상 상자이며 일반적으로 그리드 패턴

사전 정의 된 모양으로 사전 설정된 개수의 경계 상자를 예측하는 데 사용됩니다 각 위치에서 앵커 상자는 예측 된 위치의 초기 값으로 사용됩니다 모양에 따라 개체 크기 / 모양에 대한 사전 지식이 포함되어 있습니다 그림 2의 이미지에서이 한 위치에 많은 앵커 박스가 있음을 알 수 있습니다 상자마다 모양이 다른 물체를 감지합니다

예를 들어이 이미지에서 빨간색 앵커 상자는 사람을 감지하는 상자입니다 물론 최종적으로 감지 된 물체 모양은 원래 물체와 약간 다를 수 있습니다 알고리즘이 최적화하기 때문에 앵커 박스의 모양 그림 3은 Faster R-CNN 네트워크 아키텍처를 보여줍니다 DLPy를 사용하면 계층별로 구축 할 필요가 없습니다 알고리즘 이해를 돕기 위해 그것에 대해 이야기하고 있습니다

그것의 첫 번째 부분은 백본 네트워크입니다 백본 네트워크에는 일반적으로 많은 회선 레이어와 풀링 레이어가 포함되어 있습니다 입력 이미지에서 기능 맵을 추출합니다 널리 사용되는 백본 네트워크에는 VGG16, ShuffleNet 또는 ResNet 등이 있습니다 응용 프로그램 및 요구 사항에 따라 선택할 수 있습니다

지역 제안 네트워크는 백본 네트워크를 따릅니다 지역 제안 네트워크는 많은 제안 된 관심 지역을 출력합니다 개체를 포함 할 가능성이 높은 창입니다 지역 제안 네트워크는 지역 이전에 두 개의 특수한 컨볼 루션 레이어로 구성됩니다 제안서 계층

지역 제안서 레이어에 대해 사용자가 지정해야하는 중요한 매개 변수는 앵커 박스는 제안 될 수있는 형태의 범위를 대략 결정합니다 그 후에는 ROI 풀링 레이어입니다 관심 영역을 백본 네트워크 출력 인 페더 맵에 매핑합니다 창 내부의 픽셀 값을 추출하고 다른 크기의 하위 이미지를 형성합니다 ROI 풀링 레이어는 모든 하위 이미지의 크기를 같은 크기로 조정합니다

이것은 기능 맵의 모든 채널에 대해 수행됩니다 따라서 각 ROI마다 3D 데이터 배열을 얻습니다이를 텐서라고합니다 ROI 풀링 레이어의 출력에는 제안 된 각 영역마다 하나씩 많은 텐서가 포함됩니다 관심의

네트워크의 마지막 부분은 각 텐서와 ROI에서 독립적으로 작동하며 하나를 만듭니다 각 ROI에 대한 결정 세트 먼저, 두 개의 완전 연결된 레이어가 있으며 분류간에 공유됩니다 그리고 경계 상자 회귀 그런 다음 분류 헤더와 경계 상자 회귀 헤더가 있으며 각 헤더 앞에 하나의 완전히 연결된 레이어로 각각

우리 시스템에서 분류 헤더와 바운딩 박스 회귀 헤더는 모두 FastRCNN 계층에서 구현됩니다 빠른 R-CNN 네트워크 아키텍처에 대한 간략한 소개와 알고리즘의 방법 공장 이제 노트북을 볼 수 있습니다 먼저 CAS 서버에 연결합니다 조치 세트를로드하십시오

그리고 CAS 라이브러리를 빌드하십시오 그런 다음 DLPy 함수를 호출하여 앞에서 설명한 모델 아키텍처를 빌드해야합니다 Faster_RCNN 그런 다음 데이터 세트를로드하고 훈련 세트와 데이터 세트로 분할합니다 여기서 데이터 셋과 라벨을 그래픽으로 시각화하고 이미지와 경계를 볼 수 있습니다 상자 및 레이블

네트워크 교육을 위해 사전 훈련 된 가중치를로드하고 대상 열을 정의한 다음 가중치를 계속 최적화하려면 fit 함수를 호출하십시오 그런 다음 predict 함수를 호출하여 객체 위치와 범주를 예측할 수 있습니다 마지막으로 탐지 결과를 시각화 할 수 있습니다 이미지에서 감지 된 개체 주위에 상자가 그려져 있음을 알 수 있습니다 객체 카테고리 자신감뿐만 아니라 보여줍니다

이미지에서 감지 된 양을보십시오 이것이 데모의 끝입니다 DLPy와이 예제를 사용해보십시오 시청 해 주셔서 감사합니다! 안녕하세요, Guixian Lin입니다 저는 SAS의 컴퓨터 비전 딥 러닝 개발자입니다

여기에 DLPy로 알려진 SAS 고급 딥 러닝 Python API를 사용하여 가벼우면서도 강력한 컨볼 루션 뉴럴 네트워크를 쉽게 구축하고 훈련 할 수 있습니다 이미지 분류 문제에 대한 (또는 CNN) 이 예에서는 의류를 분류합니다 VGG16 및 ResNet50과 같은 인기있는 CNN은 이미지 분류에 널리 사용되었습니다 뛰어난 정확성을위한 작업 그러나 자원이 제한된 모바일 및 에지 장치의 경우 이러한 CNN은 종종 너무 유용하게 큰

얼굴 인식 및 자율 주행 차와 같은 실시간 애플리케이션에는 충분히 빠르지 않습니다 다음으로 세 가지 효율적인 CNN 인 MobilenetV1, ShufflenetV1 및 MobileNetV2를 소개합니다 이 인기 CNN보다 훨씬 작지만 정확도는 비슷합니다 CNN의 핵심 구성 요소는 컨볼 루션 레이어라는 것을 알고 있습니다 효율적인 MobileNet 및 ShuffleNet의 기본 아이디어는 표준 컨볼 루션을 대체하는 것입니다

가벼운 컨볼 루션 그림 21은 표준 컨벌루션과 깊이 분리형의 차이점을 보여줍니다 깊이 컨벌루션과 포인트 컨벌루션으로 구성된 컨벌루션 맨 윗줄에서 각 블록은 컨벌루션 필터를 나타내며 총 c2 필터가 있습니다

각 컨볼 루션 필터는 공간 정보를 필터링하고 채널 정보를 결합합니다 한 번의 단계로 입력 기능 이를 위해서는 각 컨볼 루션 필터의 깊이가 입력 피처의 깊이와 일치해야합니다 여기서 깊이는 c1입니다 레이어가 깊어 질수록 피쳐 맵의 깊이가 더 커지는 경우가 종종 있습니다

이러한 인기있는 CNN이 매우 큰 이유입니다 두 번째 행은 깊이 컨벌루션이 공간 정보를 채널별로 필터링 함을 보여줍니다 즉, 각 깊이 방향 컨볼 루션의 깊이는 레이어의 깊이에 관계없이 항상 1입니다 입니다 깊이 컨볼 루션은 입력 채널 만 필터링하므로 출력을 결합해야합니다

유용한 기능을 생성하는 기능 이것은 커널과의 표준 컨볼 루션 인 포인트 컨벌루션으로 수행 할 수 있습니다 1 회 1 회 표준 컨벌루션을 깊이 컨벌루션으로 교체 한 다음 점별 컨볼 루션에서 유사한 방식으로 피쳐와 패턴을 추출 할 수 있지만 모델 크기는 극적으로 감소했습니다 그림 22는 그룹 컨볼 루션을 설명합니다

채널을 여러 그룹으로 나누고 각각의 표준 컨볼 루션을 적용합니다 그룹 예를 들어 g 개의 그룹이있는 경우 모델 크기를 1 / g의 차수로 줄일 수 있습니다 그림 23은 MobileNetV1, ResNet50, ShuffleNetV1 및 MobileNetV2의 빌딩 블록을 보여줍니다

MobileNetV1의 경우 아키텍처는 VGG와 유사합니다 VGG의 표준 컨벌루션을 경량 깊이 컨볼 루션으로 대체합니다 포인트 컨벌루션이 뒤 따른다 ResNet은 종종 ResNet 블록으로 인해 VGG보다 성능이 우수하기 때문에 ShuffleNetV1 MobileNetV2는이 아이디어를 빌 렸습니다 둘 다 ResNet 블록의 표준 컨벌루션을 깊이 컨벌루션으로 대체하여 모델 크기

ShuffleNetV1은 포인트 컨벌루션을 그룹 컨볼 루션으로 대체하여 모델 크기 이제 경량 컨볼 루션이 더 작은 모델을 빌드하는 데 유용하다는 것을 이해합니다 및 ShuffleNet 다음으로 의류 소매 제품 데이터에 대한 성능을 보여 드리겠습니다 먼저 데이터 세트를로드하고 일부 이미지를 표시합니다

여기에는 6 개의 수업이 있으며 약 2,100 개의 이미지가 있습니다 다음으로, 우리는 훈련과 평가를 위해 무작위로 데이터를 훈련과 테스트로 나누었습니다 다른 CNN SAS DLPy는 다양한 사전 구축 네트워크 아키텍처를 제공합니다 매우 효과적입니다

여기서는 CNN을 구축하는 데 사용할 것입니다 MobileNetV1 아키텍처의 경우 다음과 같은 기본 매개 변수를 지정합니다 클래스 수 입력 이미지를 정규화하기위한 오프셋 및 스케일로 분류 될 수있다 또한 임의 뒤집기와 자르기를 사용하여 입력 이미지를 보강합니다 MobileNetV1 모델에는 축소 매개 변수 인 alpha가있어 출력 채널 수 옵티 마이저를 설정 한 후 모델을 학습 할 준비가되었습니다

훈련 로그는 많은 유용한 정보를 알려줍니다 여기에서 모델 매개 변수의 수가 8 백만임을 알 수 있습니다 대상에는 6 개의 클래스가 있습니다 훈련 손실과 오류로 반복 기록을 그릴 수 있습니다

16 오류 후 훈련 오류가 감소하고 수렴 함을 보여줍니다 최종 교육 오류는 약 54 %입니다 다음으로 테스트 데이터에서 모델 성능을 평가합니다 MobileNetV1 모델의 오류율은 5

3 %입니다 좋아요! 올바른 예측과 잘못된 예측을 통해 모델을 확인함으로써, 모델이 패턴을 배우고 합리적인 예측을한다는 것을 알 수 있습니다 다음으로 비슷한 단계를 따라 다른 CNN (ShuffleNetV1, MobileNetV2, 및 ResNet50 자세한 내용은 노트북을 참조하십시오 이 모델의 테스트 오류는 다음과 같이 요약됩니다

탁자 이 3 가지 경량 모델은 일반 모델보다 매개 변수가 훨씬 적습니다 ResNet50은이 소매 데이터의 정확성을 향상시킵니다 이 비디오에서 SAS DLPy를 사용하면 이러한 작은 크기를 빠르게 구축하고 훈련 할 수 있습니다 그러나 효율적인 CNN

앞으로의 작업에 이러한 모델을 적용 해 볼 수 있기를 바랍니다 시청 해 주셔서 감사합니다! 안녕하세요 제 이름은 웨인 톰슨입니다 저는 SAS의 데이터 과학자이며 딥 러닝과 함께 일할 수있는 특권이 있습니다 R & D 팀 컴퓨터 용 Python 및 DLPy 및 SAS Viya를 사용한 딥 러닝을위한 비디오 시리즈입니다

시력 이 특정 비디오에서는 패션에 태그를 지정하기 위해 멀티 태스킹 딥 러닝 모델을 훈련하고 싶습니다 품목 이제 기계 학습에서 종종 이미지를 가져 와서 레이블을 지정하고 단일 이미지를 만듭니다 옷의 종류를 분류하는 것과 같이지도 학습을 통해 하나의 작업을 분류합니다 드레스인가요? 티셔츠인가요? 벨트인가요? 그리고 색상과 같은 다른 의미 속성이 있고 입력 데이터에 레이블을 지정하면 색상을 분류하기 위해 회선 신경망과 같은 다른 것을 훈련하십시오

종종 고려해야 할 장점과 장점 중 하나는 단일 모델을 훈련시키는 것입니다 이 두 가지 과제를 동시에 동시에 배우는 것입니다 이를 유용한 정보를 활용하는 패러다임 인 멀티 태스킹 학습이라고합니다 전체적인 일반화를 향상시키기 위해 여러 관련 작업에서 즉, 모델이 더 잘 맞는 경향이 있습니다 한 작업에 대한 정보가 다른 작업을 예측하는 데 신뢰성을 부여 할 수 있기 때문에 좋습니다

단일 모델이 있으므로 두 모델을 사용하는 것보다 배포가 훨씬 쉽습니다 또는 더 많은 모델 따라서보다 쉽게 ​​관리하고 생산할 수 있습니다 시작하기 전에 멀티 태스킹 학습은 매우 강력합니다 자율 주행 차와 같은 많은 응용 분야에 사용됩니다

영어로 된 문서 모음이 있다고 가정 해 봅시다 프랑스어, 독일어 및 이탈리아어로 번역하고 싶습니다 거기에는 동시에 훈련하는 세 가지 작업이 있습니다 이제이 예에서는 이미 CAS 세션을 시작했습니다 DLPy를로드했으며 CAS 서버에 연결했습니다

가장 먼저 보여 드리고 싶은 것은 디스크에서 이미지를로드하고로드하는 방법입니다 이 예제에서는 하위 디렉토리에서 읽은 후 레이블을 재귀 적으로 가져옵니다 따라서 실제로 디스크에서 데이터를로드하여 메모리로 읽어들입니다 서브 디렉토리에서 레이블을 당기십시오 다음으로하는 일은 간단한 빈도 수이며 데이터가 상당히 균형을 이루고 있음을 알 수 있습니다 모든 작업에서 332 개에서 386 개의 관측치가 있습니다

이런 종류의 균형을 가질 필요는 없으며 분명히 콜스 나 메이 시즈, 우리는 더 많은 관측을 할 것이지만 이것은 간단한 데모입니다 이제 멀티 태스킹 딥 러닝을 수행하는 데있어 가장 까다로운 부분 중 하나는 작업 레이블 자체 이제 내가하고있는 첫 번째 일은 Pandas 데이터 프레임을 사용하고 getDummies를 단순히 이진 지표를 만듭니다 딥 러닝 패키지에는 정말 강력한 것이 있습니다 SAS 함수 컴파일러입니다

이를 사용하여 자신의 손실 함수를 찾을 수 있습니다 여기에서는 계산 된 vars를 사용하여 조건부로 추가 작업을 조건부로 정의하고 있습니다 여성, 의복의 조화는 무엇이며, 나는 그것을 다른 사람들과 다시 합류합니다 데이터 여기 간단한 머리를보고 몇 가지 관찰 만 살펴보면 이제 9 개의 총 작업이 동시에 진행되고 있음을 알 수 있습니다

여자를위한 것이 든 아니든 자, 여기에 이미지를 보여 드리는 예가 있습니다 그들이 어떻게 생겼는지 딥 러닝의 많은 머신 러닝 문제와 마찬가지로 데이터 크기도 조정합니다 200×200으로 설정하고 CAS 서버의 모든 작업자 노드에서 데이터를 섞습니다 여기서 20 %의 샘플을 작성하고 있음을 명심하십시오 이것은 홀드 아웃 데이터 세트 테스트이며, 나머지 80 %의 데이터를 사용하여 학습합니다

에 모델 이제이 시점에서 직접 비순환 그래픽 인 기본 아키텍처를 정의하겠습니다 네트워크를 위해 그리고 DL Plot을 사용하여이를 수행하고 있습니다 입력 레이어, 컨볼 루션 레이어, 배치 규범 풀링 및 밀집 레이어가 있습니다

그러나이 네트워크 플롯을 보면 기본적으로 하나의 아키텍처가 있음을 알 수 있습니다 그리고 그 아키텍처는 우리가 시도하는 모든 결과 작업과 공유됩니다 예측하십시오 모든 작업에 대해 동일한 네트워크를 가질 필요는 없습니다 이것은 기본 예이며 여기에서 실제로 잘 작동합니다 예측하려는 각 작업에 대해 서로 다른 네트워크 아키텍처를 가질 수 있습니다

아키텍처를 정의한 후 모델을 학습하려고합니다 이 예에서는 운동량과 같은 매우 기본적인 최적화 방법을 사용하고 있습니다 60 개의 EPICS를하고 있는데 훈련 옵션을 정의하고 싶습니다 이제 partition이 0 인 곳을 사용하고 있습니다 그것은 훈련 데이터의 80 % 만 가져올 것입니다

모델 무게 등 나중에 득점을 할 수 있습니다 GPU에서도 이것을 훈련하고 있습니다 딥 러닝의 곱셈 특성으로 인해 네트워크를 더 빨리 훈련시킬 수 있습니다 모델과 더 빠른 실험

다양한 최적화 방법을 시도해보고 궁극적으로 최상의 모델을 얻을 수 있습니다 더 빠르게 여기에 약간의 출력이 있지만, 내가 시도한 것은 이것을 이것에 요약합니다 반복 플롯 우리가 60 번의 EPICS를했다는 것을 기억하십시오 약 13 ~ 14 개의 EPICS 어딘가에서 쇠퇴와 상실과 시대를보고 있습니다

모델이 실제로 안정화 된 것 같습니다 나는 실제로 그것을 자랑스럽게 생각합니다 좋아 보인다 테스트 데이터와 비교하여 먼저 확인하겠습니다 이 모델은 훈련을 위해 개발되었습니다 이제 데이터의 20 %를 부분 집합 화하겠습니다

훈련에서 절약 한 모델 가중치를 사용하여 해당 데이터의 점수를 매길 것입니다 그리고 여기서 볼 수 있듯이 모든 작업에 대해 평균 제곱 오차가 매우 낮습니다 좀 더 세분화되고 실제로 혼동 행렬과 같은 것을보고 모델이 테스트 데이터에 얼마나 잘 맞는지 그런데이 예측값 p_는 테스트 데이터에 대한 예측값을 나타냅니다 내가 훈련 한 모델에 나는 판다에서 약간의 일을한다 파이썬을 DLPy와 똑바로 혼합하는 것이 좋습니다

그리고 9 가지 작업 각각에 대한 분류 행렬 인 혼동 행렬을 얻습니다 행은 실제 값을 나타내고 열은 예상 값을 나타냅니다 벗어난 대각선에서, 우리가 잘못한 곳입니다 여기에 검은 색은 4 개, 파란색은 4 개, 빨간색은 1 개, 우리는 다른 수업을 살펴보고 정말 잘하고 있습니다 마지막으로, SAS에서 딥 러닝의 비밀 소스 조각 중 하나는 ASTORE

여기에서 실제로 모델을 이진 파일에 저장하여 배치 스코어링을 수행 할 수 있습니다 스트리밍 분석을 사용하여 점수를 매기거나 다른 모델과의 작업을 위해 모델을 ONNX로 가져 오기 PyTorch 및 TensorFlow와 같은 패키지 여기에이 작업을 완료하고 모델을 저장했으며 다음 비디오에서는 실제로 스트리밍 분석을 사용하여이 모델의 점수를 매기는 방법을 살펴 보겠습니다 결론적으로, 멀티 태스킹 딥 러닝은 실제로 여러 개를보고 예측할 수있게합니다 동시에 작업

DLPy를 사용하면 간단합니다 다음 비디오에서 to기를 기대합니다 Python 및 SAS Viya Computer Vision Series를 사용한 딥 러닝에 오신 것을 환영합니다 제 이름은 웨인 톰슨입니다 저는 SAS의 데이터 과학자이며 SAS Deep과 함께 일합니다

학습 R & D 팀 이 비디오에서는 DLPy의 자매 인 ESPPy를 사용하여 멀티 태스킹을하고 싶습니다 딥 러닝 모델 이제 이미 멀티 태스킹 딥 러닝 모델을 훈련했습니다 이미지를 모아서 9 가지 작업을 예측하고 동시에 수행 할 수있는 모델을 개발했습니다

이 예제에서하고 싶은 것은 ESPPy를 사용하는 것입니다 또한 SAS 이벤트 스트림 처리 창에 연결할 수 있습니다 프로젝트를 구축하고 창과 상호 작용하며 모델을 배포합니다 SAS Event Stream Processing은 정말 멋집니다 여기에는 클러스터링에서 시계열 분석에 이르는 여러 스트리밍 작업이 포함됩니다

감정 분석 또는 공동 필터링과 같은 작업도 수행 할 수 있습니다 하지만이 데모에서는 이미지 처리 창과 온라인 창을 사용하겠습니다 딥 러닝 멀티 태스킹 모델을 배포 할 수 있습니다 이제 가장 먼저해야 할 일은 실제로 프로젝트를 만드는 것입니다 이 멀티 태스크를 호출하고 실제로이 셀을 실행하겠습니다

그리고 다음으로하고 싶은 것은 프로세스 흐름이나 관로 실제로 이미지를 읽으려면 소스 창이 필요합니다 우리가 일부 교육에서했던 것처럼 모델을 훈련 할 때마다 일반적으로 이미지 따라서 점수를 매길 때 20에서 20으로 크기를 조정하고 이미지 처리를 사용하겠습니다 그렇게하는 창

다음은 모델을 가져와야한다는 것입니다 모델을 학습하고 ASTORE로 저장 했으므로 모델 리더가 있습니다 그것을 읽을 수있는 창 그리고 실시간으로 점수를 생성하는 득점 창이 있습니다 그리고 보면, 프로젝트는 다음과 같습니다

나는 데이터를 읽고 이미지를 표준화하고 점수를 생성합니다 그런 다음 실제로 프로젝트를로드하고 몇 개의 출력 테이블을 설정하겠습니다 여기에 쓸 것입니다 이제 첫 번째 노트북을 사용하여 실제로 노트북을 정의하기 때문에 별도의 노트북이 있습니다 ESP 프로젝트

이 책에서는 간단히 게시하고 점수 매기기 프로세스를 시작하겠습니다 그래서 저는 팔고이 모든 것을 실행합니다 실제로 모델의 점수를 매 깁니다 다시 여기로 돌아가서 이제 이벤트 스트림 처리 엔진을 사용하겠습니다 득점

실제로 예측 확률과 함께 태그가 지정되고 라벨이 지정된 이미지가 표시되는 것을 볼 수 있습니다 작동하는 예제를 제공하는 작은 세트입니다 수면 시간은 03입니다 이벤트 스트림 처리 엔진은 실제로 초당 최대 50 프레임을 수행 할 수 있습니다

시원한 이 데모에서는 이미 멀티 태스킹 학습을 위해 개발 된 모델을 검색을 용이하게하기 위해 스트리밍 분석을 사용하여 배포 할 수있었습니다 콜이나 메이시 같은 사람 교육용 DLPy와 함께 ESPPy를 사용하면 실제로 쉽게 수행 할 수 있습니다