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

a最先基智网站建设怎么选择锦州网站建设

a最先基智网站建设,怎么选择锦州网站建设,长治做百度网站一年多少钱,威海互联网公司目录1.mixup技术简介2.pytorch实现代码#xff0c;以图片分类为例1.mixup技术简介 mixup是一种数据增强技术#xff0c;它可以通过将多组不同数据集的样本进行线性组合#xff0c;生成新的样本#xff0c;从而扩充数据集。mixup的核心原理是将两个不同的图片按照一定的比例… 目录1.mixup技术简介2.pytorch实现代码以图片分类为例1.mixup技术简介 mixup是一种数据增强技术它可以通过将多组不同数据集的样本进行线性组合生成新的样本从而扩充数据集。mixup的核心原理是将两个不同的图片按照一定的比例进行线性组合生成新的样本新样本的标签也是进行线性组合得到。比如对于两个样本x1和x2它们的标签分别为y1和y2那么mixup生成的新样本x’和标签y’如下 x’ λx1 (1-λ)x2 y’ λy1 (1-λ)y2 其中λ为0到1之间的一个随机数它表示x1和x2在新样本中的权重。 本文中使用mixup扩充数据集后的损失函数为: loss λ * criterion(outputs, targets_a) (1 - λ) * criterion(outputs, targets_b) 即由两张图片融合后新图片的损失为分别计算原先两图片与各自标签的损失值之和。 mixup也可以增加数据集的多样性从而降低模型的方差提高模型的鲁棒性。 总之mixup是一种非常实用的数据增强技术它可以用于各种机器学习任务中可以有效地防止过拟合并且可以提高模型的泛化能力。在实际应用中mixup可以帮助我们更好地利用有限的数据集并且提高模型的性能。 2.pytorch实现代码以图片分类为例 import matplotlib.pyplot as plt import torchvision import torch import torch.nn as nn import torchvision.models as models import torchvision.transforms as transforms import numpy as np import torch.nn.functional as F from PIL import Image import os import cv2 # 加载resnet18模型 resnet18 models.resnet18(pretrainedFalse)# 获取resnet18最后一层输出输出为512维,最后一层本来是用作 分类的原始网络分为1000类 # 用 softmax函数或者 fully connected 函数但是用 nn.identtiy() 函数把最后一层替换掉相当于得到分类之前的特征 #Identity模块它将输入直接传递给输出而不会对输入进行任何变换。 resnet18.fc nn.Identity() # 构建新的网络将resnet18的输出作为输入 class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.resnet18 resnet18self.fc1 nn.Linear(512, 256)self.fc2 nn.Linear(256, 64)self.fc3 nn.Linear(64, 10)self.fc4 nn.Linear(10, 2)self.softmax nn.Softmax(dim1)def forward(self, x):x self.resnet18(x)x F.relu(self.fc1(x))x F.relu(self.fc2(x))x F.relu(self.fc3(x))x F.relu(self.fc4(x))x self.softmax(x)xx.view(-1,2)return x #使用mixup时的数据集融合器输入数据集的输入一批图片以及对应标签返回线性相加后的图片 def mixup_data(x, y, alpha1.0):#随机生成一个 beta 分布的参数 lam用于生成随机的线性组合以实现 mixup 数据扩充。lam np.random.beta(alpha, alpha)#生成一个随机的序列用于将输入数据进行 shuffle。batch_size x.size()[0]index torch.randperm(batch_size)#得到混合后的新图片mixed_x lam * x (1 - lam) * x[index, :]#得到混图对应的两类标签y_a, y_b y, y[index]return mixed_x, y_a, y_b, lam# 实例化网络 net Net() # 将模型放入GPU net net.cuda()# 定义损失函数 criterion nn.CrossEntropyLoss() # 定义优化器添加l2正则化 optimizer torch.optim.Adam(net.parameters(), lr0.0005,weight_decay0)# 加载数据集 # 创建一个transform对象 def rgb2bgr(image):image np.array(image)[:, :, ::-1]imageImage.fromarray(np.uint8(image))return imagetransform transforms.Compose([transforms.ColorJitter(brightness1, contrast1, saturation1, hue0.5),# rgb转bgrtorchvision.transforms.Lambda(rgb2bgr),torchvision.transforms.Resize(112),# 入的图片为PIL image 或者 numpy.nadrry格式的图片其shape为HxWxC数值范围在[0,255],转换之后shape为CxHxw,数值范围在[0,1]transforms.ToTensor(),# 进行归一化和标准化Imagenet数据集的均值和方差为mean(0.485, 0.456, 0.406)std(0.229, 0.224, 0.225)# 因为这是在百万张图像上计算而得的所以我们通常见到在训练过程中使用它们做标准化。transforms.Normalize(mean[0.406, 0.456, 0.485], std[0.225, 0.224, 0.229]),# #这行代码表示使用transforms.RandomErasing函数以概率p1在图像上随机选择一个尺寸为scale(0.02, 0.33)长宽比为ratio(1, 1)的区域# #进行随机像素值的遮盖只能对tensor操作transforms.RandomErasing(p0.1, scale(0.02, 0.2), ratio(1, 1), valuerandom) ])train_dataset torchvision.datasets.ImageFolder(rD:\eyeDataSet\train, transformtransform) train_loader torch.utils.data.DataLoader(train_dataset, batch_size128, shuffleTrue) test_dataset torchvision.datasets.ImageFolder(rD:\eyeDataSet\test, transformtransform) test_loader torch.utils.data.DataLoader(test_dataset, batch_size128, shuffleTrue)## 绘制训练及测试集迭代曲线 # 记录训练集准确率 train_acc [] # 记录测试集准确率 test_acc [] for epoch in range(50):running_loss 0.0#[(0, data1), (1, data2), (2, data3), ...]for i, data in enumerate(train_loader, 0):# 获取输入inputs, labels datainputs, labels inputs.cuda(), labels.cuda()# mixup扩充数据集inputs, targets_a, targets_b, lam mixup_data(inputs, labels, alpha1.0)# 梯度清零optimizer.zero_grad()# forward backwardoutputs net(inputs)#这里对应调整了使用mixup后的数据集的lossloss lam * criterion(outputs, targets_a) (1 - lam) * criterion(outputs, targets_b)loss.backward()# 更新参数optimizer.step()# 打印log信息# loss 是一个scalar,需要使用loss.item()来获取数值不能使用loss[0]running_loss loss.item()if i % 10 9: # 每200个batch打印一下训练状态print([%d, %5d] loss: %.3f \% (epoch1, i1, running_loss / 2000))running_loss 0.0# 在每次训练完成后使用测试集进行测试correct 0total 0with torch.no_grad():for i2,data2 in enumerate(test_loader):#控制测试集的数量if i25:breakimages, labels data2images, labels images.cuda(), labels.cuda()outputs net(images)_, predicted torch.max(outputs.data, 1)total labels.size(0)correct (predicted labels).sum().item()test_acc.append(100 * correct / total)print(Accuracy of the network on the test images: %.3f,now max acc is %.3f % (100 * correct / total,max(test_acc)))# 保存测试集上准确率最高的模型if 100 * correct / total max(test_acc):if not os.path.exists(r./result):os.makedirs(r./result)if max(test_acc)93:savename./result/bestmodel%.3f%max(test_acc).pthtorch.save(net.state_dict(), savename)print(最大准确度,max(test_acc))
http://www.dnsts.com.cn/news/210751.html

