在MATLAB中,可以使用Deep Learning Toolbox来创建和训练神经网络。以下是一个类似的示例,用于分类Iris数据集:

% 加载数据集  
load fisheriris  
inputs = meas;  
targets = species;  
  
% 将目标转换为one-hot编码  
T = ind2vec(targets);  
  
% 划分数据集  
cv = cvpartition(targets,'HoldOut',0.2);  
idx = cv.test;  
XTrain = inputs(~idx,:);  
TTrain = T(~idx,:);  
XTest = inputs(idx,:);  
TTest = T(idx,:);  
  
% 定义网络架构  
layers = [  
    sequenceInputLayer(4)  
    fullyConnectedLayer(12)  
    reluLayer  
    fullyConnectedLayer(8)  
    reluLayer  
    fullyConnectedLayer(3)  
    softmaxLayer  
    classificationLayer];  
  
% 定义训练选项  
options = trainingOptions('adam', ...  
    'MaxEpochs',150, ...  
    'GradientThreshold',1, ...  
    'InitialLearnRate',0.001, ...  
    'Shuffle','every-epoch', ...  
    'ValidationData',{XTest,TTest}, ...  
    'Verbose',0, ...  
    'Plots','training-progress');  
  
% 训练网络  
net = trainNetwork(XTrain,TTrain,layers,options);  
  
% 评估网络  
YPred = classify(net,XTest);  
accuracy = sum(YPred == TTest)/numel(TTest);  
fprintf('Accuracy: %.2f%%\n', accuracy*100);

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