TensorFlow——tensorflow编程基础

0.tensorflow中的模型运行基础

tensorflow的运行机制属于定义和运行相分离,在操作层面可以抽象成两种:模型构建和模型运行。

在模型构建中的常见概念:

  张量(tensor):数据,即某一类型的多为数组

  变量(Variable):常用于定义模型中的参数,是通过不断训练得到的值

  占位符(placeholder):输入变量的载体,也可以理解成模型的参数

  图中的节点操作(operation,op):即一个op获得0个或多个tensor,执行得到,输出得到的tensor

计算图代表一个计算任务,在模型运行的环节中,图会在会话中被启动,session将图中的op分发到CPU或GPU子类的设备上,同时提供执行op的方。这些方法执行后,将产生tensor返回,在python中返回的是numpy的ndarray对象,在C/C++中返回的tensor是TensorFlow::Tensor实例

session与图交互过程中还定义了下面两种数据流向机制:

  注入机制(feed):通过占位符模型传入数据

  取回机制(fetch):从模型中得到结果

import tensorflow as tf

hello = tf.constant('hello world')
sess = tf.Session()
print(sess.run(hello))
sess.close()

建立session,在session中输出hello,world,通过run方法得到hello的值,下面使用with session的作用

# /usr/bin/python
# -*- encoding:utf-8 -*-

import tensorflow as tf
import numpy as np

a = tf.constant(4)
b = tf.constant(2)

with tf.Session() as sess:
    print("相加: a + b ", sess.run(a+b))
    print("相乘: a * b ", sess.run(a*b))

with session的用法是最常见的,它使用python中的with语法,即当程序结束时,会自动关闭session,不需要写close。

下面演示注入机制,使用注入机制,将具体的实参注入到相应的placeholder中。feed只在调用的方法内有效,方法结束后feed就会自动消失。

import tensorflow as tf
import numpy as np

a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
mul = tf.multiply(a, b)

with tf.Session() as sess:
    print("相加: ", sess.run(add, feed_dict={a:3, b:2}))
    print("相乘: ", sess.run(mul, feed_dict={a:4, b:6}))

构建session的其他方法

交互式的session方式

通常是在交互的环境下使用,具体的用法和with session类似,代码如下:

sess = tf.InteractiveSession()

Supervisor方式:这种方法可能会更高级些,使用的时候也更加的复杂,可以自动的管理session中的具体任务,比如,载入/载出检查点文件,写入tensorboard等,另外该方式还支持分布式的训练任务部署。

 

posted @ 2019-05-25 22:17  Baby-Lily  阅读(982)  评论(0编辑  收藏  举报