原型网络Prototypical Network的python代码逐行解释,新手小白也可学会!!-----系列7(承接系列6)

在这里插入图片描述

文章目录

  • 前言
  • 一、原始代码---保存原型点,加载原型点
  • 二、代码逐行解释


前言

此部分为原型网络的两个函数,分别为保存原型点函数和加载原型点函数,与之前的系列相承接。


一、原始代码—保存原型点,加载原型点

def save_center(self,path):datas = []for label in self.center.keys():datas.append([label] + list(self.center[label].cpu().detach().numpy()))with open(path,"w", newline="") as datacsv:csvwriter = csv.writer(datacsv,dialect = ("excel"))csvwriter.writerows(datas)def load_center(self,path):csvReader = csv.reader(open(path))for line in csvReader:label = int(line[0])center = [ float(line[i]) for i in range(1,len(line))]center = np.array(center)center = Variable(torch.from_numpy(center))self.center[label] = center

二、代码逐行解释

save_center(self, path):

datas = []: 初始化一个空列表,用于存储要写入文件的数据。

for label in self.center.keys(): 遍历 self.center 字典的键(可能代表中心的不同标签或名称)。

datas.append([label] + list(self.center[label].cpu().detach().numpy())): 将每个键以及与该键关联的值添加到 datas 列表中。

这里,.cpu().detach().numpy() 是将 PyTorch 张量转换为 numpy 数组的过程。

with open(path, "w", newline="") as datacsv: 使用 “w” 模式(写模式)打开文件,如果文件已存在,则覆盖它。

csvwriter = csv.writer(datacsv, dialect = ("excel")): 使用 csv 模块创建一个写入器,指定使用的语法为 Excel 语法。

csvwriter.writerows(datas): 将 datas 列表中的所有行写入到文件中。

load_center(self, path):

csvReader = csv.reader(open(path)): 使用 csv 模块创建一个读取器,以读取打开的文件。

for line in csvReader: 遍历文件中的每一行。

label = int(line[0]): 从第一列读取一个整数,并将其赋值给变量 label。

center = [ float(line[i]) for i in range(1,len(line))]: 从第二列到最后一列读取一系列浮点数,并将它们放入一个列表中。

center = np.array(center): 将上述列表转换为 numpy 数组。

center = Variable(torch.from_numpy(center)): 将 numpy 数组转换回 PyTorch 张量,并使用 torch.from_numpy() 方法。

self.center[label] = center: 将新加载的中心存储到 self.center 字典中,使用从文件中读取的标签作为键。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193244.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法挨揍日记】day29——139. 单词拆分、467. 环绕字符串中唯一的子字符串

139. 单词拆分 139. 单词拆分 题目描述: 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 解题思路&am…

《2020年最新面经》—字节跳动Java社招面试题

文章目录 前言:一面:01、Java基础知识答疑,简单概述一下?02、倒排索引了解吗?使用Java语言怎么实现倒排?03、详细讲解一下redis里面的哈希表,常用的Redis哈希表命名有哪些,举例说明其…

科大讯飞会议笔记本、GoodNotes、E人E本 功能及体验对比

科大讯飞会议笔记本、GoodNotes、E人E本功能及体验对比 【旧文档,怕失传】 通过对科大讯飞会议笔记本、基于iPad的GoodNotes以及E人E本的各项功能指标进行了实际对比,得出了以下结果: 在实际体验中,科大讯飞笔记本在录音方面表…

C/C++ 获取主机网卡MAC地址

MAC地址(Media Access Control address),又称为物理地址或硬件地址,是网络适配器(网卡)在制造时被分配的全球唯一的48位地址。这个地址是数据链路层(OSI模型的第二层)的一部分&#…

STL的介绍

STL 是 C 标准模板库(Standard Template Library)的缩写,是 C 标准库中的一个重要组成部分。STL 提供了一组通用的模板类和函数,用于实现常用的数据结构和算法,如向量(vector)、链表&#xff08…

Alien Skin Exposure2024免费版图片颜色滤镜插件

Alien Skin Exposure一款非常专业的图片后期处理软件,内含500多种照片滤镜。是一款图片后期处理功能非常强大的软件。这款软件可以对图片的后期效果做很好的处理。 打开Alien Skin Exposure软件,会显示下面这个界面,如图1. ExposureX8win-安…

vue下载xlsx表格

vue下载xlsx表格 // 导入依赖库 import XLSX from xlsx; import FileSaver from file-saver; methods:{btn(){let date new Date()let Y date.getFullYear() -let M (date.getMonth() 1 < 10 ? 0 (date.getMonth() 1) : date.getMonth() 1) -let D (date.getDat…

vue引入前端工程内的图片

一、public目录下的图片 public目录下的图片引入方式&#xff1a; <!--/images/图片名称&#xff0c;这种属于绝对路径&#xff0c;/指向public目录 --> <img src"/images/image.png"> 二、src目录下的图片 先在vue.config.js进行配置&#xff0c;并指…

周年纪念篇

一周年纪念&#xff01; 凌晨逛手机版csdn时才突然发现已经错过一周年了&#xff0c;但我当闰年来纪念一下不过分吧hhh 浅浅的整些怀念的东西吧&#xff01; 这是人生第一段代码&#xff1a;不是hello world写不起&#xff0c;而是纯爱单推人更有性价比。 有这段代码在&#x…

移动端表格分页uni-app

使用uni-app提供的uni-table表格 网址&#xff1a;https://uniapp.dcloud.net.cn/component/uniui/uni-table.html#%E4%BB%8B%E7%BB%8D <uni-table ref"table" :loading"loading" border stripe type"selection" emptyText"暂无更多数据…

英飞凌(Infineon)平台嵌入式开发基础

本篇文章介绍了基于英飞凌平台进行嵌入式开发的一些基础知识&#xff0c;首先介绍了涉及芯片的信息和常见的开发环境&#xff0c;把生硬的主体名称先分类并抛出来&#xff1b;然后着重介绍了英飞凌官网提供的开发资源&#xff0c;包括不限于开发环境&#xff0c;代码示例&#…

Mol-Instructions:大模型赋能,药物研发新视野

论文标题&#xff1a;Mol-Instructions: A Large-Scale Biomolecular Instruction Dataset for Large Language Models 论文链接&#xff1a; https://arxiv.org/pdf/2306.08018.pdf Github链接&#xff1a; https://github.com/zjunlp/Mol-Instructions 模型下载&#xf…