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

6网站建设做网站wordpress4.4.1

6网站建设做网站,wordpress4.4.1,纯静态网站 维护,在网页做动态图片的网站在深度学习的实际应用中#xff0c;很少会去从头训练一个网络#xff0c;尤其是当没有大量数据的时候。即便拥有大量数据#xff0c;从头训练一个网络也很耗时#xff0c;因为在大数据集上所构建的网络通常模型参数量很大#xff0c;训练成本大。所以在构建深度学习应用时…在深度学习的实际应用中很少会去从头训练一个网络尤其是当没有大量数据的时候。即便拥有大量数据从头训练一个网络也很耗时因为在大数据集上所构建的网络通常模型参数量很大训练成本大。所以在构建深度学习应用时通常会使用预训练模型 需求 训练一个模型来分类蚂蚁ants和蜜蜂bees 步骤 加载数据集编写函数训练并寻找最优模型编写函数查看模型效果使用torchvision微调模型使用tensorboard可视化训练情况 Pytorch保存和加载模型的两种方式 1.完整保存模型、加载模型 torch.save(net, mnist.pth) net torch.load(mnist.pth, map_locationcpu) # # Model class must be defined somewhere load() 默认会将该张量加载到保存时所在的设备上map_location 可以强制加载到指定的设备上 2. 保存、加载模型的状态字典模型中的参数 torch.save(model.state_dict(), PATH) model TheModelClass(*args, **kwargs)model.load_state_dict(torch.load(PATH)) 迁移学习全过程 1.加载数据集 ants和bees各有约120张训练图片。 每个类有75张验证图片从零开始在 如此小的数据集上进行训练通常是很难泛化的。 由于我们使用迁移学习模型的泛化能力会相当好。 from __future__ import print_function, divisionimport torch import torch.nn as nn import torch.optim as optim from torch.optim import lr_scheduler import torch.backends.cudnn as cudnn import numpy as np import torchvision from torchvision import datasets, models, transforms import matplotlib.pyplot as plt import time import os import copy cudnn.benchmark True plt.ion() lr_scheduler学习率调度器用于在训练过程中动态调整学习率 torch.backends.cudnn.benchmark True大部分情况下设置这个 flag 可以让内置的 cuDNN 的 auto-tuner 自动寻找最适合当前配置的高效算法从而加速运算 plt.ion()这允许你在一个交互式环境中运行matplotlib data_transforms {train: transforms.Compose([transforms.RandomResizedCrop(224),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]),val: transforms.Compose([transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]), } transforms.RandomResizedCrop(224)随机大小裁剪和缩放图像使得裁剪后的图像尺寸为224x224像素。这个操作有助于模型学习不同尺度和长宽比的图像特征从而提高模型的泛化能力。 transforms.RandomHorizontalFlip()以一定的概率默认为0.5对图像进行水平翻转。这也是一种数据增强技术有助于模型学习对称性 transforms.Resize(256)将图像缩放到256x256像素 transforms.CenterCrop(224)从图像的中心裁剪出224x224像素的区域。这种裁剪方式确保每次裁剪的都是图像的中心部分有助于在验证或测试时获得更一致的结果 data_dir data/hymenoptera_data image_datasets {x: datasets.ImageFolder(os.path.join(data_dir, x),data_transforms[x])for x in [train, val]} dataloaders {x: torch.utils.data.DataLoader(image_datasets[x], batch_size4,shuffleTrue, num_workers4)for x in [train, val]} dataset_sizes {x: len(image_datasets[x]) for x in [train, val]} class_names image_datasets[train].classesdevice torch.device(cuda:0 if torch.cuda.is_available() else cpu) 可视化数据 def imshow(inp, titleNone): # 可视化一组 Tensor 的图片inp inp.numpy().transpose((1, 2, 0)) mean np.array([0.485, 0.456, 0.406]) std np.array([0.229, 0.224, 0.225]) inp std * inp mean inp np.clip(inp, 0, 1) plt.imshow(inp) if title is not None: plt.title(title) plt.pause(0.001) # 暂停一会儿为了将图片显示出来 # 获取一批训练数据 inputs, classes next(iter(dataloaders[train])) # 批量制作网格 out torchvision.utils.make_grid(inputs) imshow(out, title[class_names[x] for x in classes]) 2.编写函数训练并寻找最优模型 def train_model(model, criterion, optimizer, scheduler, num_epochs25): 训练模型并返回在验证集上的最佳模型和准确率 - criterion: 损失函数 Return: - model(nn.Module): 最佳模型 - best_acc(float): 最佳准确率 since time.time()best_model_wts copy.deepcopy(model.state_dict())best_acc 0.0for epoch in range(num_epochs):print(fEpoch {epoch}/{num_epochs - 1})print(- * 10)# 训练集和验证集交替进行前向传播for phase in [train, val]:if phase train:model.train() else:model.eval() running_loss 0.0running_corrects 0# 遍历数据集for inputs, labels in dataloaders[phase]:inputs inputs.to(device)labels labels.to(device)# 清空梯度避免累加了上一次的梯度optimizer.zero_grad()with torch.set_grad_enabled(phase train):# 正向传播outputs model(inputs)_, preds torch.max(outputs, 1)loss criterion(outputs, labels)# 反向传播且仅在训练阶段进行优化if phase train:loss.backward() optimizer.step()# 统计loss、准确率running_loss loss.item() * inputs.size(0)running_corrects torch.sum(preds labels.data)if phase train:scheduler.step()epoch_loss running_loss / dataset_sizes[phase]epoch_acc running_corrects.double() / dataset_sizes[phase]print(f{phase} Loss: {epoch_loss:.4f} Acc: {epoch_acc:.4f})# 发现了更优的模型记录起来if phase val and epoch_acc best_acc:best_acc epoch_accbest_model_wts copy.deepcopy(model.state_dict())print()time_elapsed time.time() - sinceprint(fTraining complete in {time_elapsed // 60:.0f}m {time_elapsed % 60:.0f}s)print(fBest val Acc: {best_acc:4f})# 加载训练的最好的模型model.load_state_dict(best_model_wts)return model 3.编写函数查看模型效果 def visualize_model(model, num_images6):was_training model.trainingmodel.eval()images_so_far 0fig plt.figure()with torch.no_grad():for i, (inputs, labels) in enumerate(dataloaders[val]):inputs inputs.to(device)labels labels.to(device)outputs model(inputs)_, preds torch.max(outputs, 1)for j in range(inputs.size()[0]):images_so_far 1ax plt.subplot(num_images//2, 2, images_so_far)ax.axis(off)ax.set_title(fpredicted: {class_names[preds[j]]})imshow(inputs.cpu().data[j])if images_so_far num_images:model.train(modewas_training)returnmodel.train(modewas_training) 4.使用torchvision微调模型 加载预训练模型并将最后一个全连接层重置 model models.resnet18(pretrainedTrue) # 加载预训练模型 num_ftrs model.fc.in_features # 获取低级特征维度 model.fc nn.Linear(num_ftrs, 2) # 替换新的输出层 model model.to(device) criterion nn.CrossEntropyLoss() # 所有参数都参加训练 optimizer_ft optim.SGD(model.parameters(), lr0.001, momentum0.9) # 每过 7 个 epoch 将学习率变为原来的 0.1 scheduler optim.lr_scheduler.StepLR(optimizer_ft, step_size7, gamma0.1) 训练 model_ft train_model(model, criterion, optimizer_ft, scheduler, num_epochs3) 预估 visualize_model(model_ft) 5.使用tensorboard可视化训练情况 将以下代码块合理的加入到训练模块里 from torch.utils.tensorboard import SummaryWriter writer SummaryWriter() ep_losses, ep_acces [], []ep_losses.append(epoch_loss) ep_acces.append(epoch_acc.item())writer.add_scalars(loss, {train: ep_losses[-2], val: ep_losses[-1]}, global_stepepoch) writer.add_scalars(acc, {train: ep_acces[-2], val: ep_acces[-1]}, global_stepepoch) writer.close() 运行命令启动tensorboard tensorboard --logdir runs 可以通过执行命令的终端看到tensorboard可视化页面地址且该命令会在执行该命令的目录下生成一个runs文件夹日志文件的保存位置 以下是我训练了25个epochs的acc和loss的动态图
http://www.zqtcl.cn/news/351815/

