美文网首页
02-深度学习基础知识

02-深度学习基础知识

作者: 洛八斗 | 来源:发表于2020-02-05 23:19 被阅读0次

    在TensorFlow中,tensor是一个类,也是存储和变换数据的主要工具。 如果你之前用过NumPy,你会发现tensor和NumPy的多维数组非常类似。 然而,tensor提供GPU计算和自动求梯度等更多功能,这些使tensor更加适合深度学习。

    1 TensorFlow基本功能

    首先用arange创建一个行向量


    创建一个行向量.png

    关于constan函数在TensorFlow中表示张量。


    constan函数.png

    张量
    多维数组可以被称之为张量,和numpy中的数组一样,张量也有类型和形状。在tensorflow 的python API中,可以用numpy中的ndarrays来表示。 通常用来保存浮点数据,也可以用来存储字符串(任意字节的数组)。
    第一个值value是必须的,可以是一个数值,也可以是一个列表。

    后面四个参数可写可不写,第二个参数表示数据类型,一般可以是tf.float32, tf.float64等:

    第三个参数表示张量的“形状”,即维数以及每一维的大小。如果指定了第三个参数,当第一个参数value是数字时,张量的所有元素都会用该数字填充:

    第四个参数name可以是任何内容,主要是字符串就行。

    第五个参数verify_shape默认为False,如果修改为True的话表示检查value的形状与shape是否相符,如果不符会报错。

    具体可以看这个TensorFlow创建常量(tf.constant)详解

    #<tf.Tensor: id=0, shape=(12,), dtype=int32, numpy=array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])>
    x
    #TensorShape([12])
    x.shape #shape属性来获取tensor实例的形状
    #12
    len(x)  #我们也能够通过len得到tensor实例中元素(element)的总数。
    
    reshape.png

    上面x.reshape((3, 4))也可写成x.reshape((-1, 4))或x.reshape((3, -1))。由于x的元素个数是已知的,这里的-1是能够通过元素个数和其他维度的大小推断出来的。
    我们创建一个各元素为0,形状为(2, 3, 4)的张量。实际上,之前创建的向量和矩阵都是特殊的张量。

    创建各元素为1的张量


    各元素为1的张量.png

    我们也可以通过Python的列表(list)指定需要创建的tensor中每个元素的值。有些情况下,我们需要随机生成tensor中每个元素的值。下面我们创建一个形状为(3, 4)的tensor。它的每个元素都随机采样于均值为0、标准差为1的正态分布。


    image.png

    2 广播机制

    两个形状相同的tensor做按元素运算。当对两个形状不同的tensor按元素运算时,可能会触发广播(broadcasting)机制:先适当复制元素使这两个tensor形状相同后再按元素运算。


    广播机制.png

    由于A和B分别是3行1列和1行2列的矩阵,如果要计算A + B,那么A中第一列的3个元素被广播(复制)到了第二列,而B中第一行的2个元素被广播(复制)到了第二行和第三行。


    image.png

    3 索引

    在tensor中,索引(index)代表了元素的位置。tensor的索引从0开始逐一递增

    我们指定了tensor的行索引截取范围[1:3]。依据左闭右开指定范围的惯例,它截取了矩阵X中行索引为1和2的两行。

    tf.assign()的作用类似于python操作符中的=理解为tensorflow中为操作符进行赋值操作。


    索引.png

    4 tensor 和 NumPy 相互变换

    我们可以通过array函数和asnumpy函数令数据在NDArray和NumPy格式之间相互变换。下面将NumPy实例变换成tensor实例。


    ensor 和 NumPy 相互变换.png

    相关文章

      网友评论

          本文标题:02-深度学习基础知识

          本文链接:https://www.haomeiwen.com/subject/uywexhtx.html