Main Content

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 이전에 개발됨

참고 항목