I was trying to create a neural network for a classification task. I used the following line;
net=newelm(elman_input,elman_targets,[ 5,5,1], {'tansig','tansig','logsig'})
but this actually seems to create a network with 4 layers not 3.
size(net.layers) = 4,1
It seems matlab wants to autogenerate the output layer in case I get the dimensions wrong. The autogenerated output neuron has a purelin transfer function and works well.
When I change the output neuron to a logsig transfer function (more appropriate for my particular task) the network behaves extremely badly and I cannot train it (I tried traingdx and trainrp).
anyone else tried an elman network with a logsig output function?
I am keen to avoid the linear output because I want to use a custom performance function that will not respond well to negative outputs.

 採用された回答

Greg Heath
Greg Heath 2012 年 9 月 15 日

0 投票

net=newelm(elman_input,elman_targets,[ 5,5], {'tansig','tansig','logsig'});
The output dimension is automatically obtained from elman_targets.

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Deep Learning Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by