您的位置:首页 > 编程语言 > Python开发

TensorFlow入门--基本概念的理解

2017-06-25 16:20 295 查看
TensorFlow 人工智能引擎 入门教程之一 基本概念以及理解
摘要: 首先先介绍一些TensorFlow这个框架 ,他是谷歌开源的第二代人工智能引擎,现在已经支持分布式训练,重要的是它兼容Caffe 训练的模型 ,可以相互转化 ,支持移动平台 等各种环境,使用方便快捷,特别是创建DNN CNN LSTM 很快 很方便。学习之前希望大家对python 语法有比较好的了解,这一章节 只讲一下 他的基本概念。
首先大家看2 张图片 在0.8版本时候已经支持分布式了 ,所以未来的发展 方面 人工智能的趋势 不可挡,而且个人也是非常喜欢caffe 以及 tensorFlow 的我创业 用的就用到了它。下面我们来讲一下 学习tensorFlow要了解的基础知识。首先安装方面 很简单
ubuntu 下  pip install 这里 知识安装普通的0.5版本,如果需要最新版 看github上最新的0.8版本
安装好了 就可以开始使用了首先 1.tensorflow = tensor + flow = ndarray + dag图(网络)也就是说 通过 每一个 有向图 dag 把每一步操作op 连接起来 传递 输入 输出都是一个nd array 多维数组(numpy) 然后在tensorFlow的回话中进行计算操作, 1.占位符
x = tf.placeholder(tf.float32, [None, 10])
y = tf.placeholder("float")
z = tf.placeholder(tf.int32)
占位符表示当OP 操作进行时候传递进来的过程,,也就是 feed 喂养 给予操作,所以 需要外部传递过来,比如训练图像时候X 为图像数据 Y为图像标签,这样的时候 X Y 都是来自训练测试数据,所以前面需要定义2个用来传递的占位符来传递X Yfeed 需要传递 python中的 tuple元祖 feed_dict={x: xdata, y: ydata} ,当执行op操作时候 feed传入替换 ,执行完后销毁这里上面 第二个参数 shape 表示约束维度 比如 shape=(1024,1024) 就是约束为1024 行 1024列的二维数组如果shape=(None,1024) None 是python中的空值 ,表示 可以任何维度行的 1024列的二维数组 2.变量 在tensorFlow 一些随时用来计算 变化 操作 共享的量, 我们知道OP 操作 在python传递的是ndarray多维数组 C++中就是tensorFlow的tensor类,多维数组在tensorFlow表示就是变量
w = tf.Variable(0.0, name="weights")
b=  tf.Variable (tf.zeros([100]),name="bias")
Variable第一个参数 表示 初始化的值 ,比如w 初始化为0 这样 w 在后面的过程中会一直变化,下次可能获取w时候是w=xxx 某个值,在tensorFlow中这种 可以通过fetch 也就是当需要获得 传递 某个最新的w 时候 可以 session.run([w]) ,这时候 传递的w 就是每次最新变化的最新的w 如果有时候需要常量 使用
k = tf.constant(3.0) #表示定义一个值为3.0的常量
3.Session 回话 TensorFlow 通过回话 进行 连接 操作 执行所有的op(操作)形成一个有向图,进行执行运行 图计算 graph compute 每一个回话 的 只要有变量存在的情况 网络图 第一个bottom都是 initop 也就是初始化变量
init = tf.initialize_all_variables()
with tf.Session() as session:
session.run(init)#1.第一个图的节点op
session.run(googlenet)#2.第二个图的节点op 1-2-n
sess.close()#释放资源
类似于ipython一样 有交互式 的

InteractiveSession交互式回话session

sess = tf.InteractiveSession()
TensorFlow = tensor (多维数组) + flow (graph 图 op) session回话上下文管理 variable == tensor(多维数据变量)placeholder == 外部传入的参数变量下面看看官方文档上的一个例子这里numpy 其实 tensor 二维数组就是numpy中的ndarrarytf.random_uniform 可以见api手册 就是随机的生成均匀分布的 一些-1 1 之间的shape 为1 2的二维数组
GradientDescentOptimizer 表示训练时候使用梯度下降来优化 ,还有很多优化策略。
 这一章都是基础概念 。后面 可能 要去工作了,时间不是那么有空,周末 可能 有空才会更新 ,后面章节我们来使用 tensorFow 来定一个 深度学习网络DNN 以及 卷积神经网络CNN .我创业 就到了TensorFlow  所以放心 tensorFlow 我还是比较了解的至少可以熟练使用吧,也许很多地方有些不足,请见谅 下面我们使用运行 测试 看看。这里 提一下 就是因为上面有中文,所以在前面加上coding 让他utf-8 这是python基础知识a85b运行结果
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息