Сгенерируйте блок Simulink для мелкой симуляции нейронной сети
gensim(net,st)
Введите help network/gensim
.
Эта функция генерирует блок Simulink® для мелкой нейронной сети. gensim
не поддерживает нейронные сети для глубокого обучения такой как сверточные или сети LSTM. Для получения дополнительной информации о генерации кода для глубокого обучения смотрите Генерацию кода Глубокого обучения.
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);