https://blog.csdn.net/zz2230633069/article/details/82669546

2018年09月12日 22:56:50 一只tobey 阅读数:727
 

1.numpy类型:numpy.ndarray  对于图片读取之后(H,W,C)或者(batch,H,W,C)

(1)在元素总数不变的情况下:numpy类型的可以直接使用方法numpy.reshape任意改变大小,numpy.expand_dims增加维度,大小是1(这个函数可以参考numpy.expand_dims的用法

(2)元素总数可以变化:scipy.misc.imresize(a,size)

2.TensorFlow的类型:tensorflow.python.framework.ops.tensor  图片的计算格式(H,W,C)或者(batch,H,W,C)

(1)在元素总数不变的情况下:numpy可以直接作为Tensor的输入,一旦被放在tf的函数下则失去了numpy的使用方法。tf.expand_dims在指定维度增加1维,大小为1;tf.squeeze刚好相反,删掉维度为1的轴(这两个函数可以参考tf.expand_dims和tf.squeeze函数);

(2)元素总数可以变化:

  1. '''
  2. tf和numpy之间的转化
  3. '''
  4. import tensorflow as tf
  5.  
  6. a= tf.zeros((3,2))
  7. sess=tf.Session()
  8. sess.run(tf.global_variables_initializer())
  9.  
  10. print("type(a)=",type(a)) # type(a)= <class 'tensorflow.python.framework.ops.Tensor'>
  11.  
  12. #转化为numpy数组
  13. a_np=a.eval(session=sess)
  14. print("type(a_np)=",type(a_np)) # type(a_np)= <class 'numpy.ndarray'>
  15. #转化为tensor
  16. a2= tf.convert_to_tensor(a_np)
  17. print("type(a2)=",type(a2)) # type(a2)= <class 'tensorflow.python.framework.ops.Tensor'>
  18.  
  19.  

3.torch类型:torch.tensor  图片的计算格式是(C,H,W)或者(batch,C,H,W)

numpy类型不能直接作为Tensor的输入,所以在运用torch之前一定要进行转化。

  1. from PIL import Image
  2. import torch
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. a=Image.open('/home/zzp/um_lane_000000.png') # 加载图片数据,返回的是一个PIL类型
  6. b=np.array(a).astype(np.float32) # 先将PIL类型转化成numpy类型,并且把数据变成浮点数
  7. c=b.transpose((2,0,1)) # 调整成torch的通道
  8. d=torch.from_numpy(c).float() # 再将numpy类型转化成torch.tensor类型
  9.  
  10. # 或者另外一种加载图片的方式
  11. import scipy.misc
  12. import torch
  13. import numpy as np
  14. a=scipy.misc.imread('/home/zzp/um_lane_000000.png') # 加载图片数据,返回的是一个numpy类型
  15. c=a.transpose((2,0,1)).astype(np.float32) # 直接调整成torch的通道,不需要转化成numpy类型了,还是要变为浮点数
  16. d=torch.from_numpy(c).float() # 再将numpy类型转化成torch.tensor类型
  17.  
  18. # 三种加载图像的方法
  19. a=Image.open('/home/zzp/um_lane_000000.png')
  20. b=scipy.misc.imread('/home/zzp/um_lane_000000.png')
  21. c=plt.imread('/home/zzp/um_lane_000000.png')
  22. #显示

(1)在元素总数不变的情况下

(2)元素总数可以变化

关于类型为numpy,TensorFlow.tensor,torch.tensor的shape变化以及相互转化的更多相关文章

  1. torch.tensor(),torch.Tensor()

    Pytorch tensor操作 https://www.cnblogs.com/jeshy/p/11366269.html    我们需要明确一下,torch.Tensor()是python类,更明 ...

  2. Python中 list, numpy.array, torch.Tensor 格式相互转化

    1.1 list 转 numpy ndarray = np.array(list) 1.2 numpy 转 list list = ndarray.tolist() 2.1 list 转 torch. ...

  3. torch.Tensor和numpy.ndarray

    1. torch.Tensor和numpy.ndarray相互转换 import torch import numpy as np # <class 'numpy.ndarray'> np ...

  4. PyTorch官方中文文档:torch.Tensor

    torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...

  5. 解决Tensorflow ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray)

    问题描述 在将一个数组送入tensorflow训练时,报错如下: ValueError: Failed to convert a NumPy array to a Tensor (Unsupporte ...

  6. TensorFlow使用基础-Tensor

    使用 TensorFlow 之前你需要了解关于 TensorFlow 的以下基础知识 :• 使用图 (graphs) 来表示计算 .• 在会话 ( Session ) 中执行图 .• 使用张量 (te ...

  7. torch Tensor学习:切片操作

    torch Tensor学习:切片操作 torch Tensor Slice 一直使用的是matlab处理矩阵,想从matlab转到lua+torch上,然而在matrix处理上遇到了好多类型不匹配问 ...

  8. torch.Tensor文档学习笔记

    A torch.Tensor is a multi-dimensional matrix containing elements of a single data type. 张量(torch.Ten ...

  9. [深度学习] Pytorch学习(一)—— torch tensor

    [深度学习] Pytorch学习(一)-- torch tensor 学习笔记 . 记录 分享 . 学习的代码环境:python3.6 torch1.3 vscode+jupyter扩展 #%% im ...

随机推荐

  1. Spring MVC -- JSP标准标签库(JSTL)

    JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭 ...

  2. [转]Ubuntu18.04下安装搜狗输入法

    鏈接地址:https://blog.csdn.net/lupengCSDN/article/details/80279177

  3. servlet 标红的错误笔记

    错误原因,没有添加来自Tomcat服务器的jar包依赖. 解决方法

  4. Module 'mysql' already loaded in Unknown on line 0解决方法

    Module 'mysql' already loaded in Unknown on line 0解决方法 直接进入php.ini 把;extension=mysql.so注释掉就好了

  5. docker+k8s基础篇二

    Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...

  6. VMware vSphere6.0 服务器虚拟化部署安装图解(最全,最详细)-搭建的所有步骤

    VMware vSphere6.0 服务器虚拟化部署安装图解 一 .VMware vSphere部署的前期规划要点 1.vSphere的优点 (略) 2如何利用现在的设备架构虚拟化环境 在虚拟化过程中 ...

  7. Java开发笔记(一百三十七)JavaFX的标签

    前面介绍了JavaFX的窗口框架,其中舞台.场景.窗格都能与AWT/Swing体系的相关概念一一对应,不仅如此,JavaFX的常见控件也能在Swing中找到相应的控件.比如JavaFX的按钮控件名叫B ...

  8. 面试6 --- 当List<String> list =new ArrayList<String>(20); 他会扩容多少次

    当List<String> list =new ArrayList<String>(20); 他会扩容多少次?A 0       B 1 C 2 D 3答案是A: 因为这个集合 ...

  9. visual studio code 命令行创建发布一个项目

    安装vs core 打开按ctrl+~键打开终端 输入dir看看有什么文件,输入md Test 创建一个文件夹,选择文件后创建一个项目 输入dotnet可以查看信息 执行dotnet --help或者 ...

  10. fastjson框架如何处理boolean?CURRENT_TIMESTAMP使用报错?什么是 ONLINE DDL 及 pt-online-schema-change ? getBytes引起的乱码问题?

    一.使用fastjson框架进行序列化时,若莫个参数为Boolean类型,而json里的值是其它类型时,框架如何处理? 1.true, false,正常赋值2.int类型,若为1,则为true,否则为 ...