/ Os índices Subscript devem ser inteiros positivos reais, e são (Matlab) [duplicados] - matlab, erro de tempo de execução, retropropagação

Os índices subscritos devem ser inteiros positivos reais, e eles são (Matlab) [duplicados] - matlab, erro de tempo de execução, retropropagação

Eu estou tentando codificar uma rede de backpropagation simples no Matlab, e estou recebendo o seguinte erro:

Subscript indices must either be real positive integers
or logicals.

na linha 144 do meu código, que é durante esta seção:

for l = 1:net.layerCount,
if l == 1, % From input layer
for i = round(1:net.inputSize),
i % i = 1 and
l % l = 1 when I get the error.
% error in this next line:
net.weight{l}(i,:) = net.weight{l}(i,:) ...
- sum(lrate .* net.delta{l} .* net.layerOutput{l-1}(i)) ...
- (momentum .* net.previousWeightDelta{l}(i,:));
net.previousWeightDelta{l}(i,:) = net.weight{l}(i,:);
end
else
for i = 1:net.layerSize{l-1},
net.weight{l}(i,:) = net.weight{l}(i,:) ...
- sum(lrate .* net.delta{l} .* net.layerOutput{l-1}(i)) ...
- (momentum .* net.previousWeightDelta{l}(i,:));
net.previousWeightDelta{l}(i,:) = net.weight{l}(i,:);
end
end
end

O erro persiste mesmo se eu cercar 1: net.layerCount e os outros vetores de loop com round (). Alguma idéia de por que esse é o caso?

Obrigado!

Respostas:

2 para resposta № 1

No l == 1 caso, você tenta usar ilegalmente

net.layerOutput{l-1}

0 não é positivo.

A camada de entrada precisa usar as entradas, não as conexões entre camadas.