TensorFlow中的常量op

    在TensorFlow中创建常量其实很简单。下面我们就来简单了解一下,TensorFlow中关于常量op都有哪些操作。

    声明一个普通的常量op的基本语句是:

tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False)
# 创建一个1维的tensor
a = tf.constant([2, 2], name="vector")
# 创建一个2*2的tensor
b = tf.constant([[0, 1], [2, 3]], name="matrix")

你也可以创建一个特定维度的tensor,像Numpy库里的函数一样,你可以使用特定的值填充进你创建的tensor。

tf.zeros(shape, dtype=tf.float32, name=None)
# 创建一个2*3的tensor,令其值为0
tf.zeros([2, 3], tf.int32) ==> [[0, 0, 0], [0, 0, 0]]
tf.zeros_like(input_tensor, dtype=None, name=None, optimize=True)
# 创建一个形如input_tensor的tensor但是值都为0
# input_tensor [[0, 1], [2, 3], [4, 5]]
tf.zeros_like(input_tensor) ==> [[0, 0], [0, 0], [0, 0]]
tf.ones(shape, dtype=tf.float32, name=None)
# 创建一个2*3的tensor令其值都为1
tf.ones([2, 3], tf.int32) ==> [[1, 1, 1], [1, 1, 1]]
tf.ones_like(input_tensor, dtype=None, name=None, optimize=True)
# 创建一个形如input_tensor的tensor(大小和数据类型相同)但其值均为1
# input_tensor is [[0, 1], [2, 3], [4, 5]]
tf.ones_like(input_tensor) ==> [[1, 1], [1, 1], [1, 1]]
tf.fill(dims, value, name=None) 
# 创建一个tensor用指定值填充
tf.fill([2, 3], 8) ==> [[8, 8, 8], [8, 8, 8]]

你也可以创建一个常量op其值为一个序列。

tf.lin_space(start, stop, num, name=None)
#创建一个数值序列,其中元素与元素的差值是均匀的。如果num>1则在创建元素时每次增加(stop - start)/(num - 1)直至元素的值与stop相等。
tf.lin_space(10.0, 13.0, 4, name="linspace") ==> [10.0 11.0 12.0 13.0]
tf.range([start], limit=None, delta=1, dtype=None, name='range')
# 创建一个数值序列,从start处开始,然后依次增加delta,直数值超过limit但是序列中不包含limit
# 与Python中的range略有不同
# 'start' is 3, 'limit' is 18, 'delta' is 3
tf.range(start, limit, delta) ==> [3, 6, 9, 12, 15]
# 'start' is 3, 'limit' is 1,  'delta' is -0.5
tf.range(start, limit, delta) ==> [3, 2.5, 2, 1.5]
# 'limit' is 5
tf.range(limit) ==> [0, 1, 2, 3, 4]

需要说明的是,不像Python和Numpy中的序列,TensorFlow中的序列对象是不可以迭代的。

for _ in np.linspace(0, 10, 4): # OK
for _ in tf.linspace(0.0, 10.0, 4): # TypeError: 'Tensor' object is not iterable.

for _ in range(4): # OK
for _ in tf.range(4): # TypeError: 'Tensor' object is not iterable.

你也可以从某种概率分布中随机生成一些常量op,详情请见更多常量op介绍

tf.random_normal
tf.truncated_normal
tf.random_uniform
tf.random_shuffle
tf.random_crop
tf.multinomial
tf.random_gamma
tf.set_random_seed

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值