tensorflow基础知识学习笔记--图和会话

1、tensor:张量
operation(op);专门运算的操作节点,所有的操作都是一个op
图:graph你的整个程序的结构
会话:运算程序的图
加法计算

import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = tf.constant(5.0)
b = tf.constant(6.0)

sum1 = tf.add(a, b)
print(sum1)

with tf.Session() as sess:
    print(sess.run(sum1))

(1)图的基础知识
计算密集型:tensorflow;cpu计算
IO密集型:web,scrapy,django,http请求、磁盘操作等等
(2)、图默认已经注册,一组表示tf.Operation计算单位的对象和tf.Tensor表示操作之间流动的数据单元的对象

# 默认的这张图,相当与就是在分配一段内存
graph = tf.get_default_graph()
op、sess或者tensor的graph属性

(3)图的创建:

#创建一张图,上下文环境
# op:只要使用tensorflow的API定义的函数都是OP
# tensor:张量就指代的是数据
g = tf.Graph()
print(g)
with g.as_default():
    c = tf.constant(11.0)
    print(c.graph)

(4)tensorflow
前端系统:定义程序图的结构
后端系统:运算图结构
2、会话:
(1)作用:
运行图的结构
分配资源的计算
掌握资源(变量的资源、队列、线程)
(2)
tf.Session()只能运行一个图,可以在会话中指定图去运行
sess.run()启动整个图
交互式tf.lnteractiveSession()
只要有会话的上下文环境,就能使用eval

config=tf.ConfigProto(log_device_placement=True

(3)会话的run方法
不是op不能运行,有重载机制,默认会给运算符重载成tensor类型

run(fetches=,feed_dict=None,graph=None),运行ops和计算tensor
嵌套列表、元组
namedtuple,dict或OrderedDict(重载的运算符也能运行 )
feed_dict允许调用者覆盖图中指定张量的值,提供给placehodler使用
返回值异常
RuntimerError:如果它Session处于无效状态(例如已关闭)
TypeError:如果fetches或feed_dict键是不适合的类型
ValueError:如果fetches或feed_dict键无效或引用Tensor不存在
print(sess.run([a, b, sum]))

tensorflow Feed操作
意义:在程序执行的时候,不知道输入的是什么,提前占个坑
语法:placehodler提供占位符,run的时候通过feed_dict指定参数

import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.add(input1, input2)
with tf.Session() as sess:
    print(sess.run([output], feed_dict={input1: 10.0, input2: 20.0}))
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# 创建一张图,上下文环境
# op:只要使用tensorflow的API定义的函数都是OP
# tensor:张量就指代的是数据
g = tf.Graph()
print(g)
with g.as_default():
    c = tf.constant(11.0)
    print(c.graph)

a = tf.constant(5.0)
b = tf.constant(6.0)
sum = tf.add(a, b)
# 默认的这张图,相当与就是在分配一段内存
graph = tf.get_default_graph()
# 有重载机制,默认会给运算符载成op类型运行
var1 = 1
var2 = 2
sum2 = var1 + var2 + a
print(graph)
# 训练模型,实时提供数据去进行训练
# placehodler是一个占位符
plt = tf.placeholder(tf.float32, [2, 3])
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(plt, feed_dict={plt: [[1, 2, 3], [4, 5, 6]]}))
    # print(sess.run(fetches=, feed_dict=None, graph=None))
    print(sess.run([a, b, sum]))
    print(a.graph)
    print(sum.graph)
    print(sess.graph)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值