Создание блока 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);