tensorflow003-会话session

一,Session(会话)的作用

tensorflow分为前端系统和后端系统,
前端系统:进行定义图的结构
后端系统:运算图的结构
会话起到前端系统和后端系统的桥梁
作用:

1.运行图结构 

2.分配资源计算 

3.掌握资源(变量的资源,队列,线程)

二, 会话的使用

tf.Session()

一次只能运行一张图,且默认运行默认的图,所以想要运行特定的图需要传入参数:

tf.Session(graph=g)

通过sess.run()启动整个图
通过sess.close()关闭整个图进行资源释放
一定要进行close进行释放内存
使用上下文管理器
with语句块中,不论运行结果如何,都会执行close()方法,避免资源的重复调用

with tf.Session(graph=g) as sess:
    print(sess.run(sum2))

可以发现这里不用执行close方法就能关闭session

三,会话的run方法

run(fetches, feed_dict=None, options=None, run_metadata=None)

运行ops和计算tensor

  • fetches 可以是单个图形元素,或任意嵌套列表,元组,namedtuple,dict或OrderedDict
  • feed_dict 允许调用者覆盖图中指定张量的值

1,op类型进行运算

with tf.Session() as sess:
    #run一个tensor
    print(sess.run(sum1))
    #run多个tensor(使用列表):
    print(sess.run([a,b,sum1]))

2,整型和op型进运算

#有重载机制,默认给运算符重载为op类型
var1 = 2
sum2 = a + var1
with tf.Session() as sess:
    print(sess.run(sum2))

在这里插入图片描述
3,placeholder进行占位操作
有时候我们图中的数据是动态生成的,不是固定不变的,这时候我们就可以使用placeholder

#placeholder是一个占位符
#数据类型为float32,大小为两行三列
plt = tf.placeholder(tf.float32, [2, 3])

4,feed_dict传入占位的数据
run方法里面的feed_dict参数传入在前面placeholder进行占位的数据

#使用feed_dict 传入占位的字典字典数据类型数据
#这里由于传入的参数只有一个为占位符类型的数据plt,所以在feed_dit 里面只填一个键值对类型的数据,键为plt,值为行三列的列表
with tf.Session as sess:
    print(sess.run(plt,feed_dict={plt:[[1, 2, 3, ],[4, 5, 6,]]}))

运行结果:
在这里插入图片描述

完整代码

#coding:utf-8
#会话(session)作用:
#1.运行图结构 2.分配资源计算 3.掌握资源

import tensorflow as tf
#实现一个加法运算
a = tf.constant(3.0)
b = tf.constant(4.0)
sum1 = tf.add(a, b)
#run op
with tf.Session() as sess:
    #run一个op
    print(sess.run(sum1))
    #run多个op(使用列表):
    print(sess.run([a,b,sum1]))
#有重载机制,默认给运算符重载为op类型
var1 = 2
sum2 = a + var1
with tf.Session() as sess:
    print(sess.run(sum2))
#placeholder是一个占位符
#数据类型为float32,大小为两行三列
plt = tf.placeholder(tf.float32, [2, 3])
#使用feed_dit 传入占位的字典字典数据类型数据
#这里由于传入的参数只有一个为占位符类型的数据plt,所以在feed_dit 里面只填一个键值对类型的数据,键为plt,值为行三列的列表
with tf.Session() as sess:
    print(sess.run(plt, feed_dict={plt: [[1, 2, 3, ], [4, 5, 6,]]}))

在这里插入图片描述

TensorFlow是一个强大的开源机器学习框架,用于构建和部署深度学习模型。以下是使用TensorFlow入门构建简单神经网络的基本步骤: 1. **安装TensorFlow**:首先,你需要安装TensorFlow库。如果你使用Python,可以使用pip安装最新版本: ``` pip install tensorflow ``` 2. **导入库**:在Python脚本中,引入`tensorflow`模块: ```python import tensorflow as tf ``` 3. **创建占位符**:定义输入数据的占位符,它们会在每次运行会话时提供实际的数据: ```python inputs = tf.placeholder(tf.float32, [None, input_size]) labels = tf.placeholder(tf.float32, [None, num_classes]) ``` 4. **定义权重和偏置**:初始化随机权重矩阵和偏置项,通常使用正态分布或其他初始化策略: ```python weights = tf.Variable(tf.random_normal([input_size, num_classes])) biases = tf.Variable(tf.zeros([num_classes])) ``` 5. **计算预测值**:使用点乘和加法操作计算神经网络的输出: ```python predictions = tf.nn.softmax(tf.add(tf.matmul(inputs, weights), biases)) ``` 6. **损失函数**:选择合适的损失函数,如交叉熵损失(适合分类任务): ```python loss = tf.reduce_mean(-tf.reduce_sum(labels * tf.log(predictions), reduction_indices=[1])) ``` 7. **优化器**:配置一个优化算法,如梯度下降或Adam,来更新权重以最小化损失: ```python optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss) ``` 8. **训练循环**:在一个会话中,不断提供训练数据并调用优化器迭代: ```python with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for epoch in range(num_epochs): # 进行一次训练轮次... ``` 9. **评估模型**:通过测试数据集验证模型性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值