- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
科学计算与数据处理综设计实验四
科学计算与数据处理实验报告
学 号 S313060052 姓 名 王腾祥 实验名称 科学计算与数据处理综合设计实验 实验目的
深入研究MATLAB在计算机相关的某一专业领域的综合应用
熟悉MATLAB中专业级Toolbox或Simulink的功能和用法
学会综合运用MATLAB解决并行运算与神经网络-基于CPU/GPU的并行神经网络运算
实验方案 CPU并行
一、标准单线程的神经网络训练与仿真过程
[x,t]=house_dataset;
net1=feedforwardnet(10);
net2=train(net1,x,t);
y=sim(net2,x);
二、打开MATLAB workers
matlabpool open
检查worker数量
poolsize=matlabpool(size)
三、设置train与sim函数中的参数“Useparallel”为“yes”。
net2=train(net1,x,t,Useparallel,yes)
y=sim(net2,x,Useparallel,yes)
四、使用“showResources”选项证实神经网络运算确实在各个worker上运行。
net2=train(net1,x,t,useParallel,yes,showResources,yes);
y=sim(net2,x,useParallel,yes,showResources,yes);
五、将一个数据集进行随机划分,同时保存到不同的文件
for i=1:matlabpool(size)
x=rand(2,1000);
save([inputs num2str(i)],x)
t=x(1,:).*x(2,:)+2*(x(1,:)+x(2,:)) ;
save([target num2str(i)],t);
clear x t
end
六、实现并行运算加载数据集
for i=1:matlabpool(size)
data=load([inputs num2str(i)],x)
xc{i}=data.x
data=load([target num2str(i)],t)
tc{i}=data.t;
clear data
end
net2=configure(net2,xc{1},tc{1});
net2=train(net2,xc,tc);
yc=sim(net2,xc)
七、得到各个worker返回的Composite结果
for i=1:matlabpool(size)
yi=yc{i}
end
八、GPU并行
count=gpuDeviceCount
gpu1=gpuDevice(1)
gpuCores1=gpu1.MultiprocessorCount*gpu1.SIMDWidth
net2=train(net1,x,t,useGPU,yes)
y=sim(net,x,useGPU,yes)
net1.trainFcn=trainscg;
net2=train(net1,x,t,useGPU,yes,showResources,yes);
Matlab神经网络43个案例分析
九、并行运算与神经网络-基于CPU/GPU的并行神经网络运算
by 王小川(@王小川_matlab)
Email:sina363@163.com
/hgsz2003
十、清空环境变量
clear all
clc
warning off
十一、打开matlabpool
matlabpool open
poolsize=matlabpool(size);
十二、加载数据
load bodyfat_dataset
inputs = bodyfatInputs;
targets = bodyfatTargets;
十三、创建一个拟合神经网络
hiddenLayerSize = 10; 隐藏层神经元个数为10
net = fitnet(hiddenLayerSize); 创建网络
十四、指定输入与输出处理函数(本操作并非必须)
net.inputs{1}.processFcns = {removeconstantrows,mapminmax};
net.outputs{2}.processFcns = {removeconstantrows,mapminmax};
十五、设置神经网络的训练、验证、测试数据集划分
net.divideFcn = dividerand; 随机划分数据集
net.divideMode = sample; 划分单位为每一个数据
net.divideParam.tr
文档评论(0)