【发布时间】:2019-10-18 23:13:14
【问题描述】:
我已经在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.
请任何人都可以帮助我解决这个问题?
谢谢
【问题讨论】:
标签: matlab machine-learning neural-network