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

网站建设 新闻网站 优化 分析

网站建设 新闻,网站 优化 分析,网站开发工程师好不好,怎么知道一个网站的权重1 vgg16模型 1.1 vgg16模型的下载 采用torchvision中的vgg16模型#xff0c;能够实现1000个类型的图像分类#xff0c;VGG模型在AlexNet的基础上使用3*3小卷积核#xff0c;增加网络深度#xff0c;具有很好的泛化能力。 首先下载vgg16模型#xff0c;python代码如下能够实现1000个类型的图像分类VGG模型在AlexNet的基础上使用3*3小卷积核增加网络深度具有很好的泛化能力。 首先下载vgg16模型python代码如下 import torchvision# 下载路径C:\Users\win10\.cache\torch\hub\checkpoints vgg16_false torchvision.models.vgg16(pretrainedFalse) vgg16_true torchvision.models.vgg16(pretrainedTrue) print(ok)下载结果 G:\Anaconda3\envs\pytorch\lib\site-packages\torchvision\models\_utils.py:208: UserWarning: The parameter pretrained is deprecated since 0.13 and may be removed in the future, please use weights instead.warnings.warn( G:\Anaconda3\envs\pytorch\lib\site-packages\torchvision\models\_utils.py:223: UserWarning: Arguments other than a weight enum or None for weights are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing weightsNone.warnings.warn(msg) G:\Anaconda3\envs\pytorch\lib\site-packages\torchvision\models\_utils.py:223: UserWarning: Arguments other than a weight enum or None for weights are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing weightsVGG16_Weights.IMAGENET1K_V1. You can also use weightsVGG16_Weights.DEFAULT to get the most up-to-date weights.warnings.warn(msg) ok1.2 vgg16模型内部结构 查看预训练的模型和未预训练的模型的内部结构 import torchvisionvgg16_false torchvision.models.vgg16(pretrainedFalse) vgg16_true torchvision.models.vgg16(pretrainedTrue)print(vgg16_true) print(vgg16_false)预训练的模型和未预训练的模型在整体结构上相同但内部节点的参数weight和bias有所不同。 输出结果如下 VGG((features): Sequential((0): Conv2d(3, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(1): ReLU(inplaceTrue)(2): Conv2d(64, 64, kernel_size(3, 3), stride(1, 1), padding(1, 1))(3): ReLU(inplaceTrue)(4): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(5): Conv2d(64, 128, kernel_size(3, 3), stride(1, 1), padding(1, 1))(6): ReLU(inplaceTrue)(7): Conv2d(128, 128, kernel_size(3, 3), stride(1, 1), padding(1, 1))(8): ReLU(inplaceTrue)(9): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(10): Conv2d(128, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(11): ReLU(inplaceTrue)(12): Conv2d(256, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(13): ReLU(inplaceTrue)(14): Conv2d(256, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(15): ReLU(inplaceTrue)(16): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(17): Conv2d(256, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(18): ReLU(inplaceTrue)(19): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(20): ReLU(inplaceTrue)(21): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(22): ReLU(inplaceTrue)(23): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(24): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(25): ReLU(inplaceTrue)(26): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(27): ReLU(inplaceTrue)(28): Conv2d(512, 512, kernel_size(3, 3), stride(1, 1), padding(1, 1))(29): ReLU(inplaceTrue)(30): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse))(avgpool): AdaptiveAvgPool2d(output_size(7, 7))(classifier): Sequential((0): Linear(in_features25088, out_features4096, biasTrue)(1): ReLU(inplaceTrue)(2): Dropout(p0.5, inplaceFalse)(3): Linear(in_features4096, out_features4096, biasTrue)(4): ReLU(inplaceTrue)(5): Dropout(p0.5, inplaceFalse)(6): Linear(in_features4096, out_features1000, biasTrue)) )可以发现(classifier)中最后一层可以发现out_features1000表示该模型能够支持1000种类型的图像分类。 2 迁移学习 迁移学习是机器学习的一个子领域它允许一个已经在一个任务上训练好的模型用于另一个但相关的任务。通过这种方式模型可以借用在原任务上学到的知识从而更快地、更准确地完成新任务。 本文采用CIFAR10数据集内部包含10个种类的图像修改vgg16模型对数据集进行图像分类。为了将此数据集代入vgg16模型需要对模型进行修改。 (classifier): Sequential(... ...(6): Linear(in_features4096, out_features1000, biasTrue) )2.1 添加层 使用add_module()函数添加模块。由于最后的归一化层为4096通道输出转1000通道输出因此添加一个归一化层将1000通道输出转换为10通道输出。 import torchvision from torch import nnvgg16_true torchvision.models.vgg16(pretrainedTrue) print(vgg16_true)vgg16_true.classifier.add_module(add_linear, nn.Linear(1000, 10)) print(vgg16_true)输出结果部分 (classifier): Sequential((0): Linear(in_features25088, out_features4096, biasTrue)(1): ReLU(inplaceTrue)(2): Dropout(p0.5, inplaceFalse)(3): Linear(in_features4096, out_features4096, biasTrue)(4): ReLU(inplaceTrue)(5): Dropout(p0.5, inplaceFalse)(6): Linear(in_features4096, out_features1000, biasTrue)(add_linear): Linear(in_features1000, out_features10, biasTrue))2.2 修改层 对classifier内的第6层进行修改。由于最后的归一化层为4096通道输出转1000通道输出因此需要修改为4096通道输出转换为10通道输出。 import torchvision from torch import nnvgg16_false torchvision.models.vgg16(pretrainedFalse) print(vgg16_false)vgg16_false.classifier[6] nn.Linear(4096, 10) print(vgg16_false)输出结果部分 (classifier): Sequential((0): Linear(in_features25088, out_features4096, biasTrue)(1): ReLU(inplaceTrue)(2): Dropout(p0.5, inplaceFalse)(3): Linear(in_features4096, out_features4096, biasTrue)(4): ReLU(inplaceTrue)(5): Dropout(p0.5, inplaceFalse)(6): Linear(in_features4096, out_features10, biasTrue))2.3 模型保存 有两种方式保存模型数据。第一种保存方式是将模型结构和模型参数保存第二种保存方式只是保存模型参数以字典类型保存。 python代码如下 import torch import torchvision from torch import nn from torch.nn import Linear, Conv2d, MaxPool2d, Flatten, Sequential, CrossEntropyLossvgg16_false torchvision.models.vgg16(pretrainedFalse) # 未经过训练的模型# 保存方式1模型结构模型参数 torch.save(vgg16_false, G:\\Anaconda\\pycharm_pytorch\\learning_project\\model\\vgg16_method1.pth)# 保存方式2模型参数官方推荐 torch.save(vgg16_false.state_dict(), G:\\Anaconda\\pycharm_pytorch\\learning_project\\model\\vgg16_method2.pth)保存修改过的模型或自己的编写的模型 # 保存模型和导入模型时都需要导入MYNN这个类 class MYNN(nn.Module):def __init__(self):super(MYNN, self).__init__()self.model1 Sequential(Conv2d(3, 32, 5, padding2, stride1),MaxPool2d(2),Conv2d(32, 32, 5, padding2, stride1),MaxPool2d(2),Conv2d(32, 64, 5, padding2, stride1),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, x):x self.model1(x)return xmynn MYNN() torch.save(mynn, G:\\Anaconda\\pycharm_pytorch\\learning_project\\model\\mynn_method1.pth)以上两部分Python代码运行结果如下 2.4 模型导入 有两种方式导入模型数据。第一种导入方式能够直接使用第二种导入方法需要将字典数据导入原来的网络模型。 import torch import torchvision from torch import nn from torch.nn import Linear, Conv2d, MaxPool2d, Flatten, Sequential, CrossEntropyLoss# 方式1加载模型 vgg16_import torch.load(G:\\Anaconda\\pycharm_pytorch\\learning_project\\model\\vgg16_method1.pth) print(vgg16_import)# 方式2加载模型字典数据 vgg16_import2 torch.load(G:\\Anaconda\\pycharm_pytorch\\learning_project\\model\\vgg16_method2.pth) vgg16_new torchvision.models.vgg16(pretrainedFalse) # 重新加载模型 vgg16_new.load_state_dict(vgg16_import2) # 将数据填入模型 print(vgg16_import2) print(vgg16_new)导入保存的自己的模型python代码如下 # 需要导入自己网络模型 class MYNN(nn.Module):def __init__(self):super(MYNN, self).__init__()self.model1 Sequential(Conv2d(3, 32, 5, padding2, stride1),MaxPool2d(2),Conv2d(32, 32, 5, padding2, stride1),MaxPool2d(2),Conv2d(32, 64, 5, padding2, stride1),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, x):x self.model1(x)return xmodel torch.load(G:\\Anaconda\\pycharm_pytorch\\learning_project\\model\\mynn_method1.pth) print(model)自己的网络模型导入运行结果 MYNN((model1): Sequential((0): Conv2d(3, 32, kernel_size(5, 5), stride(1, 1), padding(2, 2))(1): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(2): Conv2d(32, 32, kernel_size(5, 5), stride(1, 1), padding(2, 2))(3): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(4): Conv2d(32, 64, kernel_size(5, 5), stride(1, 1), padding(2, 2))(5): MaxPool2d(kernel_size2, stride2, padding0, dilation1, ceil_modeFalse)(6): Flatten(start_dim1, end_dim-1)(7): Linear(in_features1024, out_features64, biasTrue)(8): Linear(in_features64, out_features10, biasTrue)) )完整的模型训练套路-GPU训练 模型验证套路 Github上的代码
http://www.hkea.cn/news/14422790/

