1D-CNN实现四分类 matlab版

%%%输入变量需要变成cell格式
 rowDist= repmat(1,1,308)
 xcal = mat2cell(xcal,rowDist)

 rowDist= repmat(1,1,102)
 xval = mat2cell(xval,rowDist)
 
 rowDist= repmat(1,1,101)
 xdata_validata = mat2cell(xdata_validata,rowDist)

    filterSize =5;
    numFilters = 30;

    numFeatures = size(xcal{1},1);

   layers = [ ...
    sequenceInputLayer(numFeatures)
    convolution1dLayer(filterSize,numFilters,Padding="causal")
    reluLayer
    layerNormalizationLayer
    convolution1dLayer(filterSize,2*numFilters,Padding="causal")
    reluLayer
    layerNormalizationLayer
    globalAveragePooling1dLayer
    fullyConnectedLayer(4)%%%几分类就是几
    softmaxLayer
    classificationLayer];


    options = trainingOptions("adam", ...
    MaxEpochs=60, ...
    InitialLearnRate=0.01, ...
    SequencePaddingDirection="left", Plots="training-progress", ...
    Verbose=0);



     miniBatchSize = 27;
   
net = trainNetwork(xcal, categorical(ycal), layers, options);



    ycal_test = classify(net,xcal,SequencePaddingDirection="left");
    acc1 = mean(ycal == double(ycal_test))



    yval_test = classify(net,xval,SequencePaddingDirection="left");
    acc2 = mean(yval == double(yval_test))



    y_validata = classify(net,xdata_validata,SequencePaddingDirection="left");
    acc3 = mean(ydata_validata == double(y_validata))
     
    %%%%预测集
    con = confusionmat(yval, double(yval_test));


    accuracy3(abc,1) = acc1;
    accuracy3(abc,2) = con(1,1)/length(yval_zhengchang);
    accuracy3(abc,3) = con(2,2)/length(yval_qingwei);
    accuracy3(abc,4) = con(3,3)/length(yval_zhongdu);
    accuracy3(abc,5) = con(4,4)/length(yval_yanzhong);
    accuracy3(abc,6) = acc2;
   


    %%%验证

    con_valate = confusionmat(ydata_validata,double(y_validata));

    accuracy3(abc,7) = acc3;
    accuracy3(abc,8) = con_valate(1,1)/length(ydata_zhengchang_validate);
    accuracy3(abc,9) = con_valate(2,2)/length(ydata_qingwei_validata);
    accuracy3(abc,10) = con_valate(3,3)/length(ydata_zhongdu_validata);
    accuracy3(abc,11) = con_valate(4,4)/length(ydata_yanzhong_validata);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值