铁素体应变预测的BP神经网络模型训练与验证

该段代码的功能是对给定的样本数据进行归一化处理,然后使用BP神经网络进行训练和预测。

代码解释

1. 读取应力样本数据:

p1=xlsread('C:\Users\Administrator\Desktop\样本数据汇总\铁素体\大范围数据\总处理.xlsx','sheet1');

从指定的Excel文件中读取应力样本数据并保存到变量p1中。

2. 归一化处理:

for i=1:9
    p3(:,i)=(p1(:,i)-60)/2500;
end
p3(:,10)=p1(:,11);

p1中的数据进行归一化处理,将每个元素减去60后除以2500,保存到变量p3中。

3. 读取应变样本数据:

t1=xlsread('C:\Users\Administrator\Desktop\样本数据汇总\铁素体\大范围数据\总处理.xlsx','sheet2');

从指定的Excel文件中读取应变样本数据并保存到变量t1中。

4. 归一化处理:

t2(:,1)=(t1(:,2)-100)/400;
t2(:,2)=(t1(:,3)-t1(:,4)-20)/280;
t2(:,3)=(t1(:,4)-20)/480;

t1中的每个元素根据不同的归一化公式进行处理,保存到变量t2中。

5. 初始化变量:

a1=0;

定义变量a1为0,用于计数。

6. 循环训练神经网络:

for i8=[100,500,1000,2000,5000]
    a1=a1+1;
    for i7=1:i8
        p(:,i7)=p4(:,i7);
        t(:,i7)=t4(:,i7);
    end
    % 创建BP网络和定义训练函数及参数
    a2=0;
    for i5=[6,10,16,26,35]
        a2=a2+1;
        i10=round(i5*.618);
        net=newff(minmax(p),[i10,i5,3],{'logsig','logsig','purelin'},'trainscg');
        net.trainParam.lr=0.1;                                         %学习速率
        net.trainParam.mc=0.9;                                         %动量因子
        net.trainParam.epochs=10000;                                    %最大的训练次数
        net.trainParam.goal=1.0e-4;                                      %训练要求精度
        net.trainParam.show = 50;
        net=init(net);                                                 %初始化神经网络
        % 训练神经网络 
        [net,tr]=train(net,p,t);   %[神经网络的名称(随意命名),展示训练记录按钮]
        a14= strcat('F:\神经网络算法\训练好的神经网络撒双层4(汇总)\net', num2str(1),'.mat');  %strcat将字符型变量连接起来
        save(a14,'net');      %把训练好的神经网络保存起来(save文件位置+名称,'要保存的神经网络结构名称')
    end
end
  • 根据不同的样本数量进行循环,样本数量分别为100、500、1000、2000和5000。
  • 在每次循环中,将p3t2中对应数量的样本数据保存到变量pt中。
  • 初始化神经网络net,设置其结构为[i10,i5,3],激活函数分别为'logsig','logsig','purelin'
  • 设置神经网络的训练参数,包括学习速率、动量因子、最大训练次数和训练要求精度。
  • 初始化神经网络net
  • 使用训练函数train对神经网络进行训练,同时保存训练记录到变量tr中。
  • 将训练好的神经网络net保存到指定位置。

7. 初始化变量:

a2=0;

定义变量a2为0,用于计数。

8. 循环验证神经网络:

for i5=[6,10,16,26,35]
    a2=a2+1;
    % 低应变奥氏体数据
    B1=xlsread('C:\Users\Administrator\Desktop\神经网络结构确定\铁素体50组验证\excel1.xls','sheet1');
    for i6=1:50
        B2=zeros();
        for i2=1:9
            B2(1,i2)=B1(i6,i2);
        end
        B2(1,10)=B1(i6,11);
        for i=1:9
            B2(1,i)=(B2(1,i)-60)/2500;
        end
        a12=sim(net,B2');  %[训练出来的神经网络算法名称,要预测的变量]
        a13(1,(a1-1)*250+50*(a2-1)+i6)=55;
        a13(2,(a1-1)*250+50*(a2-1)+i6)=a12(1,1)*400+100;
        a13(4,(a1-1)*250+50*(a2-1)+i6)=a12(3,1)*480+20;
        a13(3,(a1-1)*250+50*(a2-1)+i6)=a12(2,1)*280+20+a13(4,(a1-1)*250+50*(a2-1)+i6);
    end
end
  • 根据不同的神经网络结构进行循环,神经网络结构分别为6,10,16,26和35。
  • 在每次循环中,读取验证数据B1
  • B1中的每个样本进行预测,将预测结果保存到变量a13中。

9. 将预测结果保存到Excel文件:

xlswrite('C:\zuhe1.xls',a13','sheet1','A1');

将变量a13中的数据写入指定的Excel文件中。

代码功能总结

该段代码的主要功能是:

  • 读取应力样本数据和应变样本数据
  • 对数据进行归一化处理
  • 使用BP神经网络模型对铁素体材料的应变进行训练和预测
  • 将预测结果保存到Excel文件中
铁素体应变预测的BP神经网络模型训练与验证

原文地址: https://www.cveoy.top/t/topic/qvg7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录