1、知识点

"""
tensorflow前端系统:定义程序的图结构,主要是利用一些API实现
tensorflow后端系统:运算图结构
numpy的reshape,在原始数据做修改,并没有创建新的数据对象
1、安装:按照官方文档安装
a)安装python,pip
b)升级 python -m pip install --upgrade pip
c)win10安装CPU版本tensorflow ,pip install https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.12.0-cp36-cp36m-win_amd64.whl
2、报警告1:FutureWarning: Conversion of the second argument of issubdtype from
解决方法:pip install h5py==2.8.0rc1
报警告2:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
解决方法:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
3、tensorflow结构
椭圆代表张量,简称tensor:tensorflow中所有的数据都封装在tensor中
方块,简称operation(op):专门运算的操作节点,所有的操作都是op
图(graph):整个程序的结构
会话(Session):运算程序的图 4、a)图:运行程序的结构
图默认已经注册,一组表示 tf.Operation计算单位的对象和tf.Tensor。表示操作之间流动的数据单元的对象
获取调用:
tf.get_default_graph()
op、sess或者tensor 的graph属性
图的作用:主要给程序分配内存 图的创建:
1、创建默认的图:graph = tf.get_default_graph()
2、自定义图: g = tf.Graph() b)op:只要使用tensorflow的api定义的函数都是OP c)张量(tensor):就指代的是数据,op是tensor的载体 d)会话(Session):相当于桥梁,将图和计算资源连接起来
会话作用:
1、运行图的结构
2、分配资源计算
3、掌握资源(变量的资源,队列,线程) 注意:一个会话只能运行一个图结构 ,但可以在Session中指定图去运算
查看会话的资源情况:tf.Session(config=tf.ConfigProto(log_device_placement=True))
启动会话:sess.run()
关闭会话:sess.close() 启动会话(sess.run()):
1、run()中的参数必须是tensor或者op类型
2、如果变量想转换为tensor类型,可以和tensor做运算,提升数据类型
3、实时的提供数据进行训练,feed_dict与placeholder结合使用
4、placeholder是一个占位符 Session一般返回异常值:
1、RuntimeError:如果它Session处于无效状态(例如已关闭)。
2、TypeError:如果fetches或feed_dict键是不合适的类型。
3、ValueError:如果fetches或feed_dict键无效或引用 Tensor不存在。 5、张量(tensor):是tensorflow基本的数据格式。类似于numpy
张量的阶和数据类型: 包含:name,shape,dype
张量的属性:graph,op,name,shape
张量形状表示:
0维:() 1维:(5) 2维:(5,6) 3维:(2,3,4)
张量形状:包含动态形状和静态形状
1、动态形状:一种描述张量在执行过程中的一种形状
tf.reshape:创建一个具有不同形状的新张量
2、静态形状:创建一个张量,初始状态的形状
tf.Tensor.get_shape:获取静态形状
tf.Tensor.set_shape():更新tensor对象的静态形状
注意:1、静态形状固定了,就不能再次设置形状,只能使用动态形状,但会创建一个新的张量
2、动态形状改变,数据数量一定要匹配 6、运算API:正太分布主要通过平均值和标准差进行表示
1、生成张量:tf.zeros() 、tf.ones() 、tf.constant()
2、随机值张量:
正太分布(高斯分布)随机值:tf.random_normal()
截断的正太分布(高斯分布)随机值:tf.truncated_normal()
3、张量数据类型变换:
tf.cast(x,dtype) 万能转换类型
tf.squeeze()
4、拼接:tf.concat(values,axis) 7、变量:tf.Variable(),是一种OP,是一种特殊的张量,能够进行存储持久化,他的值就是张量,默认被训练
1、变量必须都初始化,且要在session中运行 tf.global_variables_initializer() 8、视图(tensorboard):首先将程序图结构序列化成一个event文件,然后通过tensorboard读取这个event文件
1、tf.summary.FileWriter("",graph=)
SCALARS:显示0维读值,如准确率,损失值
GRAPHS:显示程序图图结构
HISTOGRAPHS:高维的值,如权重,偏置
2、报错:No dashboards are active for the current data set
原因:因为没有读取到event文件,所以检查运行语句中logdir是否正确: tensorboard --logdir="./tmp/" """

2、代码

