pytorch 模型输出特征 保存npy_保存模型输出 npy-程序员宅基地

技术标签: python基础学习  机器学习  pytorch  神经网络  Python学习  

实际落地操作时,需要将pytorch模型输出的特征保存成npy格式。

首先读取模型输出,将模型输出从GPU转换到CPU,并切换到numpy格式,新建numpy list保存所有结果,最后保存为npy格式。
 

创建一个tensor

a = torch.arange(10)
'''
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
device(type='cpu') 默认在cpu上
'''

1. CPU tensor转GPU tensor:

cpu_imgs.cuda()

a = torch.arange(10).cuda()
'''
device(type='cuda', index=0) 调用cuda()方法后Tensor存储在gpu
'''

2. GPU tensor 转CPU tensor:

gpu_imgs.cpu()

a = torch.arange(10).cuda()
'''
device(type='cuda', index=0) 调用cuda()方法后Tensor在gpu上计算
'''
a = a.cpu()
'''
device(type='cpu') 调用cpu()方法后Tensor又重新回到cpu
'''


3. numpy转为CPU tensor:

torch.from_numpy( imgs )

4.CPU tensor转为numpy数据:

cpu_imgs.numpy()


5. note:GPU tensor不能直接转为numpy数组,必须先转到CPU tensor。

6. 如果tensor是标量的话,可以直接使用 item() 函数(只能是标量)将值取出来:

print loss_output.item()

numpy append()函数用于合并两个数组。它返回一个新数组, 并且原始数组保持不变。

umpy.append(arr, values, axis=None)

1)arr:array_like

这是一个ndarray。新值将附加到此数组的副本中。此参数是必需的, 并且在numpy.append()函数中起重要作用。

2)值:array_like

此参数定义附加到ndarray副本的值。这里要注意的是, 这些值必须具有与原始ndarray相同的形状(不包括轴)。如果未定义轴, 则值可以为任何形状, 并且在使用前将变平。

3)轴:int(可选)

此参数定义沿其附加值的轴。如果没有给它们轴, 则在使用前将ndarray和值都展平。

axis无定义

numpy.append(arr,values,axis=None):

返回由arr和values组成的新数组。axis是一个可选的值,当axis无定义时,返回总是为一维数组。

由下面的例子可以看出,不管两个数组是什么形式,返回的都是一维数组。

import numpy as np
 
HJL = np.append([1,2,3],[[4,5,6],[7,8,9]])
print(HJL)
# 当axis无定义时,是横向加成,返回总是为一维数组。
#[1 2 3 4 5 6 7 8 9]
 
HXH = np.append([[1,2],[3,4]],[[5,6,7],[8,9,10]])
print(HXH)
# [ 1  2  3  4  5  6  7  8  9 10]

axis=0的情况

axis=0,表示针对第1维进行操作,可以简单的理解为,加在了行上。所以行数增加,列数不变。

由此可知,列数必须保持相同。

axis=1的情况

拓展列,行数不变。行数需要相同。
主要记录二维矩阵的append用法
np.append(fea_neg,fea_pos,axis=0)#axis=0表示将两个矩阵上下堆叠,比如两个矩阵维度均为(3,4)则堆叠后为(6,4)
np.append(fea_neg,fea_pos,axis=1)#axis=1表示左右拼接,比如两个矩阵维度均为(3,4)则堆叠后为(3,8)

npy数据的保存与读取

保存

  利用这种方法,保存文件的后缀名字一定会被置为.npy

x = 10

numpy.save("data_x.npy",x)

读取    

  data = numpy.load("data_x.npy")
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chanbo8205/article/details/113921060

智能推荐

Linux学习之正则表达式元字符和grep命令_linux 元字符集合-程序员宅基地

文章浏览阅读1.1k次。正则表达式是一种搜索字符串的模式,通俗点理解,也就是普通字符和元字符共同组成的字符集合匹配模式。正则表达式的主要作用是文本搜索和字符串处理。元字符就是一些具有特殊含义的字符,用于表示某种特定的字符类型或者行为,它的含义就不是显示在计算机上的含义了。此文章为8月Day 4学习笔记,内容来源于极客时间。看到操作系统的版本是。_linux 元字符集合

第十一周项目 输出顶点出度,最大顶点编号,出度0的顶点和指定边_求图中出度最大的顶点编号-程序员宅基地

文章浏览阅读452次。问题及代码/**Copyright(c)2017,烟台大学计算机学院*All right reserved.*文件名:main.cpp btree.h btree.cpp*作者:王万兴*完成日期:2017年11月16日*版本号:v1.0**问题描述:邻接表问题*输入描述:无*程序输出:测试结果*/#include #include #include "grap_求图中出度最大的顶点编号

