zoukankan      html  css  js  c++  java
  • tf矩阵基础

    一、Placeholder

    Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。我们知道,很多python程序的底层为C语言或者其他语言,执行一行脚本,就要切换一次,是有成本的,tensorflow通过计算流图的方式,帮你优化整个session需要执行的代码,还是很有优势的。

           所以placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。

    import tensorflow as tf
    data1 = tf.placeholder(tf.float32)    #placeholder占位符
    data2 = tf.placeholder(tf.float32)
    dataAdd = tf.add(data1,data2)
    with tf.Session() as sess:
    print(sess.run(dataAdd,feed_dict={data1:6,data2:2}))    #feed_dict赋值/参数

    输出:8.0

    二、矩阵运算
    矩阵相乘分为两种:1是正常的矩阵相乘,要求第一个矩阵的列和第二个矩阵的行相等。2是两个矩阵对应位置的数相乘,类似于加法,只是将+变成了*
    import tensorflow as tf
    data1 = tf.constant([[1,2]])
    data2 = tf.constant([[2],
    [2]])
    with tf.Session() as sess:
    dataAdd = tf.add(data1,data2)
    datamul = tf.multiply(data1,data2)#矩阵1/2对应位置的数相乘
    datamat = tf.matmul(data1,data2)#矩阵1*2
    print(sess.run([dataAdd,datamul,datamat]))


    输出:

    三、初始化矩阵

    mat0 = tf.zeros([2,3])    #创建值全为0的两行三列矩阵
    mat1 = tf.ones([2,3])    #创建值全为1的两行三列矩阵  
    mat2 = tf.fill([2,3],8)    #创建值全为8的两行三列矩阵
    mat3 = tf.zeros_like(mat1)    #将矩阵mat1的值全部变成0
    mat4 = tf.random_uniform([2,3],-2,1)    #创建值是-2到1之间的随机数的两行三列矩阵
  • 相关阅读:
    《将博客搬至CSDN》
    关于数据分析师出路的思考
    什么样的人适合学金融工程?
    再谈到计算机网络的学习
    学习金融工程的随笔
    走上量化投资道路的回顾
    idea构建docker镜像并发布到服务器
    Elastic:菜鸟上手指南
    分布式事务专题
    mysql 慢查询日志分析与使用
  • 原文地址:https://www.cnblogs.com/cxxBoo/p/11443737.html
Copyright © 2011-2022 走看看