【TF2.0】【笔记】Tensorflow2.0数据类型基础

tensorflow 基础

数据类型

数值

在 TensorFlow 中间,为了表达方便,一般把标量、向量、矩阵也统称为张量,不作区分,需要根据张量的维度数(Dimension)和形状自行判断.

与标量不同,向量的定义须通过 List 类型传给 tf.constant()。创建一个元素的向量

标量
t2 = tf.constant(1, dtype=tf.int32)
向量
t3 = tf.constant([1,2,3,4], dtype=tf.float32)
矩阵
t4 = tf.constant([[1, 2],[3, 4]], dtype=tf.float64)
张量
t5 = tf.constant([[[1, 2], [3, 4]],[[5, 6], [7, 8]]])
t6 = tf.constant([[[[1, 2], [3, 4]],[[5, 6], [7, 8]]],[[[1, 2], [3, 4]],[[5, 6], [7, 8]]]])

字符串

ts1 = tf.constant('Hello World', dtype=tf.string)
ts2 = tf.strings.lower(ts1)

布尔

tb1 = tf.constant(True)
tb2 = tf.constant([True, False])
tb3 = tf.constant(True, dtype=tf.int32)

数值精度

常用的精度类型有tf.int16, tf.int32, tf.int64, tf.float16, tf.float32, tf.float64,其中 tf.float64 即为 tf.double。

对于大部分深度学习算法,一般使用 tf.int32, tf.float32 可满足运算精度要求,部分对精度要求较高的算法,如强化学习,可以选择使用 tf.int64, tf.float64 精度保存张量。

pi1 = tf.constant(np.pi, dtype=tf.float32)
pi2 = tf.constant(np.pi, dtype=tf.float64)
if pi1.dtype != tf.float64 :
	pi3 = tf.cast(pi1, tf.tf.float64)

results:

tf.Tensor(3.1415927, shape=(), dtype=float32)
tf.Tensor(3.141592653589793, shape=(), dtype=float64)
tf.Tensor(3.1415927410125732, shape=(), dtype=float64)

可以看到转换后数值不一致的,也不是零

待优化张量

通过tf.Variable()函数可以将普通张量转换为待优化张量

张量的 name 和 trainable 属性是 Variable 特有的属性,name 属性用于命名计算图中的

变量,这套命名体系是 TensorFlow 内部维护的,一般不需要用户关注 name 属性;trainable

表征当前张量是否需要被优化,创建 Variable 对象是默认启用优化标志,可以设置

trainable=False 来设置张量不需要优化

var1 = tf.Variable([1, 2, 3, 4],dtype=tf.float32, name='Test_var1')
var2 = tf.Variable([1, 2, 3, 4],dtype=tf.float32, name='Test_var2', trainable=False)
print(var1)
print(var2.trainable)
print(var1.numpy())

创建张量

从Numpy List中创建Tensor

Numpy Array 和 python list 是非常重要的数据载体,很多时候都是将原始数据读取出后通过Array 和list,即为数据预处理部分, 然后转化为tensor类型

通过 tf.convert_to_tensor 可以创建新 Tensor,并将保存在 Python List 对象或者 Numpy

Array 对象中的数据导入到新 Tensor 中:

a = [1., 1.]
ctt1 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值