TensorFlow™在砖
变量
TensorFlow是一种代表计算没有实际执行,直到问。从这个意义上说,这是一种懒惰的计算,它允许一些伟大的改善运行的代码:- 更快的计算复杂的变量
- 分布式计算跨多个系统,包括gpu。
- 减少redundency在某些计算
让我们看一看这个。首先,一个非常基本的python脚本:
x =35y = x +5打印(y)
这个脚本基本上只是说“创建一个变量x值35,一个新的变量y的值设置为+ 5,目前40岁,和打印出来”。价值40将打印出当你运行这个程序。如果你不熟悉python,创建一个新的文本文件basic_script.py
,复制代码。将它保存在你的电脑上,运行:
python basic_script.py
注意,路径(即。basic_script.py
)必须参考的文件,如果在代码
文件夹中,您可以使用:
python代码/ basic_script.py
同时,确保你有激活水蟒的虚拟环境。在Linux上,这将使您的提示看起来像:
(tensorenv)(电子邮件保护):~ $
如果是工作,让我们把它转换成一个TensorFlow等价的。
进口tensorflow作为特遣部队x = tf.constant (35、名称=“x”)y =特遣部队。变量(x +5、名称=“y”)打印(y)
运行这个之后,你会得到很多有趣的输出,类似< tensorflow.python.ops.variables。变量对象在0 x7f074bfd9ef0 >
。这显然是不价值40。
的原因,是我们的计划确实完全不同的东西。这里的代码如下:
- 导入tensorflow模块和调用它
特遣部队
- 创建一个名为x的恒定值,数值35
- 创建一个变量y,定义它的方程x + 5
- 打印对象y的方程
微妙的区别在于y不是给“x + 5的当前值”在我们之前的项目。相反,它实际上是一个等式,这意味着“这个变量计算时,把x的值(然后)和添加5”。y的值的计算是从来没有真正执行上述程序。
让我们解决这个问题:
进口tensorflow作为特遣部队x = tf.constant (35、名称=“x”)y =特遣部队。变量(x +5、名称=“y”)
模型= tf.global_variables_initializer ()与tf.Session ()作为会话:session.run(模型)打印(session.run (y))
我们已经删除了打印(y)
声明,而是我们的代码创建一个会话,实际上计算的价值y
。这是相当多的样板,但它的工作原理是这样的:
- 导入tensorflow模块和调用它
特遣部队
- 创建一个名为x的恒定值,数值35
- 创建一个变量y,定义它的方程x + 5
- 初始化变量
tf.global_variables_initializer ()
(我们将详细介绍这个) - 创建一个会话为计算值
- 运行4中创建的模型
- 只运行变量y和打印出其当前值
上面的步骤4是一些魔法发生的地方。在这一步中,创建一个图的变量之间的依赖关系。在这种情况下,变量y取决于变量x,和价值转换通过添加5。记住这个值没有计算到第7步,直到那时,只计算方程和关系。
1)常量也可以是数组。预测这段代码,然后运行它来确认:
进口tensorflow作为特遣部队
x = tf.constant ([35,40,45),name =“x”)y =特遣部队。变量(x +5、名称=“y”)
模型= tf.global_variables_initializer ()与tf.Session ()作为会话:session.run(模型)打印(session.run (y))
2)生成一个NumPy 10000随机数(称为数组x
),并创建一个变量存储方程
您可以使用下面的代码生成NumPy数组:
进口numpy作为np数据= np.random.randint (1000年、大小=10000年)
这数据
变量可以使用上面列出的问题1。作为一般规则,NumPy应该用于更大的数字列表/数组,因为它是更比列表记忆效率和更快的计算。它还提供了大量的功能(如计算均值)通常不用于列表。
3)你也可以更新变量在循环中,稍后我们将使用机器学习。看看这个代码,并预测它将做什么(然后运行它来检查):
进口tensorflow作为特遣部队
x = tf.Variable (0、名称=“x”)
模型= tf.global_variables_initializer ()与tf.Session ()作为会话:session.run(模型)为我在范围(5):x = x +1打印(session.run (x))
4)使用的代码(2)和(3),创建一个计算机程序的“滚动”平均水平以下的代码:np.random.randint (1000)
。换句话说,保持循环,每个循环,电话np.random.randint (1000)
循环一次,目前的平均存储在一个变量不断更新每个循环。
5)使用TensorBoard想象图其中的一些例子。TensorBoard运行,使用命令:tensorboard——logdir =路径/ /日志目录
进口tensorflow作为特遣部队x = tf.constant (35、名称=“x”)打印(x)y =特遣部队。变量(x +5、名称=“y”)与tf.Session ()作为会话:合并= tf.summary.merge_all ()作家= tf.summary.FileWriter (“/ tmp /基本”session.graph)模型= tf.global_variables_initializer ()session.run(模型)打印(session.run (y))
找出更多关于Tensorboard,我们可视化教训。