卷积神经网络(CNN)回归预测,多输入单输出模型。

卷积神经网络(CNN)回归预测,多输入单输出模型。_第1张图片

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
tic
% restoredefaultpath

%%  导入数据
P_train = xlsread('data','training set','B2:G191')';
T_train= xlsread('data','training set','H2:H191')';
% 测试集——44个样本
P_test=xlsread('data','test set','B2:G45')';
T_test=xlsread('data','test set','H2:H45')';
%%  划分训练集和测试集
M = size(P_train, 2);
N = size(P_test, 2);

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

%% 数据的一个转换,转换成MATLAB的CNN的输入数据形式,是4-D形式的,最后一维就是样本数
trainD=reshape(p_train,[size(p_train,1),1,1,M]);%训练集输入
testD =reshape(p_test, [size(p_train,1),1,1,N]); %测试集输入
targetD       = t_train;%训练集输出
targetD_test  = t_test;%测试集输出

%% CNN模型建立

layers = [
    imageInputLayer([size(p_train,1) 1 1])     %输入层参数设置
    convolution2dLayer(3,16,'Padding','same')%卷积层的核大小、数量,填充方式
    reluLayer                                %relu激活函数
    fullyConnectedLayer(1)   % 输出层神经元
    regressionLayer];        % 添加回归层,用于计算损失值
%% 模型训练与测试

你可能感兴趣的:(cnn,深度学习)