Я построил простую нейронную сеть в MATLAB, как показано в коде ниже, а входные и выходные данные имеют размеры 128x1
, я разделил входные данные как 21x1
для проверки и 107 для обучения:
clear all; clc; clear;
bits = randi([0 1], 1 , 128); %Original generated data
data_temp = bi2de(reshape(bits,128/2,2));
data_mod = (1/sqrt(2))*qammod(data_temp , 4);
inputs = [real(data_mod); imag(data_mod)]; %the input data of input layer (128 x 1);
outputs = bits.'; %output data from output layer (128 x 1);
inputs_len = 128; %length of input data
outputs_len = 128; %length of output data
IN_V1 = inputs(end-20:end); %Test validation input vector
OUT_V1 = outputs(end-20:end); %Test Validation output Vector
Train_seq_in = inputs(22 : end); %Training inpur Data
Train_seq_out = outputs(22:end); %Training output Data
%build Neural network
options1 = trainingOptions('adam','MaxEpochs',2000,'InitialLearnRate',0.001,'MiniBatchSize',10,'Shuffle','every','L2Regularization',0,'Plots','training-progress','ValidationData',{IN_V1,OUT_V1})
layers =[sequenceInputLayer(107) fullyConnectedLayer(1024) reluLayer() fullyConnectedLayer(outputs_len) regressionLayer];
%train network
Net1 = trainNetwork(Train_seq_in,Train_seq_out,layers,options1); %Training the Network real
Когда я запускаю приведенный выше код, я получаю сообщение об ошибке:
Error using trainNetwork (line 165)
The validation sequences are of feature dimension 21 but the input layer expects sequences of feature
dimension 107.
Error in quetion (line 24)
Net1 = trainNetwork(Train_seq_in,Train_seq_out,layers,options1); %Training the Network
real
Однако я думаю, что это не логично, потому что данные проверки должны быть меньше данных тестирования !!
Я пытался изменить данные проверки на те же входные данные, как показано ниже:
%build Neural network
options1 = trainingOptions('adam','MaxEpochs',2000,'InitialLearnRate',0.001,'MiniBatchSize',10,'Shuffle','every','L2Regularization',0,'Plots','training-progress','ValidationData',{IN_V1,OUT_V1})
layers =[sequenceInputLayer(21) fullyConnectedLayer(1024) reluLayer() fullyConnectedLayer(outputs_len) regressionLayer];
%train network
Net1 = trainNetwork(IN_V1,IN_V1,layers,options1); %Training the Network real
, но в этом случае я получаю еще одну странную ошибку, как показано ниже:
Error using trainNetwork (line 165)
To RESHAPE the number of elements must not change.
Error in quetion (line 24)
Net1 = trainNetwork(IN_V1,IN_V1,layers,options1); %Training the Network real
Caused by:
Error using reshape
To RESHAPE the number of elements must not change.
Пожалуйста, кто-нибудь может помочь мне в решении этой проблемы?
Спасибо