Сгенерируйте блок 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);