Сгенерируйте блок Simulink для симуляции мелкой нейронной сети
gensim(net,st)
Тип help network/gensim
.
Эта функция генерирует Simulink® блок для неглубокой нейронной сети. gensim
не поддерживает нейронные сети для глубокого обучения, такие как сверточные или LSTM сети. Для получения дополнительной информации о генерации кода для глубокого обучения смотрите Deep Learning Code Generation.
gensim(net,st)
создает систему Simulink, содержащую блок, который имитирует нейронную сеть net
.
gensim(net,st)
принимает эти входы:
net | Нейронная сеть |
st | Шаг расчета (по умолчанию = 1) |
и создает систему Simulink, содержащую блок, который имитирует нейронную сеть net
со временем дискретизации st
.
Если net
не имеет задержек на входе или слое (net.numInputDelays
и net.numLayerDelays
это оба 0), вы можете использовать -1 для st
чтобы получить сеть, которая производит выборку постоянно.
[x,t] = simplefit_dataset; net = feedforwardnet(10); net = train(net,x,t) gensim(net)
Создайте сеть 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);