Fitnet: Out of memory error solved by transposing?

7 次查看(过去 30 天)
Here's the code:
net_set = fitnet (4, 'trainlm');
my_ANN = train (net_set, input,output)
Input and output both are 49736x3 arrays.
Here's the exact error:
Error using backpropJacobianStatic
Requested 447628x447628 (1492.9GB) array exceeds maximum array size preference (31.9GB). This might cause MATLAB to become
unresponsive.
When I transpose the arrays, it runs with no problems:
my_ANN = train (net_set, input.',output.')

采纳的回答

Chunru
Chunru 2021-10-19
编辑:Chunru 2021-10-19
When you use "my_ANN = train (net_set, input,output)", your network will have a input/output size of 49736, which results in many weights in your network. If you use "my_ANN = train (net_set, input.',output.')", the network input/output size is only 3 and the weights in different layers are small so you can train the networkd with no problem.
net_set = fitnet (4, 'trainlm');
input = randn(49736, 3);
output = randn(49736, 3);
my_ANN = train (net_set, input',output');
% To see the trained network architecture
% view(my_ANN)
  3 个评论
Pelajar UM
Pelajar UM 2021-10-19
Thanks. I think I didn't make myself clear enough.
The idea is to use more data for training so that the network can get familiar with and handle more possible combinations of x,y,z. So that's why I want to do the training with 10x3 input/output.
Are you saying that this network once fully trained (so it is pre-trained at this point, no more training) cannot be used to predict 1x3 output based on 1x3 input (basically one coordinates at a time)?
In otherwords, the number of input/output during prediction have to match what was exactly used to train the network?

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by