TensorFlow第一天

配置一个gpu的TensorFlow真的是要了我的老命,一路上采坑无数,搞了一天终于完成了开始跑demo(真实菜鸡,太卑微了)…

写一点笔记吧…

1 .
print(‘before:’,a.dtype) # 读取原有张量的数值精度
if a.dtype != tf.float32: # 如果精度不符合要求,则进行转换
a = tf.cast(a,tf.float32) # tf.cast 函数可以完成精度转换
2 .
为了区分需要计算梯度信息的张量与不需要计算梯度信息的张量,TensorFlow 增加了
一种专门的数据类型来支持梯度信息的记录:tf.Variable。tf.Variable 类型在普通的张量类
型基础上添加了 name,trainable 等属性来支持计算图的构建。由于梯度运算会消耗大量的
计算资源,而且会自动更新相关参数,对于不需要的优化的张量,如神经网络的输入𝑿,
不需要通过 tf.Variable 封装;相反,对于需要计算梯度并优化的张量,如神经网络层的𝑾 和𝒃,需要通过 tf.Variable 包裹以便 TensorFlow 跟踪相关梯度信息。
通过 tf.Variable()函数可以将普通张量转换为待优化张量,例如:
In [20]:
a = tf.constant([-1, 0, 1, 2]) # 创建 TF 张量
aa = tf.Variable(a) # 转换为 Variable 类型
aa.name, aa.trainable # Variable 类型张量的属性
Out[20]:
(‘Variable:0’, True)
其中张量的 name 和 trainable 属性是 Variable 特有的属性,name 属性用于命名计算图中的
变量,这套命名体系是 TensorFlow 内部维护的,一般不需要用户关注 name 属性;trainable
属性表征当前张量是否需要被优化,创建 Variable 对象时是默认启用优化标志,可以设置
trainable=False 来设置张量不需要优化。
3.

通过 tf.convert_to_tensor 函数可以创建新 Tensor,并将保存在 Python List 对象或者
Numpy Array 对象中的数据导入到新 Tensor 中
4.

通过 tf.zeros()和 tf.ones()即可创建任意
形状,且内容全 0 或全 1 的张量。

通过 tf.zeros_like, tf.ones_like 可以方便地新建与某个张量 shape 一致,且内容为全 0 或 全 1 的张量。

通过 tf.fill(shape, value)可以创建全为自定义数值 value 的张量,形状由 shape 参数指
定。

通过 tf.random.normal(shape, mean=0.0, stddev=1.0)可以创建形状为 shape,均值为
mean,标准差为 stddev 的正态分布𝒩(mean, stddev2)。

通过 tf.random.uniform(shape, minval=0, maxval=None, dtype=tf.float32)可以创建采样自
[minval, maxval)区间的均匀分布的张量。
如果需要均匀采样整形类型的数据,必须指定采样区间的最大值 maxval 参数,同时指 定数据类型为 tf.int*型
5.

tf.range(limit, delta=1)可以创建[0, limit)之间,步长为 delta 的整型序
列,不包含 limit 本身。
通过 tf.range(start, limit, delta=1)可以创建[start,limit),步长为 delta 的序列,不包含
limit 本身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值