- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
备课日期:年月日
授课时间
课时(理论+实验)
周次
星期:节次:
授课课题
深度学习[实践-孪生神经网络]
教学目标
1.理解孪生神经网络基本原理。
2.掌握利用PyTorch框架实现孪生神经网络的基本方法。
教学重点
利用PyTorch框架实现孪生神经网络的基本方法。
教学准备
PPT、点名册等。
教学方法
指导阅读、案例法。
教学过程设计
备注
课题引入
【思考】人类如何区别相同的事物?
【关键】特征相似度。
【时间】分钟。
【主板书】§5.10.5孪生神经网络
---------------------------------------------------------------------------
一、基本原理
【主板书】基本原理
1.基本机制:孪生神经网络(Siameseneuralnetwork)是是基于两个神经网络建立的耦合构架。以两个样本为输入,输出其嵌入高维度空间的表征,以比较两个样本的相似程度。在监督学习范式下,孪生神经网络会最大化不同标签的表征,并最小化相同标签的表征。在自监督或非监督学习范式下,孪生神经网络可以最小化原输入和干扰输入(例如原始图像和该图像的裁减)间的表征。
2.孪生神经网络和伪孪生神经网络的适用场景区别:孪生神经网络用于处理两个输入比较类似的情况。伪孪生神经网络适用于处理两个输入有一定差别的情况。
3.孪生神经网络损失函数:常规的孪生神经网络使用ContrastiveLoss。
【强化与拓展】对比损失函数的形式(Y=1与Y=0的情况分析、阈值的含义)。
【PPT】展示对比损失函数。
【强化与拓展】孪生神经网络将样本的维度进行转换,在转换后的维度空间中的任意两样本:如果是相同类别,空间距离尽量接近;如果是不同类别,空间距离大于某个间隔。
【时间】分钟。
【提问】。
教学步骤及主要内容
二、编程实现
目的:比较两幅图片是否相似,或者说相似度是多少?
1.构造数据集
原则:将同一个类别图片文件放置一个文件夹中。
(1)两个重要的函数
Dataset类是Pytorch中图像数据集中最为重要的一个类,也是Pytorch中所有数据集加载类中应该继承的父类。
其两个私有成员函数必须被重载,否则将会触发错误提示:
__getitem__(self,index)
__len__(self)
其中__len__应该返回数据集的大小,而__getitem__接收一个index,然后返回图片数据和标签,这个index通常指的是一个list的index,这个list的每个元素就包含了图片数据的路径和标签信息。
(2)获取类别标签〖PPT〗演示
defget_label_from_image_path(image_path):
returnint(os.path.split(image_path)[0].split(\\)[-1])
(3)__getitem__与__len__函数的实现
classMyDataSet(Dataset):
def__init__(self,image_folder,transform=None,should_invert=True):
self.image_folder=image_folder#存放图片的文件夹
self.transform=transform#预处理
self.should_invert=should_invert#通道反转
self.image_list=glob.glob(self.image_folder+/*/*.jpg)#列表
def__getitem__(self,index):
same_class_yn=random.randint(0,1)#相似1或不相似0
im_1_path=random.choice(self.image_list)#随机选1幅图片
im_1_label=get_label_from_image_path(im_1_path)#图片标签
ifsame_class_yn:#抽取与im_1属于同一类的图片
whileTrue:
im_2_path=random.choice(self.image_list)
im_2_label=get_label_from_image_path(im_2_path)
文档评论(0)