TensorFlow基础概念(会话、常量、变量、占位符、tensorboard可视化)

it2022-05-05  144

1.TensorFlow运行模型–会话(session) 会话拥有并管理TensorFlow程序运行时的所有资源 当所有计算完成之后需要关闭会话帮助系统回收资源 会话的模式1 需要明确调用Session.close()函数来关闭会话并释放资源 当程序因为异常退出时,关闭会话函数可能就不会被执行从而导致资源泄露 利用try-except可以保证程序出现异常时会话正常关掉 会话的模式2 指定默认的会话 TensorFlow不会自动生成默认的会话,需要手动指定 当默认的会话被指定之后可以通过tf.Tensor.eval函数来计算一个张量的取值 在交互式环境下,python脚本或者Jupyter编辑器下,通过设置默认会话来获取张量的取值更加方便 tf.InteractiveSession使用这个函数会自动将生成的会话注册为默认会话 2.常量(constant) 在运行过程中值不会改变的单元,在TensorFlow中无序进行初始化操作 创建语句:constant_name=tf.constant(value) 3.变量(Variable) 在运行过程中值会改变的单元,在TensorFlow中需进行初始化操作 创建语句:name_variable=tf.Variable(value,name) 注意:V是大写字母 个别变量初始化: init_op=name_variable.initializer() 所有变量初始化: init_op=tf.global_variables_initializer() 变量赋值

与传统的编程语言不同,TensorFlow中的变量定义后,一般无需人工赋值,系统会根据算法模型,训练优化过程中自动调整变量对应的数值。比如在机器学习模型训练时,权重Weight变量w,经过多次迭代,会自动调整特殊情况需要人工更新的,可用变量赋值语句 变量更新语句: update_op=tf.assign(variable_to_be_updated,new_value) 4.占位符(placeholder)TensorFlow中的Variable变量类型,在定义时需要初始化,但有些变量定义时并不知道其数值,只有当真正开始运行程序时,才由外部输入,比如训练数据,这时候需要用到占位符tf.placeholder占位符,是TensorFlow中特有的一种数据结构,类似动态变量,函数的参数、或者C语言或者Python语言中格式化输出时的“%”占位符TensorFlow占位符Placeholder,先定义一种数据,其参数为数据的type和shape 占位符Placeholder的函数接口如下: tf.placeholder(dtype,shape=None,name=name) Feed提交数据 如果构建了一个包含placeholder操作的计算图,当在session中调用run方法时,placeholder占用的变量必须通过feed_dict参数传递进去,否则报错 多个操作可以通过一次Feed完成执行 5.tensorboard可视化tensorboard是TensorFlow的可视化工具通过TensorFlow程序运行过程中输出的日志文件可视化TensorFlow程序的运行状态tensorboard和TensorFlow程序泡在不同的进程中 启动TensorBoard TensorBoard不需要额外安装,在TensorFlow安装时已自动完成 在Anaconda Prompt中先进入日志存放的目录(非常重要!!!),再运行tensorboard,并将日志的地址指向程序日志输出的地址 命令:tensorboard --logdir=/path/log 注意:启动服务的端口默认为6006;使用–port 参数可以改变启动服务的窗口 生成的日志文件 打开tensorboard 通常将网址输入google chrome浏览器即可看到张量图表。但是也存在输入网址,返回网址拒绝我的请求,只需要在目录后加上“–host=127.0.0.1”即可 tensorboard可视化结果 tensorboard常用API

最新回复(0)