주요 콘텐츠

genFunction

R2026b

(제거될 예정임) 얕은 신경망 시뮬레이션에 사용할 MATLAB 함수 생성

genFunction 함수는 향후 릴리스에서 제거될 예정입니다. 자세한 내용은 레거시 신경망 코드를 dlnetwork 워크플로로 전환하기 항목을 참조하십시오.

코드 업데이트에 대한 자세한 지침은 버전 내역 항목을 참조하십시오.

설명

이 함수는 얕은 신경망 시뮬레이션에 사용할 MATLAB® 함수를 생성합니다. genFunction 함수는 컨벌루션 신경망이나 LSTM 신경망과 같은 딥러닝 신경망을 지원하지 않습니다. 딥러닝을 위한 코드 생성에 대한 자세한 내용은 코드 생성 및 심층 신경망 배포하기 항목을 참조하십시오.

genFunction(net,pathname)은 모든 설정, 가중치와 편향 값, 모듈 함수, 계산을 하나의 파일에 담아 신경망 시뮬레이션에 사용할 완전 독립형 MATLAB 함수를 생성합니다. 그 결과 독립형 MATLAB 함수 파일이 생성됩니다. 이 함수는 MATLAB Compiler™ 툴 및 MATLAB Coder™ 툴과 함께 사용할 수도 있습니다.

예제

genFunction(___,'MatrixOnly','yes')는 디폴트 셀/행렬 표기법을 무시하고 MATLAB Coder 툴과 호환되는 행렬 인수만을 사용하는 함수를 생성합니다. 정적 신경망에서는 행렬의 열이 독립적인 샘플로 해석됩니다. 동적 신경망에서는 행렬의 열이 일련의 시간 스텝으로 해석됩니다. 디폴트 값은 'no'입니다.

genFunction(___,'ShowLinks','no')는 생성된 도움말 및 소스 코드로 연결되는 링크를 표시하는 디폴트 동작을 비활성화합니다. 디폴트 값은 'yes'입니다.

예제

모두 축소

이 예제에서는 정적 신경망에서 MATLAB 함수와 MEX 함수를 만드는 방법을 보여줍니다.

먼저 정적 신경망을 훈련시키고, 훈련 데이터에 대해 출력값을 계산합니다.

[x,t] = bodyfat_dataset;
bodyfatNet = feedforwardnet(10);
bodyfatNet = train(bodyfatNet,x,t);
y = bodyfatNet(x);

다음으로, MATLAB 함수를 생성하고 테스트합니다. 그런 다음 mcc를 사용하여 이 함수를 공유/동적 링크 라이브러리로 컴파일합니다.

genFunction(bodyfatNet,'bodyfatFcn');
y2 = bodyfatFcn(x);
accuracy2 = max(abs(y-y2))
mcc -W lib:libBodyfat -T link:lib bodyfatFcn

다음으로, 셀형 배열 인수는 지원하지 않고 행렬 인수만 지원하는 MATLAB 함수를 생성하여 테스트합니다. MATLAB Coder 툴 codegen을 사용하여 MEX 함수를 생성하고 이 함수도 테스트합니다.

genFunction(bodyfatNet,'bodyfatFcn','MatrixOnly','yes');
y3 = bodyfatFcn(x);
accuracy3 = max(abs(y-y3))
 
x1Type = coder.typeof(double(0),[13 Inf]); % Coder type of input 1
codegen bodyfatFcn.m -config:mex -o bodyfatCodeGen -args {x1Type}
y4 = bodyfatodeGen(x);
accuracy4 = max(abs(y-y4))

입력 인수

모두 축소

신경망으로, network 객체로 지정됩니다.

예: net = feedforwardnet(10);

생성된 함수 파일의 위치와 이름으로, 문자열로 지정됩니다. 파일 이름 확장자 .m을 지정하지 않으면 자동으로 추가됩니다. 파일의 경로를 지정하지 않으면 디폴트 위치는 현재 작업 폴더입니다.

예: 'myFcn.m'

데이터형: char

확장 기능

모두 확장

버전 내역

R2013b에 개발됨

모두 축소