Tenflow基础教程15天。。。Recipe 2。。。创建Tensor

Tensor是Tensorflow中使用在计算图中的最基本的数据单位,我们可以声明Tensor为variable,或者为Tensor提供placeholer。但首先我们必须知道如何创建Tensor。

准备工作

当我们创建Tensor并定义其为Variable时,Tensorflow就计算图中创建了相应图形结构。需要指出的一点是,我们创建了Tensor,并不意味着已经将其传入计算图。在将Tensor定义为Variable之后,Tensorflow才会将其传入计算图。

如何操作

我们将在这介绍创建Tensor的主要方法。

  1. 常量Tensor
    用‘zero’填充Tensor
    zero_tsr = tf.zeros([row_dim, col_dim])
    用‘one’填充Tensor
    ones_tsr = tf.ones([row_dim, col_dim])
    使用现有常数创建Tensor
    constant_tsr = tf.constant([1,2,3])

  2. 映射Tensor
    我们也可以映射其他Tensor来创建新的Tensor。
    zeros_similar = tf.zeros_like(constant_tsr)
    ones_similar = tf.ones_like(constant_tsr)
    注意:通过这种方法创建的Tensor,要首先初始化原Tensor,如果同时初始化系统会报错。

  3. 序列Tensor
    Tensorflow允许我们定义数组Tensor。通过类似于range()或者np.linespace的操作,来定义Tensor,例如:
    linear_tsr = tf.linspace(start=0, stop=1, start=3)
    输出是:
    数组 [0.0, 0.5, 1.0].
    这个函数的输出是包含两头的定义值得

    与之相区别的是:
    integer_seq_tsr = tf.range(start=6, limit=15, delta=3)
    输出是:
    数组[6, 9, 12].
    这个函数的输出是不包含两头的定义值得

  4. 随机Tensor
    以下生成的随机数组是均匀分布的:
    randunif_tsr = tf.random_uniform([row_dim, col_dim],minval=0, maxval=1)
    请注意这种随机的均匀分布数组,包含minval,但不包含maxval。(mival<=x<maxval)

    生成正态分布的随机数组:
    randnorm_tsr = tf.random_normal([row_dim, col_dim],
    mean=0.0, stddev=1.0)

    有时我们希望生成一些在一定范围内正态分布的数组。truncated_normal()函数可以包含标准差和平均值。
    runcnorm_tsr = tf.truncated_normal([row_dim, col_dim],
    mean=0.0, stddev=1.0)

    也许我们会对洗牌数组感兴趣。可以通过random_shuffle()和random_crop()这个两个函数来完成。
    shuffled_output = tf.random_shuffle(input_tensor)
    cropped_output = tf.random_crop(input_tensor, crop_size)

    后面我们会对3通道彩色图片进行随机裁剪,生成固定大小的图片,可以使用cropped_output()函数,并给出图片的最大尺寸值。
    cropped_image = tf.random_crop(my_image, [height/2, width/2, 3])

如何工作

一旦我们决定如何创建Tensor,接下来我们可以使用Variable()函数来创建对应的variables, 并将创建的Tensor包含其中。
my_var = tf.Variable(tf.zeros([row_dim, col_dim]))

此外。。。。。。

我们不受限于使用内置函数。我还可以将numpy array、python list以及常数转换成Tensor,通过使用conver_to_tensor()函数。另外这个函数也可以接受将tensor作为输入。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值