深度学习(一):Tensorflow的基本介绍

在tensorflow中,把数据称为张量(tensor)
专门运算的操作叫做节点,op,只要是用tensorflow的api定义的函数都是op
整个程序的结构叫 图,graph
运行整个程序的图叫 会话(with tf.Session…),会话能运行图的结构,分配资源计算,掌握资源(变量,队列,线程)

#实现一个加法
a=tf.constant(5.0)
b=tf.constant(6.0)
print(a,b) #输出的不是数而是类型
print(tf.add(a,b))
with tf.Session() as sess: #固定写法
print(sess.run(…))

定义默认的一张图,就是给程序分配一段内存
获取当前程序的图:graph=tf.get_default_graph()

张量都有图属性,如sess.graph和op.graph
图是可以另外创建的:tf.Graph(),两个图之间互不干扰
eg: #自定义一个图,并将其设定为默认图
g=tf.Graph()
with g.as_default():
a=tf.constant(1.0)
assert a.graph is g

tensorflow分为前端:定义程序的图的结构;后端:运算图的结构

会话只能运行默认的那一个图,当你想要运行特定的一张图的时候:with tf.Session(graph=g) as sess:
牢记,sess.run(…)是启动图的关键
会话结束后需要进行资源释放即释放内存:sess.close(), 但也可以用上下文管理器: with tf.Session() as sess: sess.run(…),这样最后程序会自动释放内存

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: #在括号内加入这个参数会显示程序是在哪个元件上运行

run的方法: run(fetches,feed_dic=None,graph=None) #其中fetches可以是一个列表 ,包含多个要输出的东西

tensorflow中有方法的重载,如:var=2.0,a=tf.constant(1.0) sum=a+var 这里a是张量,是op, var是float,sum的输出是op,默认转化

我们训练模型时,当需要实时提供数据去进行训练,这时用到run的另一个方法:feed_dic, 而feed_dic一般结合placeholder用,这是一个占位符,feed_dic是个字典
eg:plt=tf.placeholder(tf.float32 , [2,3] ) 这是一个op,参数为dtype,shape,name(这里没用到)
with tf.Session(…) as sess:
print(sess.run(plt , feed_dic={plt:[[1,2,3] , [4,5,6]]})) 冒号后面的有shape决定的,当然,shape也可以不固定,[None , 3],写出具体的数字的要严格要求,none部分可以随意,因为不是固定的
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值