Ftp命令格式(rfc 959)_ftp-rfc 命令-程序员宅基地

文章浏览阅读2.9k次。http://aijiekj.blog.163.com/blog/static/129866789201142511128695/ 本节主要讨论命令格式。命令对大小写不敏感。命令通常由命令码和相应的参数组成。中间由一个或几个空格分开。参数域由结束,服务器在未接收到行结束符时不会采取任何动作。下面描述的格式是以 NVT-ASCII 以准的,方括号代表可选的参数域,如果未选择可选的参数域则采用_ftp-rfc 命令

GPT2 throw error Using pad_token, but it is not set yet_using pad_token, but it is not set yet.-程序员宅基地

文章浏览阅读4.6k次。今天使用GPT2遇到的ERROR,看了一下源码,问题在这:pytorch_transformers.tokenization_utilsclass PreTrainedTokenizer(object):......@property def pad_token(self): """ Padding token (string). Log an error if used while not having been set. """ if self._pad_using pad_token, but it is not set yet.

今天,我28岁了_28岁有自我意识-程序员宅基地

文章浏览阅读3.9k次,点赞53次,收藏29次。曾经有幻想过28岁会是什么样子?拥有热爱的事业,理想的爱人,一日既往的亲朋好友。我回回头,还好,他们都在!但是,他们也曾丢失,或者差点丢失。_28岁有自我意识

人脸比对(1:N)_1:n人脸检索 学术-程序员宅基地

文章浏览阅读2.9w次,点赞12次,收藏81次。第1章 前言设计出人脸1:N,随着N的增大准确率降低最小的解决方案具有很强的现实意义。人脸1:N的框架大致分为:人脸检测、人脸对齐、人脸映射与人脸识别LOSS的设计,结构如下图所示:图1:人脸1:N的主要框架人脸1:N在学术界有着广泛的研究,对于人脸检测与人脸对齐(MTCNN、TCDCN等)在业界已经有较好的效果,目前的主要性能提升有:DeepFace、DeepID,框架为CNN ..._1:n人脸检索 学术

随便推点

批量学习(batch learning)和在线学习(online learning)-程序员宅基地

文章浏览阅读1.3w次。批量学习(batch learning),一次性批量输入给学习算法,可以被形象的称为填鸭式学习。在线学习(online learning),按照顺序,循序的学习,不断的去修正模型,进行优化。batch越小,训练完一组的时间越短,但可能需要更多的步数接近局部最佳值,从大体效果来说,batch对结果影响应该不大。http://blog.csdn.net/vividonly/article/detail_batch learning

5.6 Vue transition功能扩展(子div可附加动画)+ JS构造CSS3-Animation动画_export const playmode = { sequence: 0, loop: 1, ra-程序员宅基地

文章浏览阅读843次。1、 监听路由变化 watch: { '$route' () { // 此处写router变化时,想要初始化或者是执行的方法...... } }2、 语义化数据对象通常建立 common/js/config.jsexport const playMode = { sequence: 0, loop: 1, random: 2}..._export const playmode = { sequence: 0, loop: 1, random: 2 }

nodejs文件操作模块FS(File System)常用函数简明总结-程序员宅基地

文章浏览阅读408次。件系统操作相关的函数挺多的。首先可以分为两大类。一类是异步+回调的。 一类是同步的。在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的。fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被..._ts语法 node中fs函数

hibernater多方LIST做分页的处理_hibernate如何对list进行分页-程序员宅基地

文章浏览阅读758次。多方的LIST做分页,HIBERNATE有专门的函数对LIST进行分页的。还可以进行排序session.createFilter(userInfo.getLeaveWords1(),"order by xx").setFirstResult(10).setMaxResult(50).list();具体这个createFilter的参数有何作用,请参考API。_hibernate如何对list进行分页

ie8的乱码和样式问题_ie8样式不加载,右键更改编码格式后样式加载,但中文乱码-程序员宅基地

文章浏览阅读1.2k次。ie8下乱码,于是发现少了一句:加上后发现样式发生了改变,几经尝试之后发现:以前只写从来没注意过doctype简单的来说就是要页面按照html的规范来解析代码_ie8样式不加载,右键更改编码格式后样式加载,但中文乱码

DirectFB-1.5.0移植,支持3D硬件支持_directfb-examples-1.5.2.tar-程序员宅基地

文章浏览阅读2.2k次。一. DirectFB简介 DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层_directfb-examples-1.5.2.tar

推荐文章

热门文章

相关标签