How to use batch-size concept in this regression model?

1 view (last 30 days)
nuri ahn
nuri ahn on 22 Aug 2019
Edited: nuri ahn on 22 Aug 2019
1. I tried to make a simple regression model with this dataset.
total data length is 1920 for each column.
(i.e, 1920x5 is the total dataset size)
The first four datas(Dia, xcor, ycor, freq) are used as inputs.
And the last one, Y is used as output
With four inputs I want my model to make an estimated Y value.
Then MSE can be calculated with true Y in the table.
The model can be trained by minimizing error.
This is my code I tried.
clear all
inputSize = 4;
layers = [ ...
imageInputLayer([1 inputSize], 'Name', 'Input')
fullyConnectedLayer(numHiddenNode, 'Name', 'FC_1','WeightsInitializer','glorot')
%% Load data.
DataDir = 'D:\13_2_single_freq_log';
CSV = csvread([DataDir '\Test_log_' num2str(Freq) '.csv']);
[CSVrow, CSVcol] = size(CSV);
dia = zeros(CSVrow,1);
xcor = zeros(CSVrow,1);
ycor = zeros(CSVrow,1);
freq = zeros(CSVrow,1);
Y = zeros(CSVrow,1);
dia = CSV(:,1);
xcor = CSV(:,2);
ycor = CSV(:,3);
freq = CSV(:,4);
Y = CSV(:,5);
inputs=[dia xcor ycor freq];
targets = transpose(Y);
%% Training option
options = trainingOptions('adam', ...
'InitialLearnRate',0.001, ...
'MiniBatchSize',100, ...
'MaxEpochs',4, ...
'Shuffle','every-epoch', ...
'Verbose',true, ...
'VerboseFrequency',10, ...
%% Training
lgraph = layerGraph(layers);
net = trainNetwork(inputs,targets,lgraph,options); % This line is the problem.
and this error was displayed
Error using trainNetwork (line 165)
The training images are of size 1920x4x1 but the input layer expects images of size 1x4x1.
I want to use batch-size feature.
so that even if I put 1920 length inputs, but the code automatically split them to proper size.
(1x4x1 is too small I think. I want this model to be trained with 100 batch size.)
How could I solve this problem??

Answers (0)

Community Treasure Hunt

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

Start Hunting!