发布于2019-08-20 15:01 阅读(1112) 评论(0) 点赞(18) 收藏(3)
目录
from __future__ import print_function
本部分所有代码,皆来自于GitHub超过3300星的tensorflow教程:
https://github.com/machinelearningmindset/TensorFlow-Course
我借用代码,来记录用到的tensorflow里面包含的函数。
首先是导入需要的必要的库:
- from __future__ import print_function
- import tensorflow as tf
- import os
如果某个python版本中出现了某个新的功能特性,而且这个特性和当前版本中使用的不兼容,也就是说,它在该python版本中不是语言标准,那么我如果想要使用的话就需要从future模块导入。剩下的两个就没啥可说的了导入tensorflow和os(os库是Python标准库,包含几百个函数,常用路径操作、进程管理、环境参数等几类)两个库。
接着用os导入一个库。
功能:将path里包含的文件名去掉,只返回对应的路径。
返回当前所在文件(就是指当前程序的.py文件)的绝对路径(包括文件名)
这里就是将当前.py文件所在的路径给提取出来再添加上在相同路径下的logs文件夹,就可以自动访问logs文件夹下的文件了。
log_dir = os.path.dirname(os.path.abspath(__file__)) + '/logs'
tensorflow框架下的,生成常量,用来生成tensor。
比如,这样就可以生成一个2*3的张量
a = tf.constant([[1, 2, 3], [4, 5, 6]])
下面,是生成一个存有字符串的常量,并赋值给welcome。
welcome = tf.constant('Welcome to TensorFlow world!')
接下来就是tensorflow的主要部分了:
首先要说的是tensorflow里的Session的概念,这就不得不要把话绕的远了些,就得先总结下Tensorflow整个框架的系统架构:
TensorFlow设计十分精巧,从图上也可以看出整个框架是基于分层和模块化的设计思想进行开发的。
其中,
1.整个框架以C API为界,分为前端和后端两大部分。
2.前端:提供编程模型,多语言的接口支持,比如Python Java C++等。通过C API建立前后端的连接,后面详细讲解。
3.后端:提供运行环境,完成计算图的执行。进一步分为4层
4.运行时:分为分布式运行时和本地运行时,负责计算图的接收,构造,编排等。
5.计算层:提供各op算子的内核实现,例如conv2d, relu等
6.通信层:实现组件间数据通信,基于GRPC和RDMA两种通信方式
7.设备层:提供多种异构设备的支持,如CPU GPU TPU FPGA等
TensorFlow的一大特点是,图的构造和执行相分离。用户添加完算子,构建好整图后,才开始进行训练和执行,也就是图的执行。其中就包括了:
图构建:用户在client中基于TensorFlow的多语言编程接口,添加算子,完成计算图的构造。
图传递:client开启session,通过它建立和master之间的连接。执行session.run()时,将构造好的graph序列化为graphDef后,以protobuf的格式传递给master。
————引自:https://blog.csdn.net/u013510838/article/details/84103503
总之就一个意思,当把tensor给搭建好之后,要开启session才可以开始flow,这估计也是tensorflow的意思吧,个人感觉session就是一个阀门水龙头,当把架构给搭建好之后,打开水龙头,往架构里面注水,架构所搭建的东西才能“活”起来。在许多tensorflow的程序中基本上经常能看到:
- with tf.Session() as sess:
-
- sess.close()
这也可以算是固定的格式吧!
接下来说里面的东西,
这个`FileWriter`类提供了一个机制,能够在指定的目录下面创建event文件,然后将缓存中的summaries写入到event文件中去。该类可以异步的更新(updates asynchronously)events文件的内容。 这个异步机制能够让程序在训练循环过程中调用add方法直接往文件中添加数据而不用阻塞循环训练过程导致训练速度减慢。
使用用户的主目录path替换'-user‘格式的路径名称
TensorFlow中的语句不会立即执行;而是等到开启会话session的时候,才会执行session.run()中的语句。如果run中涉及到其他的节点,也会执行到。而且,所有的节点都是可以视为运算操作op或tensor都可以用run来进行执行。
配套的,记得close。
- with tf.Session() as sess:
- writer = tf.summary.FileWriter(os.path.expanduser(log_dir), sess.graph)
- print("output: ", sess.run(welcome))
-
- # Closing the writer.
- writer.close()
- sess.close()
- #####################################################
- ########## Welcome to TensorFlow World ##############
- #####################################################
-
- # The tutorials in this section is just a start for going into TensorFlow world.
- # The TensorFlow flags are used for having a more user friendly environment.
-
- from __future__ import print_function
- import tensorflow as tf
- import os
-
-
- ######################################
- ######### Necessary Flags ############
- # ####################################
-
- log_dir = os.path.dirname(os.path.abspath(__file__)) + '/logs'
-
- ################################################
- ################# handling errors!##############
- ################################################
-
- # Defining some sentence!
- welcome = tf.constant('Welcome to TensorFlow world!')
-
- # Run the session
- with tf.Session() as sess:
- writer = tf.summary.FileWriter(os.path.expanduser(log_dir), sess.graph)
- print("output: ", sess.run(welcome))
-
- # Closing the writer.
- writer.close()
- sess.close()
作者:goodbody
链接:https://www.pythonheidong.com/blog/article/49452/cb9717e79448ff42e063/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!