Multi parameter input multiparameter (x,y graph) output model for prediction
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Good afternoon,
I have a dataset containing 1000 different scenarios of various materials with varying material properties and loading; the data also contains the expected number of cycles (life). My goal is to create a map between material properties and their respective wholer curve e.g (load vs cycles to failure). For further background the data was constructed using a latin hypercube sampling methodology.
The ideal being something like
(val prop1,valprop2...valpropn) -> Load, Life
5 5000
10 3000
16 1000
The inverse of this is also acceptable e.g
Load, Life -> (val prop1,valprop2...valpropn)
5 5000
10 3000
16 1000
My problem is Load and Life are linked and can't be seperated. I have thought of this problem in a few different ways, a straight regression problem which didn't perform particularly well. I have also been trying a sequence to sequence approach however, most literature in matlab points me down the LSTM route which often focuses on sequence to one or; sequence to sequence with a single feature. I have some sample code below that I have been trying but I get a strange error that appears incomplete. Any thoughts on how to do this would be greatly appreciated.
In the below example: Material Parameters is 1000 samples of a single row containing 10 materail propeties as features
In this trial Load Life is intended as an XY plot where the first 5 enteries are x values and the next 5 are y values. Not sure if this is best practice or not I was just trying to get soemthing to work....
MaterialParameters=reshape(MaterialParameters, [10, 1, 1000]);
LoadLife=reshape(LoadLife, [1, 10, 1400]);
% Define input and output sequences (non-time series)
inputSequence = MaterialParameters; % 10 features, 1 channel, 100 sequences
outputSequence = LoadLife; % 5 features, 1 channel, 100 sequences
% Define the layers of the sequence-to-sequence network
layers = [
sequenceInputLayer(10) % Input layer for 10 features
lstmLayer(50, 'OutputMode', 'sequence') % LSTM layer with 50 hidden units
lstmLayer(50, 'OutputMode', 'sequence') % Second LSTM layer
fullyConnectedLayer(10) % Fully connected layer for 10 output features
regressionLayer]; % Regression layer for continuous output
% Specify training options
options = trainingOptions('adam', ...
'MaxEpochs', 100, ...
'MiniBatchSize', 20, ...
'Verbose', 1, ...
'Plots', 'training-progress');
% Train the network
net = trainNetwork(inputSequence, outputSequence, layers, options);
Error:
Error using trainNetwork
The training sequences are of feature dimension 10 1 but the input layer expects sequences of feature dimension 10.
Error in MaterialExtractor (line 325)
net = trainNetwork(inputSequence, outputSequence, layers, options);
Any help would be greatly appreciated!
0 commentaires
Réponses (1)
Image Analyst
le 26 Nov 2024
Sounds like a partial least squares situation since variables are related. However, why don't you give the "Regression Learner" app a try. It's on the Apps tab of the tool ribbon.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!