首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么多次运行tf.global_variables_initializer()不会改变结果?

多次运行tf.global_variables_initializer()不会改变结果的原因是因为该函数只是对变量进行初始化操作,并不会改变变量的值。在TensorFlow中,变量的初始化只需要执行一次即可,之后再次运行该函数并不会对变量的值产生影响。

tf.global_variables_initializer()是一个操作(Operation),它会初始化所有的全局变量。在TensorFlow的计算图中,变量是一种特殊的操作,它们具有可训练的状态,并且在计算图中保持其值。当我们创建一个变量时,它的初始值是未定义的,需要通过运行tf.global_variables_initializer()来为变量赋予初始值。

在TensorFlow的计算图中,每个操作都有一个唯一的名称,并且可以通过名称来引用。当我们多次运行tf.global_variables_initializer()时,实际上是在执行同一个初始化操作,而不是重新初始化变量。因此,无论运行多少次,变量的值都不会改变。

需要注意的是,如果在多次运行tf.global_variables_initializer()之间对变量进行了赋值操作,那么变量的值会发生改变。但是仅仅运行tf.global_variables_initializer()本身,并不会改变变量的值。

总结起来,多次运行tf.global_variables_initializer()不会改变结果是因为该函数只是对变量进行初始化操作,并不会改变变量的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

BI为什么我的查询运行多次

