주요 콘텐츠

gensim

얕은 신경망 시뮬레이션에 사용할 Simulink 블록 생성

설명

gensim(net,st)는 샘플링 시간 st를 사용하여 신경망 net을 시뮬레이션하는 블록을 포함하는 Simulink® 시스템을 만듭니다.

net에 입력값 또는 계층 지연이 없는 경우(net.numInputDelaysnet.numLayerDelays가 모두 0인 경우), st에 -1을 사용하여 연속적으로 샘플링을 수행하는 신경망을 얻을 수 있습니다.

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

gensim에 대한 자세한 내용을 보려면 MATLAB 명령 프롬프트에서 help network/gensim을 입력하십시오.

예제

예제

모두 축소

이 예제에서는 피드포워드 신경망을 위한 Simulink 블록을 생성하는 방법을 보여줍니다.

간단한 피팅 데이터 세트의 데이터를 사용하여 피드포워드 신경망을 만들고 Simulink 블록을 생성합니다.

[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t)
gensim(net)

이 예제에서는 NARX 신경망을 위한 Simulink 블록을 생성하는 방법을 보여줍니다.

NARX 신경망을 만듭니다.

[x,t] = simplenarx_dataset;
net = narxnet(1:2,1:2,20);
view(net)
[xs,xi,ai,ts] = preparets(net,x,{},t);
net = train(net,xs,ts,xi,ai);
y = net(xs,xi,ai);

신경망을 폐루프로 변환합니다.

net = closeloop(net);
view(net)

데이터를 준비하고 신경망의 폐루프 응답을 시뮬레이션합니다.

[xs,xi,ai,ts] = preparets(net,x,{},t);
y = net(xs,xi,ai);

작업 공간 입력 및 출력 포트를 사용하여 신경망을 Simulink 시스템으로 변환합니다.

[sysName,netName] = gensim(net,'InputMode','Workspace',...
	'OutputMode','WorkSpace','SolverMode','Discrete');

지연 상태를 초기화합니다. 이것은 MATLAB®에서와 동일한 출력값을 구하기 위한 중요한 단계입니다.

setsiminit(sysName,netName,net,xi,ai,1);

작업 공간에서 모델 입력값 X1을 정의하고, 프로그래밍 방식으로 시스템을 시뮬레이션합니다.

x1 = nndata2sim(xs,1,1);
out = sim(sysName,'ReturnWorkspaceOutputs','on','StopTime',num2str(x1.time(end)));
ysim = sim2nndata(out.y1);

입력 인수

모두 축소

입력 신경망으로, network 객체로 지정됩니다. network 객체를 만들려면 feedforwardnet 또는 narxnet 등을 사용하십시오.

샘플 시간을 -1이 아닌 값으로 지정합니다. 자세한 내용은 샘플 시간 지정하기 (Simulink) 항목을 참조하십시오.

버전 내역

R2006a 이전에 개발됨

참고 항목