Main Content

gensim

Générer un bloc Simulink pour la simulation d’un réseau de neurones peu profond

Description

exemple

gensim(net,st) crée un système Simulink® contenant un bloc qui simule un réseau de neurones net avec un pas d’échantillonnage st.

Si net n’a aucun retard en entrée ou de couche (net.numInputDelays et net.numLayerDelays sont tous les deux égaux à 0), vous pouvez définir st à -1 pour obtenir un réseau à échantillonnage continu.

gensim ne supporte pas les réseaux de Deep Learning comme les réseaux à convolution ou LSTM. Pour plus d’informations sur la génération de code pour le Deep Learning, veuillez consulter Génération de code.

Pour plus d’informations sur gensim, saisissez help network/gensim à l’invite de commande MATLAB.

Exemples

réduire tout

Cet exemple montre comment générer un bloc Simulink pour un réseau feedforward.

Créez un réseau feedforward avec les données du jeu de données simplefit et générez le bloc Simulink.

[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t)
gensim(net)

Cet exemple montre comment générer un bloc Simulink pour un réseau NARX.

Créez un réseau 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);

Convertissez le réseau en réseau à boucle fermée.

net = closeloop(net);
view(net)

Préparez les données et simulez la réponse en boucle fermée du réseau.

[xs,xi,ai,ts] = preparets(net,x,{},t);
y = net(xs,xi,ai);

Convertissez le réseau en système Simulink avec les ports d’entrée et de sortie de l’espace de travail.

[sysName,netName] = gensim(net,'InputMode','Workspace',...
	'OutputMode','WorkSpace','SolverMode','Discrete');

Initialisez les états de retard. Notez que cette étape est importante pour obtenir la même sortie que dans MATLAB®.

setsiminit(sysName,netName,net,xi,ai,1);

Définissez l’entrée de modèle X1 dans l’espace de travail et simulez le système de manière programmatique.

x1 = nndata2sim(xs,1,1);
out = sim(sysName,'ReturnWorkspaceOutputs','on','StopTime',num2str(x1.time(end)));
ysim = sim2nndata(out.y1);

Arguments d'entrée

réduire tout

Réseau d’entrée, défini par un objet réseau. Pour créer un objet réseau, utilisez par exemple feedforwardnet ou narxnet.

Définissez le pas d’échantillonnage à une valeur autre que -1. Pour plus d’informations, veuillez consulter Specify Sample Time (Simulink).

Historique des versions

Introduit avant R2006a

Voir aussi