当前位置:首页 > 编程教程 > Python技术文章 > TensorFlow Session会话控制&Variable变量详解

深度学习TensorFlow Session会话控制和Variable变量

  • 发布时间:
  • 作者:码农之家
  • 点击:177

这篇文章主要知识点是关于TensorFlow、Session、Variable、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

面向ArcGIS的Python脚本编程
  • 类型:Python大小:49.9 MB格式:PDF作者:Paul
立即下载

TensorFlow Session会话控制&Variable变量详解

这篇文章主要讲TensorFlow中的Session的用法以及Variable。

Session会话控制

Session是TensorFlow为了控制和输出文件的执行语句,运行session.run()就能获得运算结果或者部分运算结果。我们在这里使用一个简单的矩阵相乘的例子来解释Session的两个用法。

首先我们要加载TensorFlow并建立两个矩阵以及两个矩阵所做的运算。这里我们建立一个一行两列的matrix1和一个两行一列的matrix2,让它们做矩阵的乘法。tf.matmul相当于numpy中的dot方法,都是做矩阵的product。

import tensorflow as tf

matrix1 = tf.constant([[2, 2]])
matrix2 = tf.constant([[2], [2]])

product = tf.matmul(matrix1, matrix2)

接下来我们使用第一种会话控制Session来激活product并得到计算结果:

sess = tf.Session()
result = sess.run(product)
print(result)
sess.close()

运行结果为:[[8]]

还有另外一种Session的打开模式同样可以激活product:

with tf.Session() as sess:
 result2 = sess.run(product)
 print(result2)

运行结果同样是[[8]]。在这里我们不需要我们单独做sess.close()的操作。

variable变量

与python的变量不同,在TensorFlow中如果我们要定义一个变量,必须使用tf.Variable()来定义它才是个变量,括号中可以包含的参数有变量的值,变量的名称等。这里我们用一个简单的加法运算来解释变量的用法。

首先导入tensorflow并定义变量state, 常量one,以及运算方法tf.add, tf.assign

import tensorflow as tf

state = tf.Variable(0, name='counter')
# 输出变量名
print(state.name)
one = tf.constant(1)

new_value = tf.add(state, one)
# 将new_value加载到state里面,这时state的值就是new_value
update = tf.assign(state, new_value)

我们可以将变量打印出来得到变量的信息:

init = tf.global_variables_initializer()

接下来我们就要用Session来将变量激活进行运算,并打印出state的结果:

with tf.Session() as sess:
 sess.run(init)
 for _ in range(3):
  sess.run(update)
  print(sess.run(state))

这里我们让update运行3次,也就是做3次加法,运行结果为:

TensorFlow Session会话控制&Variable变量详解

以上这篇TensorFlow Session会话控制&Variable变量详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Python 相关电子书
学习笔记
网友NO.636989

python梯度下降法的简单示例

梯度下降法的原理和公式这里不讲,就是一个直观的、易于理解的简单例子。 1.最简单的情况,样本只有一个变量,即简单的(x,y)。多变量的则可为使用体重或身高判断男女(这是假设,并不严谨),则变量有两个,一个是体重,一个是身高,则可表示为(x1,x2,y),即一个目标值有两个属性。 2.单个变量的情况最简单的就是,函数hk(x)=k*x这条直线(注意:这里k也是变化的,我们的目的就是求一个最优的 k)。而深度学习中,我们是不知道函数的,也就是不知道上述的k。 这里讨论单变量的情况: 在不知道k的情况下,我们是通过样本(x1,y1),(x2,y2),(xn,yn)来获取k。获取的k的好坏则有损失函数来衡量。 损失函数:就是你预测的值和真实值的差异大小(比如一个样本(1,1)他的真实值是1,而你预测的是0.5,则差异 比较大,如果你预测值为0.9999,则差异就比较……

网友NO.187650

python实现维吉尼亚算法

本文实例为大家分享了python实现维吉尼亚算法的具体代码,供大家参考,具体内容如下 1 Virginia加密算法、解密算法 Vigenenre密码是最著名的多表代换密码,是法国著名密码学家Vigenenre发明的。Vigenenre密码使用一个词组作为密钥,密钥中每一个字母用来确定一个代换表,每一个密钥字母被用来加密一个明文字母,第一个密钥字母加密第一个明文字母,第二个密钥字母加密第二个明文字母,等所有密钥字母使用完后,密钥再次循环使用,于是加解密前需先将明密文按照密钥长度进行分组。 密码算法可表示如下:。 设明文串为: M=m1m2…mn,mi∈charset, n是明文长度 秘钥为: K=k1k2…kd,ki∈charset, d是秘钥长度 密文为: C=c1c2…cn,ci∈charset, n是密文长度 加密算法: cj+td=(mj+td+kj ) mod 26 j=1…d, t=0…ceiling(n/d)-1 其中ceiling(x)函数表示不小于x最小整数 解密算法: mj+t……

网友NO.840463

python字典键值对的添加和遍历方法

添加键值对 首先定义一个空字典 dic={} 直接对字典中不存在的key进行赋值来添加 dic['name']='zhangsan' dic{'name': 'zhangsan'} 如果key或value都是变量也可以用这种方法 key='age' value=30 dic[key]=value dic{'age': 30, 'name': 'zhangsan'} 这里可以看到字典中的数据并不是按先后顺序排列的,如果有兴趣,可以搜一搜数据结构中的——哈希表 还可以用字典的setdefault方法 dic.setdefault('sex','male')'male' key='id' value='001' dic.setdefault(key,value)'001' dic{'id': '001', 'age': 30, 'name': 'zhangsan', 'sex': 'male'} 遍历字典 这里有两种方法 方法1: 先获取key,然后通过dic[key]获取value for key in dic:... print 'key is %s,value is %s'%(key,dic[key])...key is id,value is 001key is age,value is 30key is name,value is zhangsankey is sex,value is male 方法2: 对字典items()方法返回的元组列表进行序列解包 for key,value in dic.items():... print 'key is %s,value is %s'%(key……

网友NO.400528

Python小游戏之300行代码实现俄罗斯方块

前言 本文代码基于 python3.6 和 pygame1.9.4。 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块。但是想到旋转,停靠,消除等操作,感觉好像很难啊,等真正写完了发现,一共也就 300 行代码,并没有什么难的。 先来看一个游戏截图,有点丑,好吧,我没啥美术细胞,但是主体功能都实现了,可以玩起来。 现在来看一下实现的过程。 外形 俄罗斯方块整个界面分为两部分,一部分是左边的游戏区域,另一部分是右边的显示区域,显示得分、速度、下一个方块样式等。这里就不放截图了,看上图就可以。 游戏区域跟贪吃蛇一样,是由一个个小方格组成的,为了看得直观,我特意画了网格线。 import sysimport pygamefrom pygame.locals import *SIZE = 30 # 每个小方格大小BLOCK_HEIGHT = 20 # 游戏区高度BLOCK_WIDTH = 10 # 游戏区宽度BORDER_WIDTH = ……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com