相关文章:

  • 手机网站 微信小程序推广普通话周
  • 建设银行网站登陆二星是什么意思windows软件开发工具
  • 对重庆电子政务网站建设评价北京百度推广seo
  • 山东网站备案号成都 企业网站建设
  • 密云建站推广5 电子商务网站建设的步骤
  • 做网站的公司盐城邯郸做网站电话
  • 网站颜色搭配技巧百度快速收录3元一条
  • 校园图书馆网站建设wordpress登录界面修改
  • 有哪个网站做策划方案的wordpress漏洞2019
  • 做网站违法嘛新能源汽车价格表
  • 四川省建设厅网站在线申报比较出名的网站域名
  • wordpress阅读量插件seo2短视频发布
  • 山东联通网站备案表白网页制作软件app
  • 如何用服务器做网站jsp做网站的书
  • 中国最好的网站制作公司部门网站建设的工作汇报
  • 网络建站免费网址闸北做网站
  • 做网站条件网站建设公司的重要性
  • 长春建设工程信息网站网络管理系统包括哪五大功能
  • 杨凌网站建设公司超市网站建设策划书
  • 做的时间长的网站制作公司网站专题页面开发
  • wordpress资源站源码巴中市平昌县建设局网站
  • 济南建网站的网站网站域名变更
  • 兰州做门户网站开设计工作室赚钱吗
  • 论坛网站设计网店产品seo如何优化
  • 一般建设网站需要多少预算短视频app有哪些
  • 重庆网络网站建设装饰行业网站建设方案
  • 机顶盒做网站如何介绍自己的网页
  • 燕郊医疗网站建设互联网上市公司排名
  • 网站点击量怎么查建设品牌网站
  • 连云港营销型网站建设男女在床上做孔网站