当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数。那么,它到底做了些什么?

一步步看源代码:(代码在后面)

global_variables_initializer 返回一个用来初始化 计算图中 所有global variable的 op。
这个op 到底是啥,还不清楚。
函数中调用了 variable_initializer() 和 global_variables()
global_variables() 返回一个 Variable list ,里面保存的是 gloabal variables。
variable_initializer() 将 Variable list 中的所有 Variable 取出来,将其 variable.initializer 属性做成一个 op group。
然后看 Variable 类的源码可以发现, variable.initializer 就是一个 assign op。
所以: sess.run(tf.global_variables_initializer()) 就是 run了 所有global Variable 的 assign op,这就是初始化参数的本来面目。

def global_variables_initializer():
"""Returns an Op that initializes global variables.
Returns:
An Op that initializes global variables in the graph.
"""
return variables_initializer(global_variables())

def global_variables():
"""Returns global variables.
Returns:
A list of `Variable` objects.
"""
return ops.get_collection(ops.GraphKeys.GLOBAL_VARIABLES)

def variables_initializer(var_list, name="init"):
"""Returns an Op that initializes a list of variables.
Args:
var_list: List of `Variable` objects to initialize.
name: Optional name for the returned operation.

Returns:
An Op that run the initializers of all the specified variables.
"""
if var_list:
return control_flow_ops.group(*[v.initializer for v in var_list], name=name)
return control_flow_ops.no_op(name=name)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Variable(object):
def _init_from_args(self, ...):
self._initializer_op = state_ops.assign(
self._variable, self._initial_value,
validate_shape=validate_shape).op
@property
def initializer(self):
"""The initializer operation for this variable."""
return self._initializer_op
---------------------
作者:ke1th
来源:CSDN
原文:https://blog.csdn.net/u012436149/article/details/78291545
版权声明:本文为博主原创文章,转载请附上博文链接!

tensorflow学习笔记(四十五):sess.run(tf.global_variables_initializer()) 做了什么?相关推荐

  1. sess.run(tf.global_variables_initializer()) 做了什么?

    当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数.那么,它到 ...

  2. sess.run(tf.global_variables_initializer()) 做了什么

    当我们训练自己的神经网络的时候,都会加上一句sess.run(tf.global_variables_initializer()),官方解释是初始化模型参数.那么它到底做了些什么? global_va ...

  3. TensorFlow学习笔记(十四)TensorFLow 用mnist数据做classification

    之前的例子,给的都是tf来做regression,也就是回归问题,现在用tf来做一个classification的处理,也就是分类问题. 这里用的数据集是mnist数据. 代码: "&quo ...

  4. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  5. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  6. JavaScript学习笔记(十五)

    JavaScript学习笔记(十五) 事件 事件是DOM(文档对象模型)的一部分.事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别. 一.事件流 1.冒泡型事件 IE上的解决方案就是 ...

  7. OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

    OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D() 一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式. ...

  8. MATLAB学习笔记(十五)

    MATLAB学习笔记(十五) 一.非线性方程求解与函数极值计算 1.1 非线性方程数值求解 1.2 函数极值的计算 1.2.1 无约束最优化问题 1.2.2 有约束最优化问题 一.非线性方程求解与函数 ...

  9. 学习笔记(十五)——镜像的知识点与注意事项

    学习笔记(十五)--镜像的知识点与注意事项 一.基础知识 1.SQL Server镜像只有两种模式:高安全模式和高性能模式.两种模式的主要区别在于在事务提交后的操作. 在高性能模式下,主体服务器不需要 ...

最新文章

  1. 路由网关--spring cloud zuul
  2. java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告
  3. NTU 课程笔记: CV6422 regression
  4. 使用LocalTestServer对HTTP调用进行单元测试
  5. [ ZJOI 2012 ] 灾难
  6. Java 面向对象的设计思维
  7. OpenSSL的托管项目
  8. nodejs cluster_NodeJS 极简教程 lt;1gt; NodeJS 特点 amp; 使用场景
  9. html语义化标签_5个你可能不知道的html5语义化标签
  10. python2与pyrhon3的区别,python—文件操作,函数练习题
  11. dll的基址与对应的lib文件
  12. AIoT助力文旅产业,2020年5A景区数字化发展指数报告
  13. windowsxp最新版本_9102 年还用 Windows XP 是怎样的体验?
  14. *Unity程序报错“缺少根元素msbuild\current\bin\microsoft.common.currentversion.targets“
  15. 会计中阿拉伯数字变数字繁体大写
  16. Right-BICEP要求设计四则运算2
  17. 高考还有几天c语言作业,高考考几天
  18. 看我解决Linux下的OTG切换问题
  19. R语言ggsurv生存曲线一页多图的实现
  20. win7系统怎么打开nvidia控制面板,有什么方法

热门文章

  1. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理
  2. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
  3. 2022-2028年中国塑料鞋行业市场发展调研及未来前景规划报告
  4. SpringCloud Alibaba微服务实战(三) - Nacos服务创建消费者(Feign)
  5. 掩码语言模型(Masked Language Model)mlm
  6. SpringBoot整合Shiro安全框架完整实现
  7. 稀疏自编码器及TensorFlow实现
  8. 用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用
  9. 半导体群聚、虚拟垂直、整合
  10. CPU消耗,跟踪定位理论与实践