zoukankan      html  css  js  c++  java
  • tensorflow 学习笔记

    computational graph(用于计算的图)是一系列排列在graph的节点上的TensorFlow操作单元。让我们来构建一个简单的computational graph。每个节点接受0个或多个tensor作为输入,并且产生一个tensor作为输出。session(会话) 封装了TensorFlow运行时的控件和状态

    import tensorflow as tf
    node1=tf.constant(3.0,tf.float32)
    node2=tf.constant(4.0) #also a float32

    常量类型是节点的一种类型。正如所有的TensorFlow常量一样,它是不接收输入的,并且输出一个它内部存储的值

    sess=tf.Session()
    print(sess.run(node1),sess.run(node2))

    结果:3.0 4.0

    #node3=tf.add(node1,node2)
    node3=node1+node2
    print(sess.run(node3))

    结果;7.0

    graph可以被参数化,并且通过placeholders(占位符)来接受外部的输入。

    a=tf.placeholder(tf.float32)
    b=tf.placeholder(tf.float32)
    add_node=a+b

    print(sess.run(add_node,{a:1,b:3}))
    print(sess.run(add_node,{a:[1,2],b:[3,4]}))

    结果:

    4.0
    [ 4.  6.]

    计算(a+b)*3

    add_and_triple=add_node*3
    print(sess.run(add_and_triple,{a:1,b:3}))

    结果:12.0


    W=tf.Variable([.3],tf.float32)
    b=tf.Variable([-.3],tf.float32)
    x=tf.placeholder(tf.float32)
    a=W*x+b

    当调用tf.constant时,常量被初始化,它们的值永远不会改变。相比之下,变量tf.Variable在调用时不会被初始化。要初始化TensorFlow程序中的所有变量,必须显式调用特殊的初始化操作,如下所示:

    init=tf.global_variables_initializer()
    sess.run(init)

    在这里,直到我们调用sess.run之前,变量是未初始化的。(真正把0.3和-0.3赋给W和b)


    损失函数

    a - y创建一个向量,其中每个元素是相应的样本的误差增量。我们称之为平方。然后,我们使用tf.reduce_sum将所有平方误差求和,以创建一个单一的标量,用于提取出表示所有样本的总误差值:

    y=tf.placeholder(tf.float32)
    loss=tf.reduce_mean(tf.square(y-a))
    print(sess.run(loss,{x:[1,2,3,4],y:[0.1,0.3,0.5,0.8]}))

    优化器Optimizer

    optimizer=tf.train.GradientDescentOptimizer(0.01)  #使用梯度下降法进行优化,学习率为0.01
    train=optimizer.minimize(loss)   #优化目标;最小化loss(损失函数)

    可以通过手动的将Wb的值重新赋值为-11的方式来提高我们的算法的效果。变量可以初始化后将数据提供给tf.Variable对象,也可以使用像tf.assign这样的操作来更改。

    fixW=tf.assign(W,[-1.])
    fixb=tf.assign(b,[1.])
    sess.run([fixW,fixb])
    print(sess.run(linear_sum,{x:[1,2,3,4],y:[.1,.3,.5,.8]}))

  • 相关阅读:
    必读:Spark与kafka010整合
    6 个开源的家庭自己主动化工具 | Linux 中国
    承上 DBlink 与 SCN | 新增视图找出外部 SCN 跳变
    NetBeans使用Consolas中文乱码的解决
    IDEA community + Gradle + Gretty 调试 servlet 应用 + war包部署到tomcat
    解决ubuntu下IntelliJ IDEA无法锁定到启动器的问题
    virtualbox安装android6.0并设置分辨率为1920x1080x32
    Ubuntu安装Sqlite报错:No module named 'ConfigParser'
    Linux常用指令笔记
    解决Warning Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/8303996.html
Copyright © 2011-2022 走看看