zoukankan      html  css  js  c++  java
  • Tensor总结

    Tensor 在TF中用来存储数据,有点像Spark 中的RDD,用来表示一个集合,里面可能在计算后才有数据,它是TF中常用的数据结构,作为网络层的输入和输出。

    把python中的数据变成一个Tensor:

    import tensorflow as tf
    print(tf.constant([[1,1], [2,2]]))
    

    输出:

    tf.Tensor(
    [[1 1]
     [2 2]], shape=(2, 2), dtype=int32)
    

    生成服从正态分布的随机数:

    tensor_random = tf.random.truncated_normal(shape=[4, 3], mean=0, stddev=1)
    print(tensor_random)
    

    输出:

    tf.Tensor(
    [[-0.6169643  -0.48704767  0.64570683]
     [ 0.854015   -0.07537854  1.2956442 ]
     [ 1.3869987  -0.12490827  0.5543784 ]
     [-1.2535942   0.82831544 -1.324502  ]], shape=(4, 3), dtype=float32)
    

    还有一类型变量tf.Variable,可以通过Tensor构造:

    var1 = tf.Variable(tensor_random, name='var1')
    print(var1)
    

    输出:

    <tf.Variable 'var1:0' shape=(4, 3) dtype=float32, numpy=
    array([[-0.6169643 , -0.48704767,  0.64570683],
           [ 0.854015  , -0.07537854,  1.2956442 ],
           [ 1.3869987 , -0.12490827,  0.5543784 ],
           [-1.2535942 ,  0.82831544, -1.324502  ]], dtype=float32)>
    

    在tf1中使用变量前需要先初始化:

    sess = tf.Session()
    sess.run(tf.global_variables_initializer())  # 初始化
    print(sess.run(var1))
    

    表示稀疏矩阵使用tf.SparseTensor,有3个参数来描述稀疏矩阵:

    • indices 描述有值的位置的下标
    • values 描述各个有值位置的值
    • dense_shape 形状

    例如定一个2行32列,在第一行的第二列和第二行的第一列有值,分别是1,2:

    sparse_tensor = tf.SparseTensor(indices=[[0, 1], [1, 0]], values=[1, 2], dense_shape=[2, 32])
    print(tf.sparse.to_dense(sparse_tensor))  # 稀疏矩阵转换稠密矩阵
    

    输出:

    tf.Tensor(
    [[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
     [2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]], shape=(2, 32), dtype=int32)
    

    还有方法tf.sparse.from_dense把稠密矩阵转换为稀疏矩阵。

  • 相关阅读:
    Selenium实战(七)——自动发送邮件
    Selenium实战(六)——数据驱动应用
    Selenium实战(四)——unittest单元测试3(测试用例的执行顺序)
    Selenium实战(四)——unittest单元测试2(断言方法+discover()多测试用例的执行)
    运维工具
    实用的shell脚本面试题和答案
    mssql2000 数据库一致性错误修复
    c#基础
    任务表 步骤表
    BPM事件
  • 原文地址:https://www.cnblogs.com/oaks/p/14043837.html
Copyright © 2011-2022 走看看