Pytorch中的variable, tensor与numpy相互转化的方法

在使用pytorch作为深度学习的框架时,经常会遇到变量variable、张量tensor与矩阵numpy的类型的相互转化的问题,本章结合这实际图像对此转化方法进行实现。

1.加载需要用到的模块

import torch
from torch.autograd import Variable
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

2.显示图片与图片中的一部分区域

test_img = mpimg.imread('example1.jpg')
i_x = 20
i_y = 85
sub_img = test_img[i_y:i_y + 100,i_x:i_x + 100,:] #numpy类型

3.将numpy矩阵转换为Tensor张量

sub_ts = torch.from_numpy(sub_img)  #sub_img为numpy类型

4.将Tensor张量转化为numpy矩阵

sub_np1 = sub_ts.numpy()       #sub_ts为tensor张量

5.将numpy转换为Variable

sub_va = Variable(torch.from_numpy(sub_img))

6.将Variable张量转化为numpy

sub_np2 = sub_va.data.numpy()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈pytorch和Numpy的区别以及相互转换方法

    如下所示: # -*- coding: utf-8 -*- # @Time : 2018/1/17 16:37 # @Author : Zhiwei Zhong # @Site : # @File : Numpy_Pytorch.py # @Software: PyCharm import torch import numpy as np np_data = np.arange(6).reshape((2, 3)) # numpy 转为 pytorch格式 torch_data = torch.

  • pytorch numpy list类型之间的相互转换实例

    如下所示: import torch from torch.autograd import Variable import numpy as np ''' pytorch中Variable与torch.Tensor类型的相互转换 ''' # 1.torch.Tensor转换成Variablea=torch.randn((5,3)) b=Variable(a) print('a',a.type(),a.shape) print('b',type(b),b.shape) # 2.Variable转换

  • mac安装pytorch及系统的numpy更新方法

    安装Pytorch 在pytorch官网上选择相应选项,我的是OS X, pip, python2.7, none CUDA. (之所以用python2.7只是觉得现在还有好多代码用2.7写的,用3+版本经常会由于语法更新而报错.而且用3+的话sublime还要配下python3 的building system......) 打开terminal,输入: sudo pip install http://download.pytorch.org/whl/torch-0.3.0.post4-cp2

  • Pytorch中的variable, tensor与numpy相互转化的方法

    在使用pytorch作为深度学习的框架时,经常会遇到变量variable.张量tensor与矩阵numpy的类型的相互转化的问题,本章结合这实际图像对此转化方法进行实现. 1.加载需要用到的模块 import torch from torch.autograd import Variable import matplotlib.pyplot as plt import matplotlib.image as mpimg 2.显示图片与图片中的一部分区域 test_img = mpimg.imre

  • PyTorch中的Variable变量详解

    一.了解Variable 顾名思义,Variable就是 变量 的意思.实质上也就是可以变化的量,区别于int变量,它是一种可以变化的变量,这正好就符合了反向传播,参数更新的属性. 具体来说,在pytorch中的Variable就是一个存放会变化值的地理位置,里面的值会不停发生片花,就像一个装鸡蛋的篮子,鸡蛋数会不断发生变化.那谁是里面的鸡蛋呢,自然就是pytorch中的tensor了.(也就是说,pytorch都是有tensor计算的,而tensor里面的参数都是Variable的形式).如果

  • python将txt等文件中的数据读为numpy数组的方法

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为list并转化为numpy数组 import numpy as np file = open('filename.txt') val_list = file.readlines() lists =[] for string in val_list: string = string.split('\t',3

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

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

  • 浅谈Pytorch中autograd的若干(踩坑)总结

    关于Variable和Tensor 旧版本的Pytorch中,Variable是对Tensor的一个封装:在Pytorch大于v0.4的版本后,Varible和Tensor合并了,意味着Tensor可以像旧版本的Variable那样运行,当然新版本中Variable封装仍旧可以用,但是对Varieble操作返回的将是一个Tensor. import torch as t from torch.autograd import Variable a = t.ones(3,requires_grad=

  • Pytorch中Tensor与各种图像格式的相互转化详解

    前言 在pytorch中经常会遇到图像格式的转化,例如将PIL库读取出来的图片转化为Tensor,亦或者将Tensor转化为numpy格式的图片.而且使用不同图像处理库读取出来的图片格式也不相同,因此,如何在pytorch中正确转化各种图片格式(PIL.numpy.Tensor)是一个在调试中比较重要的问题. 本文主要说明在pytorch中如何正确将图片格式在各种图像库读取格式以及tensor向量之间转化的问题.以下代码经过测试都可以在Pytorch-0.4.0或0.3.0版本直接使用. 对py

  • pytorch中函数tensor.numpy()的数据类型解析

    目录 函数tensor.numpy()的数据类型 tensor数据和numpy数据转换中注意的一个问题 函数tensor.numpy()的数据类型 今天写代码的时候,要统计一下标签数据里出现的类别总数和要分类的分类数是不是一致的. 我的做法是把tensor类型的数据转变成list,然后用Counter函数做统计. 代码如下: from collections import Counter List_counter = Counter(List1) #List1就是待统计的数据,是一维的列表.生成

  • 在pytorch中为Module和Tensor指定GPU的例子

    pytorch指定GPU 在用pytorch写CNN的时候,发现一运行程序就卡住,然后cpu占用率100%,nvidia-smi 查看显卡发现并没有使用GPU.所以考虑将模型和输入数据及标签指定到gpu上. pytorch中的Tensor和Module可以指定gpu运行,并且可以指定在哪一块gpu上运行,方法非常简单,就是直接调用Tensor类和Module类中的 .cuda() 方法. import torch from PIL import Image import torch.nn as

  • Pytorch中的自动求梯度机制和Variable类实例

    自动求导机制是每一个深度学习框架中重要的性质,免去了手动计算导数,下面用代码介绍并举例说明Pytorch的自动求导机制. 首先介绍Variable,Variable是对Tensor的一个封装,操作和Tensor是一样的,但是每个Variable都有三个属性:Varibale的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.grad_fn,根据最新消息,在pytorch0.4更新后,torch和torch.autograd.Variab

  • pytorch中.numpy()、.item()、.cpu()、.detach()以及.data的使用方法

    目录 .numpy() .item() .cpu() .detach()和.data(重点) 补充:关于.data和.cpu().data的各种操作 总结 .numpy() Tensor.numpy()将Tensor转化为ndarray,这里的Tensor可以是标量或者向量(与item()不同)转换前后的dtype不会改变 a = torch.tensor([[1.,2.]]) a_numpy = a.numpy() #[[1., 2.]] .item() 将一个Tensor变量转换为pytho

随机推荐