赞
踩
目录
三、Tensorflow常见属性device\cpu\gpu\ndim\shape\rank等
6、tensor载体上的数据和numpy库上的数据的相互转换
Tensor实际上就是Tensorflow中的数据载体,可以囊括所有的数据类型,如标量、矩阵、向量等
专门为神经网络中深度学习设计的一个框架中的数据载体
- import tensorflow as tf
-
具体可见:《【tensorflow】——创建tensor的方法》
a=tf.constant(数据)
这个是专门为神经网络的参数进行设置的一个数据类型,它含有两个属性,一个是name,一个是train able
- a = tf.range(4)#[0,1,2,3]
-
- b = tf.Variable(a,name = "变量名")
-
- b.name
-
- b.trainable#返回True,表示是可以训练的变量,系统会自动对该变量的梯度进行监督(watch)
- import tensorflow as tf
-
- tf.is_tensor(变量名)
-
- #是tensor返回True,否则返回False
- import tensorflow as tf
-
- #创建cpu设备上的tensor变量a
- with tf.device("cpu"):
- a=tf.constant(1)
-
- #创建gpu设备上的tensor变量a
- with tf.device("gpu"):
- b=tf.constant(1.1)
- tf.device(变量名)
-
- #返回的是一个字符串,含有当前tensor所工作的环境设备
不同设备上的变量有些操作是不能进行的,如a,b的加法,就需要在同一个设备环境下,才能进行,否则会报错,这时候就需要使用到不同设备间tensor的转换了
- #假设a是cpu上的tensor,b是gpu上的tensor
-
- aa = a.gpu()#返回的是gpu上的tensor,当然不会影响原来的tensor a所在的设备环境
-
- bb = b.cpu()#返回的是cpu上的tensor,当然不会影响原来的tensor b所在的设备环境
这是两个数据库,可以看成是数据载体,都可以生成不同类型的数据,但是要想数据间进行操作,必须转换成同一个载体下的数据才能进行操作
- import tensorflow as tf
-
- #tensor转换为numpy
-
- 变量名.numpy()
-
- #如果tensor是一个标量scalar的话,也可以通过下面的方法进行转换为numpy
-
- int(a)
- float(a)
-
-
- #numpy转换为tensor
-
- tf.convert_to_tensor(变量名,dtype=tf.数据类型)
-
- a.dtype,b.dtype,c.dtyp#返回三个变量的数据类型
-
- (tf.float32,tf.bool,tf.string)#表示在tensor数据载体下的各种数据类型
-
-
- #要是想验证某一个变量是否为具体的数据类型,可以通过以下方法
-
- a.dtype == tf.float32
-
- #返回布尔类型,是返回True,不是返回False
维度是指是标量还是向量还是矩阵抑或是更高维的数据
- b.ndim#返回的是一个标量,一个值,等于维度
-
- tf.rank(b)#返回的是一个含有变量b相关信息的tensor
-
- tf.cast(变量名,dtype=需要转换成的数据类型)
-
- #例如
-
- tf.cast(aa,dtype = float32/double/int32)
布尔型和整型的转化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。