Tensorflow常量运算符

tensorflow生成数据的方式

Tensorflow 提供的可以生成固定常量的运算符

  • tf.zeros(shape, dtype=tf.float32,name=None)

    创建一个指定shape的全部为0的的tensor

  • tf.zeros_like(tensor, dtype=None, name=None, optimize=True)

    给定一个tensor,返回一个全部都是0的shape与输入tensor一样的tensor,如果optimize为True,则attempt to statically determine the shape of ‘tensor’ and encode it as a constant.

  • tf.ones

    和tf.zeros差不多,只不过是把0变成了1

  • tf.ones_like

    和tf.zeros_like差不多,只不过把0变成了1

  • tf.fill(dim, value, name=None)

    tf.fill([3], 3),dim是一个list,value是一个值,返回一个指定dim的shape的,里面全是指定value的tensor

  • tf.constant(value, dtype=None, shape=None, name=”Const”, verify_shape=False)

    value是传入的值,可以使一个值也可以是一个list,如果value是一个list,那么list的长度不能长于shape中规定的长度(长了就会报错),如果比shape中指定的长度短,那么就用list中最后一个元素填充剩下的长度;如果shape没有指定,那么就用value中的shape;如果dtype没有指定的话,就用value中的type;verify_shpe是指是否检查shpae,如果输入和要求的shape不一样,就会报错。

  • tf.linspace(start, stop, num, name=None)

    返回以start开始,以stop结束,一共有num个数的等差数列的tensor,所以当num>1时,步长为:(stop-start)/(num-1),如果num=1,那么就只有start

  • tf.range(start, limit=None, delta=1, dtype=None, name=”range”)

    返回一个tensor:从start开始,以delta为步长,到limit为止,但不包括limit。如果start>limit则报错

TensorFlow提供可以生成随机常量的运算符:

  • tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=dtypes.float32, seed=None, name=None)

    返回一个形如shape的元素是随机出来的tensor,其中的元素服从正态分布,seed是一个int值,如果两次seed设置一样,则结果一样

  • tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=dtypes.float32, seed=None, name=None)

    返回一个形如shape的元素是随机出来的tensor,其中的元素服从正态分布,seed是一个int值,如果两次seed设置一样,则结果一样。但重点是,这个函数是一个截断的生成正态分布的函数,如果生成的某个值与均值的差大于两倍的标准差的话,就这个值就会重新随机。

  • tf.random_uniform(shape, minval=0, maxval=None, dtype=dtype.float32, seed=None, name=None)

    返回一个形如shape的元素是随机出来的tensor,其中的元素服从最小值为minval,最大值为maxval的均匀分布。如果dtype为float,则maxval的默认值为1,如果dtype是其他的话,你就需要指定maxval了,否则就报错了。

  • tf.random_shuffle(value, seed=None, name=None)

    返回一个value(list)洗牌后的tensor,洗牌以第一维为基础,就是第一维会打乱,里面的不受影响。

  • tf.random_crop(value, size, seed=None, name=None)

    value是一个list,crop是收割裁剪的意思,就是把value随机的裁剪成size的样子。需要value.shpae>size。如:value=[1,2,3,4],size=[1](size也要是数组),那么结果就是[1(随机)]。注意size的维度要与value相同,如:value=[[1,2],[3,4]],size也需要是[x,x]。

  • tf.multinomial(logits, num_samples, seed=None, name=None, output_dtype=None)

    从多项式分布中采样。具体一点说:logits是一个2-D的tensor,shape为[batch_size, class_nums],而num_samples的意思是,从每行里面sample出几个元素,sample出来的并不是那个元素的值,而是那个元素的序列号。

  • tf.random_gramma(shape, alpha, beta=None, dtype=dtypes.float32, seed=None, name=None)

    返回一个形如shape的tensor,其中的元素服从伽马分布(随机变量X为等到第alpha件事情发生所需等待时间,即为多个独立且相同分布(iid)的指数分布变量的和的分布。)shape是一个1D的tensor或者一个list;alpha:N-D的array,也是shape参数;beta:N-D的array,grammar分布的逆比例尺度参数。tf.random_gamma([10], [0.5, 1.5])->shape为:[10, 2], tf.random_gamma([7, 5], [0.5, 1.5])->shape为[7,5,2],tf.random_gamma([30], [[1.],[3.],[5.]], beta=[[3., 4.]])->shape为[30, 3, 2]。

  • tf.random_poisson(lam, shape, dtype=dtype.float32, seed=None, name=None)

    返回一个泊松分布随机tensor,lam是泊松分布的参数,可以使一个tensor或者是N-Darray。tf.random_poisson([0.5, 1.5], [10])的shape为[10, 2],其中[:, 0]服从lambda为0.5的泊松分布,[:, 1]服从lambda为1.5的泊松分布。

  • tf.parameterized_truncated_normal(shape, means=0.0, stddevs=1.0,
    minvals=-2.0, maxvals=2.0, dtype=dtypes.float32, seed=None,name=None)

    能够指定最大值和最小值的truncated_normal

个人学习之作,如有错误,请批评指正

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值