初学TensorFlow的一些体会

以下是看了tensorflow官网的一些体会,欢迎各位大神来diss害羞


TensorFlow的终端是基于C++,所以基于TensorFlow的代码类似于描述文件,所以最核心的两个内容就是
  • Graph:因为TensorFlow的高性能计算都在python之外,所以TensorFlow与python之间进行频繁的交互造成了额外的开销,所以其主要的内容就是external computation graph的定义,静态图包括一系列节点的定义,主要有tensor和operation
  • 常用的是default graph:
    tf.get_default_graph()
    让一个新建的graph g作为default,管理内容,不然所有的节点都会在一个全局默认的graph下
    g=tf.Graph()
    with g as default()
  • Session:与终端进行连接,压缩环境,使operation objects得到执行,如不设置参数,default graph会被加载


数据的操作
  • 按理说,静态图定义好之后,里面的数据都是确定了的,如tf.constant,但是tf.placeholder可以用来接收外部变量
    x=tf.placeholder(tf.float32,shape=[none ,784])
    在运行的时候接收多种输入
  • 在机器学习中,通常将参数设置成variable,variable是graph总的value,可以用来动态的调整graph的参数,进行交互操作,使用前,其值需要初始化,
    w=tf.variable([.3],dtype=float32)
    init=tf.gloable_variables_initilizer()
    sess.run(init)

  • 定义好损失函数之后,可以使用TensorFlow的内建函数进行目标函数的优化,在graph上进行梯度、step的计算,以及参数的更新,这其实是相当于在graph上增加了新的操作,所以参数要设置成variable
  • 数据输入的shape是:
    x_image=tf.reshape(x,[-1,28,28,3])
    是batchsize*w*h*channel的形式

猜你喜欢

转载自blog.csdn.net/lxx516/article/details/78899214