TensorFlow中tensor

    在TensorFlow中,我们使用张量表示数据,使用计算图搭建神经网络,使用会话训练神经网络,执行训练过程。首先我们先了解张量的运行机制和原理。

 

张量的理解

      简单来说,张量就是N维数组。在Python中,tensor的形式的Numpy ndarray。N维数组(N维张量)表征了数据的不同形状,比如0维张量表示标量、1维张量表示向量,2维张量表示矩阵,下面我们直观的给出0维到4维的张量,更高维度的张量很少用,而且理解起来也比较困难,这里不做介绍。

维度属性shape示例
0维张量标量[ ]<=>shape=()1,2,3
1维张量向量[a]<=>shape=(a,)[1, 2, 3]
2维张量矩阵[a, b]<=>shape(a,b)[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
3维张量数据立体 [[[1, 2, 3], [1, 2, 3], [1, 2, 3]]]
4维张量通道 [[[[1, 2, 3], [1, 2, 3], [1, 2, 3]]]]

     从示例中,我们不难发现,随着张量维度的增加,能表示的数据形状就越丰富,数据的表示含义也各不相同。那我们就来介绍对于不同维度的张量,其具体的内涵有何不同。

  • 对于0阶张量,只有大小。A,B,C表示单一的特征值
  • 对于1阶张量,既有大小也有方向。[A, B, C]表示有一个样本,里面含有3个特征
  • 对于2阶张量,数据表。[[A, B, C], [D, E, F], [G, H, I]]表示有3个样本,每个样本分别有3个特征
  • 对于3阶张量,时间序列。[[[A, B, C], [D, E, F], [G, H, I]]]特征随时间同步更新
  • 对于4阶张量,通道。特征和样本随时间同步更新。

 

张量的创建

 

tf.constant(value,tf.float32) 

  • value可以是以上的各个维度的张量,如1, [1], [[1]]
t = tf.constant(1, tf.float32)
t = tf.constant([1,2,3], tf.float32)
t = tf.constant([[1, 2, 3],[1, 2, 3],[1,2,3], tf.float32)

tf.zeros(shape, tf.float32)

  • shape为数据的维度。比如[]表示标量,[a]表示a行,[a, b]表示a行b列
tf.zeros([])   # tf.Tensor(0.0, shape=(), dtype=float32)
tf.zeros([1])   # tf.Tensor([0.], shape=(1,), dtype=float32)
tf.zeros([1,2])   # tf.Tensor([[0. 0.]], shape=(1, 2), dtype=float32)

tf.ones(shape, tf.float32)

  • shape为数据的维度。比如[]表示标量,[a]表示a行,[a, b]表示a行b列
tf.ones([])   # tf.Tensor(1.0, shape=(), dtype=float32)
tf.ones([1])   # tf.Tensor([1.], shape=(1,), dtype=float32)
tf.ones([1,2])   # tf.Tensor([[1. 1.]], shape=(1, 2), dtype=float32)

tf.fill(shape, value)

tf.fill([2,3],4)
# tf.Tensor(
# [[4 4 4]
# [4 4 4]], shape=(2, 3), dtype=int32)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码爱撞墙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值