当前位置: 首页 > news >正文

网站建设与用户需求分析(初稿海口建设工程信息网站

网站建设与用户需求分析(初稿,海口建设工程信息网站,建筑工程行业网站建设方案,自己做网站可以揽业务吗一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在,每两个网络层之间加入一个残差连接,缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里,设想一个包含诺干层自网络,子网络的函数用H(x)来表示&#x…

一、ResNet网络

        ResNet是深度残差网络的简称。其核心思想就是在,每两个网络层之间加入一个残差连接,缓解深层网络中的梯度消失问题

二、残差结构

        在多层神经网络模型里,设想一个包含诺干层自网络,子网络的函数用H(x)来表示,其中x是子网络的输入。残差学习是通过重新设定这个参数,让一个参数层表达一个残差函数                 ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        F(x)=H(x)-x

        因此这个子网络的输出y 就是 

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​   y=F(x)+x

        其中 +x 的操作,是通过一个相当于恒等映射的跳跃连接来完成的,它将残差块的输入直接与输出连接,这就是残差结构。按照上面的结构递推,根据前向传播,第i个残差块的输出就是第i+1个残差块的输入

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        x_{\ell+1}=F(x_\ell)+x_\ell

        根据递归公式,可以推导出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        x_L=x_\ell+\sum_{i=l}^{L-1}F(x_i)

        这里的L表示任意后续残差块,i是靠前块,那么公式就说明了总会有信号能从浅层到深层。

        从反向传播来看,根据上面的公式对 Xl 进行求导,可以得到

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        \begin{aligned} \frac{\partial\mathcal{E}}{\partial x_\ell} & =\frac{\partial\mathcal{E}}{\partial x_L}\frac{\partial x_L}{\partial x_\ell} \\ & =\frac{\partial\mathcal{E}}{\partial x_L}\left(1+\frac{\partial}{\partial x_\ell}\sum_{i=l}^{L-1}F(x_i)\right) \\ & =\frac{\partial\mathcal{E}}{\partial x_L}+\frac{\partial\mathcal{E}}{\partial x_L}\frac{\partial}{\partial x_\ell}\sum_{i=l}^{L-1}F(x_i) \end{aligned}

        这里的 \mathcal{E} 是最小损失化函数。以上说明,浅层的梯度计算 \frac{\partial\mathcal{E}}{\partial x_{\ell}},总会直接加上上一个项 \frac{\partial\mathcal{E}}{\partial x_L}因为存在额外的一项,所以就想 F(xi)很小,总的梯度都不会消失。

三、基于ResNet识别实现步骤

        其主要步骤为1.加载图像数据,并将数据分为训练集合与验证集;2.加载MATLAB训练好的ResNet50;3.和Alexnet一样替换最后几层;4.按照网络配置调整图像数据;5.对网络进行训练

3.1 调整ResNet实现迁移学习

        针对ImageNet的数据任务,原本最后三层 FC SOFTMAX 输出层是针对1000个类别的物体进行识别,针对图像问题,继续调整这三层,首先冻结上面的层。将下面的三层进行替换。由于ResNet50需要输入的图像大小为224 * 224 *3.

unzip('MerchData.zip');
img_ds = imageDatastore('MerchData', ...'IncludeSubfolders',true, ...'LabelSource','foldernames');total_split = countEachLabel(img_ds); %返回一个包含每个标签和相应图像数量的表格num_images = length(img_ds.Labels); %返回的图像的个数,5个类型都有15张照片
perm =  randperm(num_images,10);  %随机取出10个
figure
for i = 1:9subplot(3,3,i)imshow(imread(img_ds.Files{perm(i)})); %从图像数据集 (img_ds) 中读取一张图像并显示它%可以用alexnet的方法
endtest_idx = randperm(num_images,9); %随机取5张做样本
img_ds_Test = subset(img_ds,test_idx);
train_idx = setdiff(1:length(img_ds.Files),test_idx);
img_ds_Train = subset(img_ds,train_idx);%% 步骤2:加载预训练好的网络% 加载ResNet50网络(注:该网络需要提前下载,当输入下面命令时按要求下载即可)
net = resnet50;%% 步骤3:对网络结构进行调整,替换最后几层% 获取网络图结构
LayerGraph = layerGraph(net);
clear net;% 确定训练数据中新冠图片标签类别数量:5类
numClasses = numel(categories(img_ds_Train.Labels));
disp(numClasses);% 保留ResNet50倒数第三层之前的网络,并替换后3层
% 倒数第三层的全连接层,这里修改为5类
newLearnableLayer = fullyConnectedLayer(numClasses,...'Name','new_fc',...'WeightLearnRateFactor',10,...
'BiasLearnRateFactor',10);
%numClasses 分类任务。通过设置 WeightLearnRateFactor 和 BiasLearnRateFactor
%来控制学习率的调整,使得这些层在训练过程中能更快速地学习
% 分别替换最后3层:fc1000、softmax和分类输出层
LayerGraph = replaceLayer(LayerGraph,'fc1000',newLearnableLayer);
%替换了原网络中的 fc1000 层(ResNet50 中的全连接层)为 new_fc 层
% (即刚才定义的新的全连接层)。replaceLayer 函数通过层的名字来替换图层newSoftmaxLayer = softmaxLayer('Name','new_softmax');
LayerGraph = replaceLayer(LayerGraph,'fc1000_softmax',newSoftmaxLayer);newClassLayer = classificationLayer('Name','new_classoutput');
LayerGraph = replaceLayer(LayerGraph,'ClassificationLayer_fc1000',newClassLayer);%% 步骤4:按照网络配置调整图像数据% 输入图像格式转换,这里调用了自定义函数preprocess
img_ds_Train.ReadFcn = @(filename)preprocess(filename);
img_ds_Test.ReadFcn  = @(filename)preprocess(filename);% 数据增强的参数
augmenter = imageDataAugmenter(...'RandRotation',[-5 5],...'RandXReflection',1,...'RandYReflection',1,...'RandXShear',[-0.05 0.05],...'RandYShear',[-0.05 0.05]);
% 将批量训练图像的大小调整为与输入层的大小相同
aug_img_ds_train = augmentedImageDatastore([224 224],img_ds_Train,'DataAugmentation',augmenter);
% 将批量测试图像的大小调整为与输入层的大小相同
aug_img_ds_test = augmentedImageDatastore([224 224],img_ds_Test);%% 步骤5:对网络进行训练% 对训练参数进行设置
options = trainingOptions('adam',...'MaxEpochs',10,...'MiniBatchSize',8,...'Shuffle','every-epoch',...'InitialLearnRate',1e-4,...'Verbose',false,...'Plots','training-progress',...'ExecutionEnvironment','cpu');% 用训练图像对网络进行训练
netTransfer = trainNetwork(aug_img_ds_train,LayerGraph,options);%% 步骤6:进行测试并查看结果% 对训练好的网络采用验证数据集进行验证
[YPred,scores] = classify(netTransfer,aug_img_ds_test);% 随机显示验证效果
idx = randperm(numel(img_ds_Test.Files),4);
figure
for i = 1:4subplot(2,2,i)I = readimage(img_ds_Test,idx(i));imshow(I)label = YPred(idx(i));title(string(label));
end%% 计算分类准确率
YValidation = img_ds_Test.Labels;
accuracy = mean(YPred == YValidation);%% 创建并显示混淆矩阵
figure
confusionchart(YValidation,YPred) 

实现效果如下:

http://www.yayakq.cn/news/878049/

相关文章:

  • 杭州利兴建设官方网站企业网站mp4怎么处理
  • 免费行情软件app网站大全下载有图片seo网站优化工具
  • 网站开发 安全验证邢台123生活信息网
  • 北京建站公司方管结构图集久久建筑网
  • 网站二维码收费怎么做社交网站的建设现状
  • 如何制作营销网站许昌 网站开发
  • 长沙 建站优化服饰视频网站建设
  • 景区旅游门户网站建设方案电商平台站内推广有哪些
  • vs2010做网站教程做外贸卖小商品是哪个网站
  • 如何利用路由建设网站备用网站域名
  • 厦门网站建设68网站策划怎么做
  • 全国做临期进口食品的网站网站的当前位置导航如何做
  • 网站服务器 502副业做网站程序
  • 网站建设实训经验总结vs做网站如何发布
  • 网站建设公司大全手机wap网站建站系统
  • 内蒙古网站开发网站建设论文的结论
  • 网站建设教程集体苏州久远网络福建 建设网站
  • 网站首页怎么做全屏swf手机网站怎样做的
  • 建筑模型网站有哪些凡科建站快车官网
  • 上海临平路网站建设怎样申请免费的网站空间
  • 做网页的网站叫什么红色扁平化网站
  • 门户网站开发公司威海屋顶防水价格威海做防水网站
  • 随州学做网站的学校滴滴推广联盟
  • 网站权重查询接口做国际网站需要多少钱
  • 为什么要进行电子商务网站规划网站怎么做才会有收录
  • 专利减缓在哪个网站上做做网站注意设么
  • 太原网站优化常识手机app开发工资高吗
  • 某网站seo诊断分析wordpress 主题预览
  • 化妆培训学校网站源码 下载中国最大的网站
  • 呼伦贝尔做网站的公司网站维护后期费用