python如何获取tensor()数据类型中的值

这篇文章主要介绍了python如何获取tensor()数据类型中的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

获取tensor()数据类型的值

一、问题

只想要216.8973那个数。

二、解决方法

1、单个tensor

tensor.item()

就可以得到216.8973。

2、多个tensor

tensor.tolist()

 

完美解决~

tensorflow笔记:tensor数据类型

常见的数据类型载体

  • list
  • np.array
  • tf.tensor
  • list: 可以存储不同数据类型,缺点不适合存储较大的数据,如图片
  • np.array: 解决同类型大数据数据的载体,方便数据运算,缺点是在深度学习之前就设计好的,不支持GPU
  • tf.tensor:更适合深度学习,支持GPU

Tensor是什么

  • scalar: 1.1
  • vector:[1.1] , [1.1,2.2,……]
  • matrix:[[1,2,3,],[4,5,6],[7,8,9]]
  • torsor:rank > 2 (一般指的是维度大于2的数据)

但是,在tensorflow里面我们把数据的数据都叫tensor

Tensor支持的类型

  • int, float, double
  • bool
  • string

创建不同类型的Tensor

import tensorflow as tf # 创建一个整型的数据 tf.constant(1) # Out[3]:  # 注意因为这里的constant就是一个普通的tensor,不要理解为常量了(TF1.0是代表一个常量) # 创建一个浮点类型的数据 tf.constant(1.) # Out[4]:  # 若给定一个浮点型的数据,但是指定为int类型会报错 tf.constant(2.2,dtype=tf.int32) # TypeError: Cannot convert 2.2 to EagerTensor of dtype int32 # 给一数指定双精度 tf.constant(2.,dtype=tf.double) # Out[6]:  # 创建bool类型的数据 tf.constant([True,False]) # Out[7]:  # 创建字符串型数据(很少用) tf.constant("hello,world") # Out[8]: 

Tensor Property

下面开始介绍Tensor常用的属性

tf.device

import tensorflow as tf with tf.device("cpu"): a = tf.constant([1]) with tf.device("gpu"): b = tf.range(6) print(a.device) print(b.device) # 数据在CPU和GPU上的转换 aa = a.gpu() print(aa.device) bb = b.cpu() print(bb.device)

输出结果:

/job:localhost/replica:0/task:0/device:CPU:0
/job:localhost/replica:0/task:0/device:GPU:0
/job:localhost/replica:0/task:0/device:GPU:0
/job:localhost/replica:0/task:0/device:CPU:0

转换为numpy

c = tf.range(10) #Out[14]:  c.numpy() #Out[15]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 

Tensor的维度与形状

d = tf.range(10) d.shape # Out[17]: TensorShape([10]) d.ndim # Out[18]: 1 # 用rank查看tensor的维度(秩):返回的是一个tensor类型的数据 tf.rank(d) # Out[19]:  tf.rank(tf.ones([3,4,2])) # Out[20]:  # tf.name # 是Tensorflow1.0中的概念,现在基本已经淘汰了

python中判断一个数据是不是Tensor

import numpy as np import tensorflow as tf a = tf.constant(1.) b = tf.constant([True,False]) c = tf.constant("hello,world") d = np.arange(4) isinstance(a,tf.Tensor) # Out[27]: True tf.is_tensor(b) # Out[28]: True tf.is_tensor(d) # Out[29]: False a.dtype,b.dtype,c.dtype,d.dtype # Out[32]: (tf.float32, tf.bool, tf.string, dtype('int32')) a.dtype == tf.float32 Out[33]: True c.dtype == tf.string Out[34]: True

数据类型的转换

a = np.arange(5) a.dtype Out[36]: dtype('int32') aa = tf.convert_to_tensor(a)  # numpy数据转化方法为.astype(np.int64) # Out[38]:  aa = tf.convert_to_tensor(a, dtype=tf.float32) # Out[40]:  # 用头tf.cast()数据转化 tf.cast(aa,dtype = tf.float32) # Out[41]:  aaa = tf.cast(aa,dtype=tf.double) # Out[43]:  tf.cast(aaa,dtype=tf.int32) # Out[44]:  # bool 与 int 的转化 b = tf.constant([0,1]) tf.cast(b,tf.bool) # Out[46]:  bb = tf.cast(b,dtype=tf.bool) tf.cast(bb,tf.int32) # Out[48]: 

tf.Variable

tf.Variable在tensorflow中相比tf.constan一样也是Tensor,tf.Variable特指Tensorflow中哪些可以优化的参数,比如自动求导。

tf.Variable可以理解为是专门为神经网络所设立的一个类型。

a = tf.range(5) b = tf.Variable(a) # Out[51]:  b.dtype # Out[52]: tf.int32 b.name # Out[53]: 'Variable:0' b = tf.Variable(a, name = "input_data") b.name # Out[55]: 'input_data:0' b.trainable # Out[56]: True isinstance(b,tf.Tensor) # Out[57]: False isinstance(b,tf.Variable) # Out[58]: True tf.is_tensor(b) # Out[59]: True b.numpy() # Out[60]: array([0, 1, 2, 3, 4])

将Tensor类型转化为python中的数据类型

a = tf.ones([]) # Out[63]:  a.numpy() # Out[64]: 1.0 int(a) # Out[65]: 1 float(a) # Out[66]: 1.0

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是python如何获取tensor()数据类型中的值的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python