相关文章:

  • 烟台高端网站开发网站开发哪个公司好
  • 广州网站定制开发方案南宁网站 制作
  • php做网站需要后台吗郑州建网站十大
  • 网站跳出率是什么意思百度服务
  • 建站 discuz开发者导航
  • 有哪些网站可以做毕业设计外贸网站发外链
  • 如何使用网站模板计算机培训班有用吗
  • 本地宁波网站建设电子商务网站建设工具都有那些
  • 网站建设的基本目标免费 wordpress企业主题
  • 专业网站建设微信商城开发规划馆网站建设
  • 网站建设公司沈阳西安建设工程信息交易中心官网
  • 青海住房和城乡建设部网站wordpress php7.3
  • 网站后台重置密码怎么做360网站怎么做网址链接
  • 广告网站建设及推广网站建设怎样推广
  • 做网站使网页不居中滁州注册公司流程和费用
  • 做网站广告经营者个性定制网站
  • 网站开发 北京外包公司软件公司网站建设
  • 网络认证入口seo免费诊断
  • 十大知名博客网站郑州企业建站公司定制
  • 视频网站如何做引流网站首页 关键词
  • 建设机械网站精英大港做网站
  • 潜山网站建设公司哪里有wordpress相册投票插件
  • 网站建设制作过程网站添加支付功能
  • 网站制作字体即墨公司做网站
  • vue 做pc网站可以吗哪个网站买域名便宜
  • 做销售网站那家好金华住房与城乡建设部网站
  • apple私人免费网站怎么下载无锡网站建设技术
  • 移动应用网站开发阶段作业信息型网站有哪些
  • 监控直播网站开发网站建设与管理总结
  • 青岛城阳网站设计免费网站成品