# coding = utf-8
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '' #变量op
def vari():
a = tf.constant([1,2,3])
var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0))
print(a,var)
init_op = tf.global_variables_initializer() #变量初始化
with tf.Session() as sess:
sess.run(init_op) #运行初始化变量
file = tf.summary.FileWriter("./tmp", graph=sess.graph)
print(sess.run([a, var])) #图的创建
def createGraph():
g = tf.Graph()
#with表示设定上下文环境
with g.as_default():
c = tf.constant(11.0)
print(c.graph) def addTest():
a = tf.constant(5.0)
b = tf.constant(6.0)
s = tf.add(a,b)
# print(s)
graph = tf.get_default_graph() #主要是分配内存
# print(graph)
plt = tf.placeholder(tf.float32,[None,3]) #None表示样本数不固定
with tf.Session() as sess:
print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))
#print(sess.run(s))
print(s.eval()) #使用eval()取值
#打印的地址一致
print(a.graph)
print(s.graph)
print(sess.graph) def shape():
plt = tf.placeholder(tf.float32,[None,2])
plt.set_shape([3,2]) #静态修改 if __name__ == '__main__':
vari()

tensorflow简介与结构介绍的更多相关文章

  1. 上门洗车APP --- Androidclient开发 之 项目结构介绍

    上门洗车APP --- Androidclient开发 之 项目结构介绍 前言 尽管公司项目较紧,但还是抽空给大家继续更新. o_O"~ 欢迎大家的关注,非常高兴和大家共同学习.前面给大家分 ...

  2. 第四百一十六节,Tensorflow简介与安装

    第四百一十六节,Tensorflow简介与安装 TensorFlow是什么 Tensorflow是一个Google开发的第二代机器学习系统,克服了第一代系统DistBelief仅能开发神经网络算法.难 ...

  3. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  4. Magento学习第一课——目录结构介绍

    Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...

  5. Poi之Word文档结构介绍

    1.poi之word文档结构介绍之正文段落 一个文档包含多个段落,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元 获取所有段落:List<XWPFParagraph ...

  6. vue学习笔记(三)——目录结构介绍

    1.初始目录结构如下: 2.目录结构介绍 目录/文件 说明 build 最终发布的代码存放位置. config 配置目录,包括端口号等.我们初学可以使用默认的. node_modules npm 加载 ...

  7. Vue 入门之目录结构介绍

    Vue 是一套用于构建用户界面的渐进式框架,与其它大型的页面框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当 ...

  8. .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI

    作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...

  9. 25 Zabbix系统数据表结构介绍

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 25 Zabbix系统数据表结构介绍 自学Zabbix之路15.1 Zabbix数据库表结构简单解 ...

随机推荐

  1. Tomcat集成到MyEclipse

    1.Tomcat集成到MyEclipse 使用MyEclipse配置服务器后,就可以使用MyEclipse来启动和停止服务器了.当然,你需要先安装好服务器(Tomcat),才能配置.MyEclipse ...

  2. Android 计算器制作 1.布局

    1.activity_main.xml文件布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr ...

  3. linux基础—课堂随笔07_磁盘存储和文件系统

    磁盘管理 管理分区 列出块设备  lsblk parted命令 高级分区操作 用法:  parted [选项]... [设备 [命令 [参数]...]...]  parted /dev/sdb mkl ...

  4. 复习rem

    在Web页面制作中,我们一般使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小(虽然一般人不会去改变浏览 ...

  5. python 时间对应计算

    import re import time def parse_time(date): if re.match('刚刚', date): date = time.strftime('%Y-%m-%d ...

  6. BZOJ1601 [Usaco2008 Oct]灌水[最小生成树]

    显然分析可知这个图最后连起来是一个森林,每棵树有一个根再算一个代价.那么这些跟需要连向某一点一个建立水库的代价,且根可以有多个但不能没有,则考虑用超级源点0向所有点连虚边,Prim跑MST即可保证有至 ...

  7. css实现单行、多行文本超出显示省略号

    前言:项目中我们经常遇到这种需求,需要对单行.多行文本超出显示为省略号.这篇文章主要总结了小编解决此问题的方法,有不足之处欢迎大家指正. 单行文本省略 .ellipsis-line { border: ...

  8. Mybatis 解决问题的记录与博客

    问题:mybatis 空值映射的问题Mybatis在使用resultMap来映射查询结果中的列,如果查询结果中包含空值的列(不是null),则Mybatis在映射的时候,不会映射这个字段 https: ...

  9. Win7 右键 新建图标消失的解决办法

    方法一: 把下面一段代码存在一个记事本上,再选择另存为1.cmd,最后运行! regsvr32 /u /s igfxpph.dll reg delete HKEY_CLASSES_ROOT\Direc ...

  10. PHP类知识----clone方法上机实验

    <?php class mycoach { public function __construct($name,$age) { $this->name = $name; $this-> ...