连接器设计连接器可以出于各种原因对数据源进行多次调用,包括元数据、结果缓存、分页等。 此行为是正常的,旨在以这种方式工作。...在桌面环境中,使用单个共享缓存运行数据模型中所有表的单个刷新。 Caching可以减少对同一数据源的多个请求的可能性,因为一个查询可以受益于已针对其他查询运行和缓存的相同请求。...即使在此处,也可以获取多个请求,因为数据源未缓存 (例如本地 CSV 文件) ,因此对数据源的请求不同于由于下游操作 (可以更改折叠) 而缓存的请求,缓存太小 (相对不太可能) , 或因为查询大致同时运行...数据隐私分析数据隐私对每个查询进行自己的评估,以确定查询是否安全运行在一起。 此评估有时可能会导致对数据源发出多个请求。...禁用后台分析其他Power Query编辑器后台任务各种Power Query编辑器后台任务还可以触发 (额外的数据源请求,例如查询折叠分析、列分析、1000 行预览的自动刷新,Power Query加载结果后触发

5.5K10
  • Derek Lowe|为什么AlphaFold不会彻底改变药物发现

    当你的整个计算技术是建立在寻找已知结构的类推结构上时,当没有结构可以比较,而且永远不会有结构时,你能做什么?...一些无序的蛋白质在它们的各种蛋白质伙伴的存在下会突然变成有序的排列,但其他的蛋白质在任何条件下都不会显示出有序的结构。更重要的是,这种特性似乎对它们的功能至关重要!...而且由于构象的灵活性,即使这些数据也不总是最后的结果。这就是为什么关于这个新的预测数据库将如何彻底改变药物发现的新闻报道被夸大了。...这是因为你几乎总是基于使用纯蛋白质或活细胞的分析来运行项目。这些数字应该是为了回答关键问题:这些化合物是否在做我们想要的,随着我们制造新的化合物,它们是否会变得更好?...蛋白质的结构可能有助于产生关于下一步要制造什么化合物的想法,但话又说回来,它可能不会。最终,来自真实生物系统的真实数据才是最重要的。

    31420

    Python为什么文件运行和在命令行运行同样语句但结果却不同?

    体会了可变与不可变的外在表现后,简单理解一下为什么不可变。 Python官方文档这样解释字符串不可变: There are several advantages....个人感觉,有性能上的考虑(比如对一些固定不变的元素给予固定的存储位置,整数这样操作比较方便,字符串的话涉及一些比较也会减少后续操作的时间),也有一些安全上的考虑(比如列表中的值会改变,元组不会)。...但是第二个就不那么好理解了,尤其是配合下面这个(假定我们已经知道命令行中的语句执行是单独执行两次不会相互影响,后面会具体解释): ?...为什么a、b分别赋值1000时is比较返回False,可以分别赋值100就会返回True?...既然脚本文件的执行结果是True,那么,他俩就是同一个对象;既然命令行执行的结果是False,那么他俩就不是同一个对象。(这他喵的不是废话吗!)

    2.2K141

    「Adobe国际认证」在设计行业,为什么大但的设计,不会有好的结果?

    但就在SnapchatLOGO发生改变之后,这一数字迅速下降。...虽然 Snapchat 新LOGO的设计成本可能很小,但还有其他成本伴随着像这样的改变。用户的满意度是开发者和设计师需要考虑的额外因素,而这一次,事实证明用户满意度很低。...那么为什么会有如此大的反弹呢?Snapchat 的大胆举动可能有点过于大胆了。Snapchat 用户可能会出于多种原因做出负面反应,而不是接受这种变化。 首先,情感依恋。...他们的LOGO标志是熟悉的、怀旧的、安全的——随着改变而来的是那些美好的感觉被抹去,我们必须从头开始。 其次,新LOGO标志在游戏中扮演着重要角色“其中一个与另一个不同”。

    29720

    为什么在 Eclipse 中,运行本程序却是另外一个程序的结果

    文章目录 前言 一、错误产生场景 1.1、执行一个无误的 Java 程序(即产生结果的程序) 1.2、执行未出结果的 Java 程序 二、错误处理 总结 ---- 前言 你使用 Eclipse 敲代码的时候...,有没有遇到过这样一种情况,明明我点击运行本程序结果却是另外一个程序的结果?...这是为什么呢?话不多说,我们从实际案例来分析错误原因。...+= 10; break; case 3: x += 16; break; case 4: x += 34; } System.out.println(x); } } 运行结果如下图所示...1.1 程序的,如下图所示: 二、错误处理 检查代码,发现主函数main写错成了mian,进行修改重新运行,问题解决,如下图所示: ---- 总结 代码主函数书写错误,你说尴尬不尴尬?

    2.6K41

    Eclipse 答疑:为什么在 Eclipse 中,运行本程序却是另外一个程序的结果

    文章目录 前言 一、错误产生场景 1.1、执行一个无误的 Java 程序(即产生结果的程序) 1.2、执行未出结果的 Java 程序 二、错误处理方式 总结 前言 你使用 Eclipse 敲代码的时候...,有没有遇到过这样一种情况,明明我点击运行本程序结果却是另外一个程序的结果?...这是为什么呢?话不多说,我们从实际案例来分析错误原因。...+= 10; break; case 3: x += 16; break; case 4: x += 34; } System.out.println(x); } } 运行结果如下图所示...1.1 程序的,具体如下图所示: 二、错误处理方式 检查代码,就会发现主函数 main 写错成了 mian,具体如下图所示: 进行修改重新运行,问题解决,具体如下图所示: 总结 代码主函数书写错误

    98720

    深度学习(五)--常量与变量

    1 常量 概念: 在运行过程中值不会改变的单元,在Tensorflow中不需要进行初始化操作 定义常量: constant_name = tf.constant(value) 常量的运算代码示例: import...2 变量 在运行中,值会改变的单元,在tensorflow中需要初始化操作 定义变量: # 注意下面的Varible是大写开头 name_ariable = tf.Variable(value, name...首先我们定义了一个常量node1,然后我们定义一个变量node2, 然后我们将两者进行加法运算得到value,然后我们调用了tensorflow中的assign(),也就是变量更新的方法,我们将经过加法得到的结果赋给之前的变量...下一句就是初始化所有的变量,然后通过上下文的方法创建session,然后我们来初始化init,并且一个for循环,可以看出我们循环了10次,在这10次循环里,我们每次去运行了update_value,当我们去运行它时...运行输出后的结果: 1 2 3 4 5 6 7 8 9 10 4 关于变量的一个小练习 ? ? 问 最后给大家一个小练习: 如何通过tensorflow的变量赋值计算:1+2+3…+10?

    45640

    Tensorflow笔记:模型保存、加载和Fine-tune

    另外,如果将上面的sess.run(tf.global_variables_initializer())注释掉,那每次运行结果都一样,可见此时模型中的变量确实是加载进来的变量。...如果取消注释这一句,每次跑出来的结果都不同,因为加载进来的变量又被初始化函数覆盖了,所以每次都不一样。...为什么我要给变量两个字打上引号呢?因为在pb模型里保存的其实是常量了,取消注释sess.run(tf.global_variables_initializer())后,多次运行结果还是一样的。...([[1],[1],[0],[0],[1],[1],[0],[0]]).astype(np.float32) # 跑一下 new_pred 之后train一个step,在看看 new_pred 有没有改变...print(sess.run(new_pred, feed_dict={X:feed_X})) 这里补充一下:通过pb模式导入进来的参数其实是constants,所以在Fine-tune的时候不会变化

    1.8K41

    tensorflow学习笔记(四十一):control dependencies

    tf.control_dependencies([opt]): updated_weight = tf.identity(weight) with tf.Session() as sess: tf.global_variables_initializer...www.tensorflow.org/api_docs/python/tf/Graph#control_dependencies,总结一句话就是,在执行某些op,tensor之前,某些op,tensor得首先被运行...print(sess.run([ema_val])) 也许你会觉得,在我们 sess.run([ema_val]), ema_op 都会被先执行,然后再计算ema_val,实际情况并不是这样,为什么...().run() for i in range(3): print(sess.run([ema_val])) 第二种情况: 这个情况一般不会碰到,这是我在测试 control_dependencies...读取 w1 的值并不会触发 ema_op, 原因请看代码: #这段代码出现在Variable类定义文件中第287行, # 在创建Varible时,tensorflow是移除了dependencies了的

    2.1K90

    TensorFlow是什么?怎么用?终于有人讲明白了

    (请记住,要计算结果,必须赋值并计算所有节点。) 注释:请记住,TensorFlow首先构建一个计算图(在所谓的构造阶段),但不会自动计算它。该库将两个步骤分开,以便使用不同的输入多次计算图形。...一旦它们有了值,就不会改变。例如,tf.placeholder可以包含要用于训练神经网络的数据集,一旦赋值,它就不会在计算阶段发生变化。...tf.Variable可以包含神经网络的权重,它们会在训练期间改变,以便为特定问题找到最佳值。最后,tf.constant永远不会改变。...更好的方法是在计算图中添加一个节点,以便使用如下代码初始化在图中定义的所有变量: init = tf.global_variables_initializer() 然后再次创建并运行会话,并在计算z之前运行此节点...注释:在TensorFlow中,可能会发生同一段代码运行多次,并且最终会得到一个包含同一节点的多个副本的计算图。

    1.2K10

    02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架

    Batch Norm 为什么奏效 7. 测试时的 Batch Norm 8. Softmax 回归 9. 训练一个 Softmax 分类器 10. 深度学习框架 11....使用对数标尺搜索超参数的方式会更合理 image.png 如果你使用均匀取值,应用从粗到细的搜索方法,取足够多的数值,最后也会得到不错的结果 3....Batch Norm 为什么奏效 原因1,使得输入特征、隐藏单元的值获得类似的范围,可以加速学习 原因2,在前面层输入值改变的情况下,BN 使得他们的均值和方差不变(更稳定),即使输入分布改变了一些,它会改变得更少...目标是最小化损失函数 # train 为学习算法,使用梯度下降 train = tf.train.GradientDescentOptimizer(0.01).minimize(cost) # 初始化 init = tf.global_variables_initializer...目标是最小化损失函数 # train 为学习算法,使用梯度下降 train = tf.train.GradientDescentOptimizer(0.01).minimize(cost) # 初始化 init = tf.global_variables_initializer

    30820

    神经网络参数与tensorflow变量

    # 这样可以保证每次运行得到的结果是一样的。...在tensorflow程序的第二步回生命一个会话(session),并通过会话计算结果。在上面的样例中,当会话定义完成之后就可以真正运行定义好的计算了。但在计算y之前,需要将所有用到的变量初始化。...init_op = tf.global_variables_initializer( )sess.run(init_op)通过tf.global_variables_initializer函数,就不需要将变量一个一个初始化了...和大部分程序语言类似,变量的类型是不可以改变的。一个变量在构建之后,它的类型就不能再改变了。...和类型不大一样的是,维度在程序运行中是有可能改变的,但是需要通过设置参数validate_shape=False。下面给出了一段示范代码。

    92320

    TensorFlow是什么?怎么用?终于有人讲明白了

    (请记住,要计算结果,必须赋值并计算所有节点。) 注释:请记住,TensorFlow首先构建一个计算图(在所谓的构造阶段),但不会自动计算它。该库将两个步骤分开,以便使用不同的输入多次计算图形。...一旦它们有了值,就不会改变。例如,tf.placeholder可以包含要用于训练神经网络的数据集,一旦赋值,它就不会在计算阶段发生变化。...tf.Variable可以包含神经网络的权重,它们会在训练期间改变,以便为特定问题找到最佳值。最后,tf.constant永远不会改变。...更好的方法是在计算图中添加一个节点,以便使用如下代码初始化在图中定义的所有变量: init = tf.global_variables_initializer() 然后再次创建并运行会话,并在计算z之前运行此节点...注释:在TensorFlow中,可能会发生同一段代码运行多次,并且最终会得到一个包含同一节点的多个副本的计算图。

    94120

    TensorFlow是什么?怎么用?终于有人讲明白了

    (请记住,要计算结果,必须赋值并计算所有节点。) 注释:请记住,TensorFlow首先构建一个计算图(在所谓的构造阶段),但不会自动计算它。该库将两个步骤分开,以便使用不同的输入多次计算图形。...一旦它们有了值,就不会改变。例如,tf.placeholder可以包含要用于训练神经网络的数据集,一旦赋值,它就不会在计算阶段发生变化。...tf.Variable可以包含神经网络的权重,它们会在训练期间改变,以便为特定问题找到最佳值。最后,tf.constant永远不会改变。...更好的方法是在计算图中添加一个节点,以便使用如下代码初始化在图中定义的所有变量: init = tf.global_variables_initializer() 然后再次创建并运行会话,并在计算z之前运行此节点...注释:在TensorFlow中,可能会发生同一段代码运行多次,并且最终会得到一个包含同一节点的多个副本的计算图。

    97810

    TensorFlow模型持久化~模型加载

    关于全局变量初始化的说明: 我们知道sess.run(tf.global_variables_initializer())这句话可以对全局变量进行初始化,在运行程序的时候不能不加,所以在保存模型的时候,...下面看一下,到底sess.run(tf.global_variables_initializer())此时是没有作用还是起了作用但是被取代了: ?...也就是变量名称a找到对应的value值,也就是变量值,然后将此时的变量值覆盖掉原来变量值,也就是用1.0替换掉了0.0; 通过上面的分析,保存的文件中存的是('a',1.0)和('b',2.0),那么现在我改变当前计算图的变量名称代码如下...add_model.ckpt.index两个文件在起作用,其实不是,我们可以把add_model.ckpt.data-00000-of-00001和add_model.ckpt.index两个文件删除,会发现还是能够继续执行程序得到结果...为什么也能获取数据,其实这个文件中记录的不仅仅是计算图这一个结构还有节点的信息以及运行计算图中节点所需要的元数据。

    76000

    Tensorflow中k.gradients()和tf.stop_gradient()用法说明

    (rounded – xx) 这代码最终调用位置在tensoflow.python.ops.gen_array_ops.stop_gradient(input, name=None),关于这段代码为什么这样写的意义在文末给出...tf.stop_gradient()理解】 在tf.gradients()参数中存在stop_gradients,这是一个List,list中的元素是tensorflow graph中的op,一旦进入这个list,将不会被计算梯度...,更重要的是,在该op之后的BP计算都不会运行。...a = tf.constant(0.) b = 2 * a c = a + b g = tf.gradients(c, [a, b]) with tf.Session() as sess: tf.global_variables_initializer...().run() print(sess.run(gradients)) #因为梯度从另外地方传回,所以输出 [1.0, 1.0] 【答案】 开始提出的问题,为什么存在那段代码: t = g(x)

    2.4K40
    领券