相关文章:

  • 西安小型企业网站建设wordpress 边栏插件
  • 深圳正规网站建设服务wordpress 制作主题
  • 重庆网站建设雪奥科技咨询公司招聘条件
  • 对于网站建设提出建议wordpress更换初始域名
  • 如网站站长如何对付黑客平面设计公司赚钱吗
  • 网站策划表实验中心网站建设的调查问卷
  • 网站模板组件中国建设银行绑定网站
  • 怎么编辑网站源代码赣州智美互联网科技有限公司
  • 建设一个新的网站需要准备什么个人网站怎么盈利
  • 东莞公司高端网站建设商城网站开发设计
  • 爱做的小说网站做水果网站需要多钱
  • 中小企业网站建设案例阿里云域名备案网站建设方案书
  • 焦作专业做网站公司哪家好什么网站可以做兼职赚钱吗
  • 网站自助建设推广wordpress userpro
  • 设计网站用什么语言代码写好了怎么做成网页
  • 德州力点科技 网站建设彩票系统开发搭建彩票网站服务器安全怎么做
  • 滨州正规网站建设公司互联网企业有哪些行业
  • 兖州城乡建设局网站个人域名怎么做网站
  • 内江网站怎么做seo网站备案免费的吗
  • 网站建设要求 牛商网实体店做网站有用吗
  • 网站开发招聘 领英成都免费网站制作
  • 网站套网站代码企业邮箱域名解析
  • 做网站傻瓜怎么设计自己logo
  • 建设银行贵金属网站关键词做网站标题是什么意思
  • 广东东信润建设有限公司网站wordpress 获取指定分类
  • 南宁市企业网站建设马鞍山 网站建设 有限公司
  • 镇江网站设计公司报价wordpress最大上传2g
  • 个人域名可以建公司网站吗网站开发区
  • 怎么在国税网站上做实名认证吗天台高端网站建设公司
  • 手机网站尺寸大小杭州网站怎么做seo