当前位置 主页 > 网站技术 > 代码类 >

    TensorFlow基本的常量、变量和运算操作详解

    栏目:代码类 时间:2020-02-04 06:04

    简介

    深度学习需要熟悉使用一个框架,本人选择了TensorFlow,一边学习一边做项目,下面简要介绍TensorFlow中的基本常量、变量和运算操作,参考斯坦福大学的cs20si和TensorFlow官网API。

    常量

    tf.constant()

    tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False),value为值,dtype类型,shape为张量形状,name名称、verify_shape默认False,这些项可选。作用创建一个常量。

    a = tf.constant(2, name="a") # print(a) = 2
    b = tf.constant(2.0, dtype=tf.float32, shape=[2,2], name="b") # 2x2矩阵,值为2
    c = tf.constant([[1, 2], [3, 4]], name="c") # 2x2矩阵,值1,2,3,4

    tf.zeros()和tf.zeros_like()

    tf.zeros(shape, dtype=tf.float32, name=None), shape为张量形状,dtype类型,name名称。创建一个值为0的常量。

    a = tf.zeros(shape=[2, 3], dtype=tf.int32, name='a') # 2x3矩阵,值为0, a = [[0, 0, 0], [0, 0, 0]]

    tf.zeros_like(input_tensor, dtype=None, name=None, optimize=True),input_tensor为张量,dtype类型,name名称,optimize优化。根据输入张量创建一个值为0的张量,形状和输入张量相同。

    input_tensor = tf.constant([[1,2], [3,4], [5,6])
    a = tf.zeros_like(input_tensor) # a = [[0, 0], [0, 0], [0, 0]]

    tf.ones()和tf.ones_like()

    tf.ones(shape, dtype=tf.float32, name=None),与tf.zeros()类似。

    tf.ones_like(input_tensor, dtype=None, name=None, optimize=True),与tf.zeros_like()类似。

    tf.fill()

    tf.fill(dims, value, name=None), dims为张量形状,同上述shape,vlaue值,name名称。作用是产生一个张量,用一个具体值充满张量。

    a = tf.fill([2,3], 8) # 2x3矩阵,值为8

    tf.linspace()

    tf.linspace(start, stop, num, name=None),start初始值,stop结束值,num数量,name名称。作用是产生一个等差数列一维向量,个数是num,初始值start、结束值stop。

    a = tf.linspace(10.0, 13.0, 4) # a = [10.0 11.0 12.0 13.0]

    tf.range()

    tf.range(start=0, limit=None, delta=1, dtype=None, name='range'),start初始值,limit限制,delta增量,dtype类型,name名称。作用是产生一个等差数列的一维向量,初始值start,公差delta,结束值小于limit。

    a = tf.range(start, limit, delta) # a = [3, 6, 9, 12, 15]
    b = tf.range(5) # b = [0, 1, 2, 3, 4]

    tf.random_normal()

    tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None), shape张量形状,mean均值,stddev标准差,dtype类型,seed随机种子,name名称。作用是产生一个正太分布分布,均值为mean,标准差为stddev。

    tf.truncated_normal()

    tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None,name=None),shape张量形状,mean均值,stddev标准差,dtype类型,seed随机种子,name名称。作用是产生一个截断的正太分布,形状为shape,均值为mean,标准差为stddev。

    tf.random_uniform()

    tf.random_uniform(shape, minval=0, maxval=None, dtype=tf.float32, seed=None,name=None),shape张量形状,minval最小值,maxval最大值,dtype类型,seed随机种子,name名称。作用是产生一个均匀分布,形状为shape,最小值为minval,最大值为maxval。