跳转到主要内容

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。

的原因,是我们的计划确实完全不同的东西。这里的代码如下:

  1. 导入tensorflow模块和调用它特遣部队
  2. 创建一个名为x的恒定值,数值35
  3. 创建一个变量y,定义它的方程x + 5
  4. 打印对象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。这是相当多的样板,但它的工作原理是这样的:

  1. 导入tensorflow模块和调用它特遣部队
  2. 创建一个名为x的恒定值,数值35
  3. 创建一个变量y,定义它的方程x + 5
  4. 初始化变量tf.global_variables_initializer ()(我们将详细介绍这个)
  5. 创建一个会话为计算值
  6. 运行4中创建的模型
  7. 只运行变量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),并创建一个变量存储方程

y = 5 x2−3 x + 15

您可以使用下面的代码生成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,我们可视化教训。