热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Tensorflow——使用tf。总结1.2估计器API-Tensorflow-Usingtf.summarywith1.2EstimatorAPI

ImtryingtoaddsomeTensorBoardloggingtoamodelwhichusesthenewtf.estimatorAPI.我正在尝试向使用

I'm trying to add some TensorBoard logging to a model which uses the new tf.estimator API.

我正在尝试向使用新的tf.estimator API的模型添加一些TensorBoard日志记录。

I have a hook set up like so:

我有一个类似这样的挂钩:

summary_hook = tf.train.SummarySaverHook(
    save_secs=2,
    output_dir=MODEL_DIR,
    summary_op=tf.summary.merge_all())

# ...

classifier.train(
    input_fn,
    steps=1000,
    hooks=[summary_hook])

In my model_fn, I am also creating a summary -

在我的model_fn中,我还创建了一个摘要。

def model_fn(features, labels, mode):
    # ... model stuff, calculate the value of loss
    tf.summary.scalar("loss", loss)
    # ...

However, when I run this code, I get the following error from the summary_hook: Exactly one of scaffold or summary_op must be provided. This is probably because tf.summary.merge_all() is not finding any summaries and is returning None, despite the tf.summary.scalar I declared in the model_fn.

但是,当我运行这段代码时,我从summary hook中得到了以下错误:必须提供一个scaffold或summary_op。这可能是因为tf.summary.merge_all()没有找到任何摘要,也没有返回任何摘要,尽管有tf.summary。我在model_fn中声明的标量。

Any ideas why this wouldn't be working?

你知道为什么这行不通吗?

3 个解决方案

#1


4  

Just for whoever have this question in the future, the selected solution doesn't work for me (see my comments in the selected solution).

只是对于将来有这个问题的人来说,所选的解决方案对我不起作用(请参阅我在所选解决方案中的评论)。

Actually, with TF 1.2 Estimator API, one doesn't need to have summary_hook. I just have tf.summary.scalar("loss", loss) in the model_fn, and run the code without summary_hook. The loss is recorded and shown in the tensorboard. I'm not sure if TF API was changed after this and similar questions.

实际上,使用TF 1.2 Estimator API,不需要使用summary_hook。我只有tf.summary。在model_fn中,标量(“丢失”,丢失),并运行代码,而不使用摘要挂钩。损失被记录并显示在租船板上。我不确定TF API是否在这个问题和类似的问题之后被修改。

#2


5  

Use tf.train.Scaffold() and pass tf.merge_all as following

使用tf.train. scaffold()并通过tf。merge_all如下

summary_hook = tf.train.SummarySaverHook(
    save_secs=2,
    output_dir=MODEL_DIR,
    scaffold=tf.train.Scaffold(summary_op=tf.summary.merge_all()))

#3


0  

with Tensorflow ver-r1.3

与Tensorflow ver-r1.3

Add your summary ops in your estimator model_fn

在估计器model_fn中添加汇总操作

example :

例子:

tf.summary.histogram(tensorOp.name, tensorOp)

If you feel writing summaries may consume time and space, you can control the writing frequency of summaries, in your Estimator run_config

如果您认为编写摘要可能会消耗时间和空间,那么可以在估计器run_config中控制编写摘要的频率

run_cOnfig= tf.contrib.learn.RunConfig()
run_cOnfig= run_config.replace(model_dir=FLAGS.model_dir)
run_cOnfig= run_config.replace(save_summary_steps=150)

Note: this will affect the overall summary writer frequency for TensorBoard logging, of your estimator (tf.estimator.Estimator)

注意:这将影响您的估计器(tf.estimator.Estimator)的TensorBoard日志记录的总编写者频率。


推荐阅读
  • 在Python多进程编程中,`multiprocessing`模块是不可或缺的工具。本文详细探讨了该模块在多进程管理中的核心原理,并通过实际代码示例进行了深入分析。文章不仅总结了常见的多进程编程技巧,还提供了解决常见问题的实用方法,帮助读者更好地理解和应用多进程编程技术。 ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 本文全面解析了 Python 中字符串处理的常用操作与技巧。首先介绍了如何通过 `s.strip()`, `s.lstrip()` 和 `s.rstrip()` 方法去除字符串中的空格和特殊符号。接着,详细讲解了字符串复制的方法,包括使用 `sStr1 = sStr2` 进行简单的赋值复制。此外,还探讨了字符串连接、分割、替换等高级操作,并提供了丰富的示例代码,帮助读者深入理解和掌握这些实用技巧。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 利用 Zend Framework 实现高效邮件发送功能 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
author-avatar
穿脚蹼的鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有