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

织梦动漫网站模板建站公司

织梦动漫网站模板,建站公司,同个ip不同端口做网站好,手机建立网站软件简介:元学习是一种思想,一般以神经网络作为特征嵌入的工具,实现对数据特征的提取,然后通过构造某种指标以引导优化器对模型参数进行优化。而最小化距离是最常见的学习目标,这就是熟知的度量学习,度量学习里…

        简介:元学习是一种思想,一般以神经网络作为特征嵌入的工具,实现对数据特征的提取,然后通过构造某种指标以引导优化器对模型参数进行优化。而最小化距离是最常见的学习目标,这就是熟知的度量学习,度量学习里面经典的训练范式就是孪生网络。

1、小样本学习

        小样本学习是指用于训练的数据很少,以分类任务为例,minist数据一共有10个类别,每个类别差不多有几百张图片,传统的训练方式是一股脑的把所有训练集数据给端到端模型进行训练,得到一个模型,然后在测试集上测试。

        在小样本学习当中,每个类别仅能够使用很少的图片,比如10个类别每个类别使用5张图片,则称为10ways-5shots,10个类别每个类别使用2张图片,则称为10ways-2shots。在这么少的数据情况下,一般的端到端模型肯定学不到东西,导致效果变差。

        那么换个思路,让神经网络生成表征即可,但是得按照我的思路进行生成,思路就是你神经网络生成的样本表征需要满足下面的条件:相同的图片表征距离尽量靠近、不相同的图片表征距离尽量原理,然后构造一个自定义损失函数,进行训练即可。

        可以看到,度量学习本质上就是在神经网络后面添加一个额外的网络层,这个网络层对神经网络的输出表征进行处理,输出一个度量值,也就是自定义了一个损失函数网络层。在torch当中,原理层面就说构造了一个新的计算图,使得优化器的优化目标进行了改变,而这种改变也会使得神经网络的权重变成我们想要的情况,也就是这个自定义的度量损失函数指导了神经网络权重的学习,这就是元学习的体现。

        换一种说法就是,有一个初始的神经网络,我们需要改变他的权重,但不能直接让这个神经网络去参与训练。我们需要对神经网络的输出进行加工,得到另一种令人接受结果,然后使用万能的优化器优化这个结果,当这个结果确实令人接受了,那么神经网络的权重自然而然也就令人接受了。

 2、孪生网络数据集

        下面是孪生网络的数据集格式。  


from torchvision import transforms
from torch.utils.data import Dataset, DataLoader
from PIL import Image
import random
import torch.functional as F
from tqdm import tqdmclass SiameseDataset(Dataset):def __init__(self, image_paths, labels, transform=None):self.image_paths = image_pathsself.labels = labelsself.transform = transform or transforms.Compose([transforms.Resize((256, 256)),  # 调整图片大小transforms.ToTensor(),  # 转换为张量transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  ])self.label_to_indices = self._create_label_to_indices()def _create_label_to_indices(self):"""创建一个字典,将每个标签映射到具有该标签的所有图像的索引列表"""label_to_indices = {}for idx, label in enumerate(self.labels):if label not in label_to_indices:label_to_indices[label] = []label_to_indices[label].append(idx)return label_to_indicesdef __len__(self):"""返回数据集的大小"""return len(self.image_paths)def __getitem__(self, index):"""返回一对图像和一个标签,指示这对图像是否属于同一类别"""# 随机选择是否返回同一类别的图像对label = self.labels[index]if random.random() < 0.5:# 选择同一类别的图像siamese_index = random.choice(self.label_to_indices[label])target = 1  # 1 表示同一类别else:# 选择不同类别的图像other_labels = [l for l in self.label_to_indices.keys() if l != label]other_label = random.choice(other_labels)siamese_index = random.choice(self.label_to_indices[other_label])target = 0  # 0 表示不同类别# 加载图像image1 = Image.open(self.image_paths[index]).convert('RGB')image2 = Image.open(self.image_paths[siamese_index]).convert('RGB')# 应用变换if self.transform:image1 = self.transform(image1)image2 = self.transform(image2)return image1, image2, target

 3、损失函数


class ContrastiveLoss(nn.Module):def __init__(self, margin=2.0):super(ContrastiveLoss, self).__init__()self.margin = margindef forward(self, output1, output2, label):euclidean_distance = F.pairwise_distance(output1, output2)loss_contrastive = torch.mean((1-label) * torch.pow(euclidean_distance, 2) +(label) * torch.pow(torch.clamp(self.margin - euclidean_distance, min=0.0), 2))return loss_contrastive

http://www.yidumall.com/news/102754.html

相关文章:

  • 长春做网站选长春万网1元购买域名
  • 做网站数据需要的软件网页怎么做
  • 微信端网站设计规范今日深圳新闻最新消息
  • 电子商务网站开发课程教案百度一下了你就知道官网
  • 网站建设php的心得和体会新媒体营销案例ppt
  • 上海人才网官方网站互联网广告平台排名
  • 网站内容如何编辑成都优化官网公司
  • 郑州专业网站建设公司首选网店代运营一年的费用是多少
  • 美国亚马逊网站如何做产品网络营销方案
  • 12306网站服务时间百度网页版主页
  • wordpress漫画站主题在线服务器网站
  • 网站开发的背景新网站百度收录要几天
  • 文字做图网站深圳seo公司
  • 微网站开发平台 开源营销推广型网站
  • 佛山网站建设推广软文推广的标准类型
  • 网站开发php有哪些网站建设及推广优化
  • 兰州 网站建设网络营销策划书ppt
  • 粉丝社区网站怎么做计算机培训机构排名
  • 日本 色彩网站网址大全百度站长提交
  • 鄞州区住房和城乡建设委员网站公众号开发
  • 九江网站建设企业网站制作流程
  • 古镇营销型网站建设app拉新一手渠道商
  • 黄岛开发区做网站的公司青岛seo网站关键词优化
  • xp系统中做网站服务器吗国家再就业免费培训网
  • wordpress 标签库广西seo关键词怎么优化
  • 网站板块设置企业信息查询
  • websocket做新闻网站手机网站制作
  • 服务商名称是什么意思seo培训班
  • 网页设计毕业论文方向怎么选择seo推广方法有哪些
  • 北航网站建设网络营销渠道建设方案