技术标签: matlab
用遗传算法优化BP神经网络,在加粗那行出现输入参数不足,是什么原因啊,求大神指导,代码如下
function err=Bpfun(x,P,T,hiddennum,P_test,T_test)
fid=fopen(‘xlsr.txt’,‘rt’);
P=fscanf(fid,’%f’, [15,9]);
status=fclose(fid);
fid=fopen(‘xlsc.txt’,‘rt’);
T=fscanf(fid,’%f’,[3,9]);
status=fclose(fid);
fid=fopen(‘cssr.txt’,‘rt’);
P_test=fscanf(fid,’%f’, [15,3]);
status=fclose(fid);
fid=fopen(‘cssc.txt’,‘rt’);
T_test=fscanf(fid,’%f’, [3,3]);
status=fclose(fid);
hiddennum=31;
inputnum=size(P,1);
outputnum=size(T,1);
net=newff(minmax§,[hiddennum,outputnum],{‘tansig’,‘logsig’},‘trainlm’);
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
net.trainParam.lr=0.1;
net.trainParam.show=NaN;
%net.trainParam.showwindow=false;
w1num=inputnumhiddennum;
w2num=outputnumhiddennum;
w1=x(1:w1num);
B1=x(w1num+1:w1num+hiddennum);
w2=x(w1num+hiddennum+1:w1num+hiddennum+w2num);
B2=x(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum);
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=reshape(B2,outputnum,1);
net=train(net,P,T);
Y=sim(net,P_test);
err=norm(Y-T_test);
clc
clear all
close all
load data
hiddennum=31;
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
inputnum=size(P,1);
outputnum=size(T,1);
w1num=inputnumhiddennum;
w2num=outputnumhiddennum;
N=w1num+hiddennum+w2num+outputnum;
NIND=40;
MAXGEN=50;
PRECI=10;
GGAP=0.95;
px=0.7;
pm=0.01;
trace=zeros(N+1,MAXGEN);
FieldD=[repmat(PRECI,1,N);repmat([-0.5;0.5],1,N);repmat([1;0;1;1],1,N)];
Chrom=crtbp(NIND,PRECI*N);
gen=0;
X=bs2rv(Chrom,FieldD);
ObjV=Objfun(X,P,T,hiddennum,P_test,T_test);
while gen<MAXGEN
fprintf(’%d\n’,gen)
FitnV=ranking(ObjV);
SelCh=select(‘sus’,Chrom,FitnV,GGAP);
SelCh=recombin(‘xovsp’,SelCh,px);
SelCh=mut(SelCh,pm);
X=bs2rv(SelCh,FieldD);
ObjVSel=Objfun(X,P,T,hiddennum,P_test,T_test);
[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
X=bs2rv(Chrom,FieldD);
gen=gen+1;
[Y,I]=min(ObjV);
trace(1:N,gen)=X(I,:);
trace(end,gen)=Y;
end
figure(1);
plot(1:MAXGEN,trace(end,:));
grid on
xlabel(‘遗传代数’)
ylabel(‘误差的变化’)
title(‘进化过程’)
bestX=trace(1:end-1,end);
bestErr=trace(end,end);
fprintf([‘最优初始权值和阈值:\nX=’,num2str(bestX’),’\n最小误差err=’,num2str(bestErr),’\n’])
function Obj=Objfun(X,P,T,hiddennum,P_test,T_test)
[M,~]=size(X);
Obj=zeros(M,1);
for i=1:M
Obj(i)=BPfun(X(i,:),P,T,hiddennum,P_test,T_test);
end
转自:菜鸟教程程序员资源社区程序员的资源聚集地,你想要的各类编程资源,都可以来这里找 ...
【第1条】用静态工厂方法代替构造器一个类允许客户端获取其实例的传统方式,是提供一个公共构造方法。其实,还有另一种技术应该成为每个程序员工具箱的一部分。一个类可以提供一个简单的、只返回该类实例的公共静态工厂方法。下面是一个Boolean简单的例子( 基本类型boolean的包装类)。此方法将基本类型boolean转换为Boolean对象引用:public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : B...
一:为什么要用websocketWeb 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏、在线证券、设备监控、新闻在线播报、RSS 订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服务器端可...
Python数据分析与挖掘 浙江工商大学统计学硕士,数据分析师,曾担任唯品会...
参考文献:1-https://blog.csdn.net/p445726392/article/details/968402592-https://blog.csdn.net/hunhun1122/article/details/83506839?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-7.control&depth_1-utm_source=distribut
基于qemu-riscv从0开始构建嵌入式linux系统ch15. linux多用户管理inittab修改ch13中我们使用了-/bin/sh作为init进程的RESPAWN|ASKFIRST阶段执行,如此一来,系统在启动时无需输入用户名密码将直接使用root权限启动。而本节将配置多用户管理,因此inittab修改为:::sysinit:/etc/init.d/rcSconsole::respawn:/sbin/getty 38400 consoleconsole::restart:/sbin/i
因接入的Firebase,打包异常FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:processDebugGoogleServices'.> File google-services.json is missing. The Google Services Plugin cannot function without it. Searched Locat
出现这个报错,网上搜出来的都是使用vs出现的问题,都是vs的解决方法。找到一篇关于Qt的,地址:https://blog.csdn.net/caoshangpa/article/details/51416077就是参照vs的设置方法,在qt设置相同的方式,只不过Qt是通过pro文件进行设置按照文中的设置方法,我这边只需要设置: CONFIG(debug, debug|release) { QMAKE_CXXFLAGS_DEBUG += /MTd }
<script>function changeHref(obj) { var target = document.getElementById("aPay"); // 查找目标对象 target.href = "https://www.abc.com/ok.htm?pay=" + obj.value; // 修改A标签}</script><table&...
“不积跬步,无以至千里。”这个专题开始,来深度刨析一下作为springcloud老牌的客户端负载均衡组件,Ribbon。在项目中需要使用Ribbon,只需要使用@LoadBalanced去标注一个RestTemplate的bean即可,后续就可以在Controller中注入一个RestTemplate,调用getForObject()之类的方法了@[email protected] RestTemplate getRestTemplate() { return new Re.
java执行groovy shell脚本org.codehaus.groovygroovy-all2.4.0-beta-1添加groovy jar包支持====================================================package groovy;import groo
例3—3已知某公司一般职员(包括办事员和保管人员)及高级管理(经理)人员刚进公司时的工资总额,欲通过抽样调查估计当前该公司职员的工资总额 。抽样按照一般职员层与高管层进行分层随机抽样。一般职员层抽取 名职员,高管层抽取 名职员。同时还知道一般职员层人员总数 名,该类职员进入公司时工资总额为 元;高管层人员总数 名,该类职员进入公司时工资总额...