Создайте пользовательскую неглубокую нейронную сеть
net = network
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)
Тип help network/network
.
Совет
Чтобы узнать, как создать нейронную сеть для глубокого обучения, см. Раздел «Задание слоев сверточной нейронной сети».
network
создает новые пользовательские сети. Он используется для создания сетей, которые затем настраиваются функциями, такими как feedforwardnet
и narxnet
.
net = network
без аргументов возвращает новую нейронную сеть без входов, слоев или выходов.
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)
принимает следующие необязательные аргументы (показаны со значениями по умолчанию):
numInputs | Количество входов, 0 |
numLayers | Количество слоев, 0 |
biasConnect |
|
inputConnect |
|
layerConnect |
|
outputConnect | 1-by- |
и возвращает
net | Новая сеть с заданными значениями свойств |
net.numInputs | 0 или положительное целое число | Количество входов. |
net.numLayers | 0 или положительное целое число | Количество слоев. |
net.biasConnect |
| Если |
net.inputConnect |
| Если |
net.layerConnect |
| Если |
net.outputConnect | 1-by- | Если |
net.numOutputs | 0 или положительное целое число (только для чтения) | Количество выходов сети в соответствии с |
net.numInputDelays | 0 или положительное целое число (только для чтения) | Максимальный вход сигнала согласно всем |
net.numLayerDelays | 0 или положительное число (только для чтения) | Максимальная задержка слоя согласно всем |
net.inputs |
|
|
net.layers |
|
|
net.biases |
| Если |
net.inputWeights |
| Если |
net.layerWeights |
| Если |
net.outputs | 1-by- | Если |
net.adaptFcn | Имя функции или |
net.initFcn | Имя функции или |
net.performFcn | Имя функции эффективности сети или |
net.trainFcn | Имя сетевой обучающей функции или |
net.adaptParam | Параметры сетевой адаптации |
net.initParam | Параметры инициализации сети |
net.performParam | Параметры эффективности сети |
net.trainParam | Параметры сетевого обучения |
net.IW |
|
net.LW |
|
net.b |
|
net.userdata | Структура, которую можно использовать для хранения полезных значений |
В этом примере показано, как создать сеть без каких-либо входов и слоев, а затем задать ее количество входов и слоев равными 1 и 2 соответственно.
net = network net.numInputs = 1 net.numLayers = 2
Также можно создать ту же сеть с одной строкой кода.
net = network(1,2)
Этот пример показов, как создать одно-, двухслойную сеть прямого распространения. Смещение имеет только первый слой. Входной вес соединяется с слоем 1 из входа 1. Вес слоя соединяется с слоем 2 из слоя 1. Слой 2 является сетевым выходом и имеет цель.
net = network(1,2,[1;0],[1; 0],[0 0; 1 0],[0 1])
Можно просмотреть подобъекты сети с помощью следующего кода.
net.inputs{1} net.layers{1}, net.layers{2} net.biases{1} net.inputWeights{1,1}, net.layerWeights{2,1} net.outputs{2}
Можно изменить свойства любого из подобъектов сети. Этот код изменяет передаточные функции обоих слоев:
net.layers{1}.transferFcn = 'tansig'; net.layers{2}.transferFcn = 'logsig';
Веса для соединения от первого входа до первого слоя можно просмотреть следующим образом. Веса для соединения между входом и слоем хранятся в net.IW
. Если значения еще не заданы, этот результат пуст.
net.IW{1,1}
Веса для соединения между первым слоем и вторым слоем можно просмотреть следующим образом. Веса для соединения между слоем и слоем хранятся в net.LW
. Снова, если значения еще не заданы, результат будет пустым.
net.LW{2,1}
Значения смещения для первого слоя можно просмотреть следующим образом.
net.b{1}
Чтобы изменить количество элементов во входе 1 на 2, установите область значений каждого элемента:
net.inputs{1}.range = [0 1; -1 1];
Чтобы симулировать сеть для двухэлементного входного вектора, код может выглядеть следующим образом:
p = [0.5; -0.1]; y = sim(net,p)