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