pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换

1, 创建pytorch 的Tensor张量:

torch.rand((3,224,224)) #创建随机值的三维张量,大小为(3,224,224)

torch.Tensor([3,2]) #创建张量,[3,2]

2, cpu上的tensor和GPU即pytorch创建的tensor的相互转化

b = a.cpu() # GPU → CPU

a = b.cuda() #CPU → GPU

3, tensor和numpy的转化

b = a.numpy() # tensor转化为 numpy数组

a = b.from_numpy() # numpy数组转化为tensor

4, torch的GPU tensor保存为图片

import scipy.misc

scipy.misc.imsave(‘pic_name',img) #img为二维张量,比如(224,224),保存为黑白图

5, 堆叠矩阵,形成彩色图片

img = np.stack((ia,b,c),dim) #堆叠矩阵a,b,c 可用于三通道图像的保存 dim表示要增加的维度,
#比如a,b,c均为(224,224)大小的矩阵,那么令dim=-1,则 img的维度为(224,224,3)

6, 从numpy数组保存图片

from PIL import Image

im = Image.fromarray(A)

im.save("your_file.jpeg")

7, 读取图片为矩阵:

import matplotlib.image
im = matplotlib.image.imread('0_0.jpg')

8, 保存矩阵为图片:

import numpy as np
import scipy.misc

x = np.random.random((600,800,3))
scipy.misc.imsave('meelo.jpg', x)

以上这篇pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pytorch 实现删除tensor中的指定行列

    前言 在pytorch中, 想删除tensor中的指定行列,原本以为有个函数或者直接把某一行赋值为[]就可以,结果发现没这么简单,因此用了一个曲线救国方法,希望如果有更直接的方法,请大家指出. code 本质上是利用mask删除了指定行,然后重新指向. a = torch.rand(4, 2) print(a) idx = 1 a = a[torch.arange(a.size(0))!=1] print(a) """ tensor([[2.7775e-01, 3.7430e

  • pytorch实现Tensor变量之间的转换

    系统默认是torch.FloatTensor类型 data = torch.Tensor(2,3)是一个2*3的张量,类型为FloatTensor data.cuda()就转换为GPU的张量类型,torch.cuda.FloatTensor类型 (1) CPU或GPU之间的张量转换 在Tensor后加long(), int(), double(),float(),byte()等函数就能将Tensor进行类型转换type()函数, data为Tensor数据类型,data.type()为给出dat

  • Pytorch基本变量类型FloatTensor与Variable用法

    pytorch中基本的变量类型当属FloatTensor(以下都用floattensor),而Variable(以下都用variable)是floattensor的封装,除了包含floattensor还包含有梯度信息 pytorch中的dochi给出一些对于floattensor的基本的操作,比如四则运算以及平方等(链接),这些操作对于floattensor是十分的不友好,有时候需要写一个正则化的项需要写很长的一串,比如两个floattensor之间的相加需要用torch.add()来实现 然而

  • pytorch常见的Tensor类型详解

    Tensor有不同的数据类型,每种类型分别有对应CPU和GPU版本(HalfTensor除外).默认的Tensor是FloatTensor,可通过torch.set_default_tensor_type修改默认tensor类型(如果默认类型为GPU tensor,则所有操作都将在GPU上进行). Tensor的类型对分析内存占用很有帮助,例如,一个size为(1000,1000,1000)的FloatTensor,它有1000*1000*1000=10^9个元素,每一个元素占用32bit/8=

  • PyTorch中Tensor的数据统计示例

    张量范数:torch.norm(input, p=2) → float 返回输入张量 input 的 p 范数 举个例子: >>> import torch >>> a = torch.full([8], 1) >>> b = a.view(2, 4) >>> c = a.view(2, 2, 2) >>> a.norm(1), b.norm(1), c.norm(1) # 求 1- 范数 (tensor(8.),

  • 将pytorch转成longtensor的简单方法

    我就废话不多说了,直接上代码了.非常简单哦! pytorch转成longtensor b = torch.rand(3,3)#得到的是floattensor值, b = b.long()#得到的是longtensor值 pytorch tensor转换实例 import torch import numpy as np #(1,3,16,2,2) # 1个视频,16个关键帧,3通道,长为2宽为2 # 即一个视频,有16张 3通道,长为2宽为2 的图像 data = np.array([[1,1,

  • 关于windows下Tensorflow和pytorch安装教程

    一.Tensorflow安装 1.Tensorflow介绍 Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一.Tensorflow由Google开发,是GitHub上最受欢迎的机器学习库之一.Google几乎在所有应用程序中都使用Tensorflow来实现机器学习. 例如,如果您使用到了Google照片或Google语音搜索,那么您就间接使用了Tensorflow模型.它们在大型Google硬件集群上工作,在感知任务方面功能强大. 2.Tensorflow安装(c

  • pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换

    1, 创建pytorch 的Tensor张量: torch.rand((3,224,224)) #创建随机值的三维张量,大小为(3,224,224) torch.Tensor([3,2]) #创建张量,[3,2] 2, cpu上的tensor和GPU即pytorch创建的tensor的相互转化 b = a.cpu() # GPU → CPU a = b.cuda() #CPU → GPU 3, tensor和numpy的转化 b = a.numpy() # tensor转化为 numpy数组 a

  • pytorch算子torch.arange在CPU GPU NPU中支持数据类型格式

    目录 正文 一. torch.arange() 和 torch.range() 的用法 二. torch.arange 支持的数据类型格式 正文 CPU(Central Processing Unit):中央处理器 GPU(Graphics Processing Unit):图形处理器 NPU(Neural Network Processing Unit):神经网络处理器,是基于神经网络算法与加速的新型处理器总称. 一. torch.arange() 和 torch.range() 的用法 py

  • pytorch cuda上tensor的定义 以及减少cpu的操作详解

    cuda上tensor的定义 a = torch.ones(1000,1000,3).cuda() 某一gpu上定义 cuda1 = torch.device('cuda:1') b = torch.randn((1000,1000,1000),device=cuda1) 删除某一变量 del a 在cpu定义tensor然后转到gpu torch.zeros().cuda() 直接在gpu上定义,这样就减少了cpu的损耗 torch.cuda.FloatTensor(batch_size, s

  • PyTorch中torch.tensor与torch.Tensor的区别详解

    PyTorch最近几年可谓大火.相比于TensorFlow,PyTorch对于Python初学者更为友好,更易上手. 众所周知,numpy作为Python中数据分析的专业第三方库,比Python自带的Math库速度更快.同样的,在PyTorch中,有一个类似于numpy的库,称为Tensor.Tensor自称为神经网络界的numpy. 一.numpy和Tensor二者对比 对比项 numpy Tensor 相同点 可以定义多维数组,进行切片.改变维度.数学运算等 可以定义多维数组,进行切片.改变

  • 详解Pytorch中的tensor数据结构

    目录 torch.Tensor Tensor 数据类型 view 和 reshape 的区别 Tensor 与 ndarray 创建 Tensor 传入维度的方法 torch.Tensor torch.Tensor 是一种包含单一数据类型元素的多维矩阵,类似于 numpy 的 array.Tensor 可以使用 torch.tensor() 转换 Python 的 list 或序列数据生成,生成的是dtype 默认是 torch.FloatTensor. 注意 torch.tensor() 总是

  • Pytorch实现张量的创建与使用方法

    目录 张量的创建及其基本类型 1.张量(Tensor)函数创建方法 2.张量的类型 3.张量类型的转化 张量的维度及形变 1.创建高维张量 2.张量的形变 2.1 flatten拉平: 将任意维度张量转化为一维张量 2.2 reshape方法: 任意变形 特殊张量的创建方法 1.特殊取值的张量的创建方法 2.创建指定形状的数组 张量和其他类型的转化方法 张量的深拷贝 张量的创建及其基本类型 1.张量(Tensor)函数创建方法 张量最基本的创建方法和Numpy中创建Array的格式一样,都是创建

  • Pytorch上下采样函数之F.interpolate数组采样操作详解

    目录 什么是上采样 F.interpolate——数组采样操作 输入: 注意: 补充: 代码案例 一般用法 size与scale_factor的区别:输入序列时 size与scale_factor的区别:输入整数时 align_corners=True与False的区别 扩展: 总结 什么是上采样 上采样,在深度学习框架中,可以简单的理解为任何可以让你的图像变成更高分辨率的技术. 最简单的方式是重采样和插值:将输入图片input image进行rescale到一个想要的尺寸,而且计算每个点的像素

  • Pytorch如何把Tensor转化成图像可视化

    目录 Pytorch把Tensor转化成图像可视化 pytorch标准化的Tensor转图像问题 总结 Pytorch把Tensor转化成图像可视化 在调试程序的时候经常想把tensor可视化成来看看,可以这样操作: from torchvision import transforms unloader = transforms.ToPILImage() image = original_tensor.cpu().clone()  # clone the tensor image = image

  • 用Pytorch训练CNN(数据集MNIST,使用GPU的方法)

    听说pytorch使用比TensorFlow简单,加之pytorch现已支持windows,所以今天装了pytorch玩玩,第一件事还是写了个简单的CNN在MNIST上实验,初步体验的确比TensorFlow方便. 参考代码(在莫烦python的教程代码基础上修改)如下: import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import tor

  • pytorch查看torch.Tensor和model是否在CUDA上的实例

    今天训练faster R-CNN时,发现之前跑的很好的程序(是指在运行程序过程中,显卡利用率能够一直维持在70%以上),今天看的时候,显卡利用率很低,所以在想是不是我的训练数据torch.Tensor或者模型model没有加载到GPU上训练,于是查找如何查看tensor和model所在设备的命令. import torch import torchvision.models as models model=models.vgg11(pretrained=False) print(next(mod

随机推荐