如何使用 TensorFlow 每次训练 CNN(MNIST 数据集)时获得相同的损失值?

2024-04-18

我想对卷积神经网络(使用 MNIST 数据集和 TensorFlow)进行几次新的训练,并且每次都获得相同的准确度结果。为了得到这个我:

  1. 保存未经训练的仅初始化的(global_variables_initializer)网络
  2. 每次我开始训练这个未经训练的网络时都加载
  3. 设置mnist.train.next_batch shuffle=False,这样图像序列每次都是相同的

我之前已经使用前馈网络(3 个隐藏层)完成了此操作,每次运行此 python 脚本时,我都会得到完全相同的损失和准确性值。

But,将模型从前馈网络更改为卷积神经网络的“相同”脚本使得每次运行脚本时损失/准确性略有不同。

因此,我将批量大小减少到 1,并查找每个图像的损失值,发现前两个图像始终具有相同的损失值,但其余的每次运行脚本时都会略有不同。

知道为什么吗?


感谢 @AlexandrePassos 评论,我在 TensorFlow 中搜索确定性/非确定性操作。

因此,目前所有使用 CUDA 原子并在 GPU 上运行的操作都是不确定的。
请参阅此链接:https://github.com/tensorflow/tensorflow/issues/3103 https://github.com/tensorflow/tensorflow/issues/3103

如果有人知道在 GPU 上使用 TensorFlow 和确定性操作实现 CNN 的方法,请:如何在 GPU 上的 TensorFlow 中创建具有确定性操作的 CNN? https://stackoverflow.com/questions/44800055/how-to-create-a-cnn-with-deterministic-operations-in-tensorflow-on-a-gpu

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 TensorFlow 每次训练 CNN(MNIST 数据集)时获得相同的损失值? 的相关文章

随机推荐

  • 扩展C++字符串成员函数

    我需要进行不区分大小写的查找 并发现以下代码可以解决问题 bool ci equal char ch1 char ch2 return toupper unsigned char ch1 toupper unsigned char ch2
  • AngularJS 和休息服务

    我最近开始尝试AngularJS 我正在构建一个简单的 html5 应用程序来更新MySQL数据库 索引 html
  • 获取 LinkedIn 分享计数 JSONP

    使用 LinkedIn API 我想获取 URL 的分享计数 https www linkedin com countserv count share url http www linkedin com format json 但这给了我一
  • 从Java调用Android WebView中的jQuery函数?

    我正在尝试调用在 html 中定义的 javascript 函数 喜欢 WebView loadUrl javascript hoge 我可以调用非 jQuery 函数 但无法调用我在 document ready function jQu
  • IllegalStateException:getAttribute:会话已失效

    我的第一个 JSF IceFaces 版本 1 8 2 应用程序在 JBoss 5 1 0 上运行时遇到问题 一段时间后我收到一个异常 告诉我有关会话问题 这很奇怪 因为我根本不在我的代码中使用会话 以下日志显示由于此错误 来自 JBoss
  • 指向动态分配的 boost multi_array 中的类的指针,未编译

    我对 C 和 Boost 还很陌生 我想要 world 类的对象有一个名为 chunk 类型为 octreenode 的数组 以前我有一个普通的一维数组 这工作得很好 现在我尝试转向使用具有 Boost 的 multi array 功能的
  • 使用 PHP 从多选下拉列表中获取数据并插入到 MySQL 中

    我的数据库中有一个使用以下命令创建的日期列表SET数据类型 SET Mon Tue Wed Thr Fri Sat Sun 我希望用户能够使用多选下拉列表选择多天放入数据库
  • 如何在 WPF 中按名称查找样式触发器嵌入元素?

    首先 问题的核心 如果通过样式触发器将一个元素指定为 ContentControl 的内容 我似乎无法按名称找到它 现在 了解更多详细信息 我有一个面板 其布局和功能根据其数据上下文而有很大差异 这是来自错误库的错误 当该错误为空时 它是一
  • 根据合并请求触发 gitlab-ci 中的作业

    是否可以仅根据合并请求从 gitlab ci 运行作业 现在 我们有一个包含大量测试的大型整体项目 但我们只想在合并到分支 master 之前运行测试 嗯 目前还没有内置 但是您自己也不是不可能 Gitlab 允许trigger https
  • 支持 __getitem__ 的类的 Python 类型提示

    我想向一个函数添加类型提示 该函数将接受带有 getitem 方法 例如 在 def my function hasitems locator hasitems locator 我不想限制hasitems成为特定类型 例如list or d
  • 如何将查询字符串传递给backbone.js 路由

    我正在使用 Backbone js 和 jQuery mobile jQuery 移动路由被禁用 我仅将库用于 UI 除了选择页面转换之外 我一切正常 我需要将页面转换 向上切片 淡入淡出 向下滑动 传递到主干路由器 因为转换根据用户来自的
  • 获取数据工厂中单个管道执行的成本

    我正在考虑使用 Azure 数据工厂 V2 进行集成导入 并想知道是否有办法跟踪正在运行的各个管道的成本 例如 如果我有 3 个管道 代表 3 个不同的集成 是否有办法查看每个管道产生的成本 还有一种方法可以近乎实时地执行此操作 以便在一个
  • 我们应该使用 setTargetFragment() 吗?我认为 Fragments 不应该互相通信

    Android开发者教程建议我使用片段的宿主活动来传递数据等等 那么为什么有一个设置 获取目标片段方法呢 到目前为止 我的应用程序包含一个主机活动和一个片段 其中有一个启动按钮DialogFragment 其中有一个按钮可以启动另一个Dia
  • Pandas 会影响 Rapidfuzz 匹配的结果吗?

    我正在碰壁 如果我在 pandas 数据帧内运行 Rapidfuzz 以及单独运行它 它会为字符串分数相似性提供不同的结果吗 为什么地址相似度 2 和最后一行的结果不同 from rapidfuzz import process utils
  • 在 Android 中使用带有自定义标签的块模板引擎

    我正在尝试在 android 中使用 chunk 我需要这样的东西 Suppose 以下是标签 tags 世界 世界 c 丹尼斯 里奇 苹果 工作 Input HELLO world C 是由 c 而java是由 java 编写的 hola
  • 在 R 中安装插入符包时出现依赖问题

    我正在尝试安装 R 包caret 这给了我ERROR dependencies ggplot2 reshape2 BradleyTerry2 are not available for package caret 我尝试单独安装其中的每一个
  • 如何在SCSS中获取数组的$values?

    我正在制作自己的插件 通过编写单个插件自动进行多个媒体查询 includeSCSS 中的行 所以当我输入时 include medias bp values width 输出应该是这样的 media all and min width 56
  • unix select() 调用:如何组合 fd_sets?

    我正在用 C 语言为 Linux 编写一个应用程序 它使用 2 个独立的第三方库 这两个库都是异步的并使用 select 他们还提供了一个 API 可以返回他们等待的文件描述符 我的目的是将它们传递给我自己的 select 然后在设置了自己
  • toDF 问题,值 toDF 不是 org.apache.spark.rdd.RDD 的成员

    我已附加错误 value toDF is not a member of org apache spark rdd RDD 的代码片段 我正在使用 scala 2 11 8 和 Spark 2 0 0 您能帮我解决 API toDF 的这个
  • 如何使用 TensorFlow 每次训练 CNN(MNIST 数据集)时获得相同的损失值?

    我想对卷积神经网络 使用 MNIST 数据集和 TensorFlow 进行几次新的训练 并且每次都获得相同的准确度结果 为了得到这个我 保存未经训练的仅初始化的 global variables initializer 网络 每次我开始训练