Tensorflow 神经网络预测始终相同

2024-02-11

我有一个深度 CNN,可以预测 3d 图像中每个像素的“0”和“2”之间的标签。我已经在每个像素都标记为“1”的图像上训练了模型。因此,在测试模型时,我相信每个预测都应该是“1”。相反,模型仅预测“0”。

这是整个模型的存储库:https://github.com/dhasl002/Research-DeepLearning https://github.com/dhasl002/Research-DeepLearning.

由于代码将近 300 行,我将只包含下面的相关代码。

 x = tf.placeholder(tf.float32, shape=[None, 7168])
 y_ = tf.placeholder(tf.float32, shape=[None, 7168, 3])

 W_final = weight_variable([7168,7168,3])
 b_final = bias_variable([7168,3])

 #"final" is the result of the many convolutions
 final_conv = tf.tensordot(final, W_final, axes=[[1], [1]]) + b_final

 cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=final_conv))
 train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
 correct_prediction = tf.equal(tf.argmax(final_conv, 2), tf.argmax(y_, 2))
 accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

 #a is a threshold associate with each pixel, b is the label of each pixel
 a = np.zeros((1,7168),dtype = float)
 b = np.zeros((1,7168, 3), dtype = float)

 #this is a little simplified for clarity of reader
 #TRAINING
 for line in inputFile:
   thresh, label = line.strip().split(",")
   a[0][it] = thresh
   b[0][it][label] = 1
 train_step.run(feed_dict={x: a, y_: b, keep_prob: .5})

 #TESTING
 for line in inputFile:
   thresh, label = line.strip().split(",")
   a[0][it] = thresh
   b[0][it][label] = 1
 temp = sess.run(tf.argmax(final_conv,2), feed_dict={x: a})

我相信最后一行的“temp”应该包含正确的预测(7168 个标签 - 每个像素一个)。当“temp”实际上只在带有“1”标签的图像上进行训练时,为什么“temp”总是导致所有“0”标签?


您提供的数据不仅包含1标签,但偶尔2也(您可以浏览文本文件或简单地打印label值来查看此)。它不仅与训练常量函数的想法相矛盾,而且还破坏了单热编码,从而破坏了整个算法。

这是您的脚本的摘录:

a = np.zeros((1,N*M*P),dtype = float)
b = np.zeros((1,N*M*P, 3), dtype = float)
[...]

with tf.Session() as sess:
   sess.run(tf.global_variables_initializer())
   parent = "..."
   with open(parent) as inf1:
     next(inf1)
     for line5 in inf1:
       line1, maxNum = line5.strip().split(",")
       path = "..."
       num = 0
       while num < maxNum:
         it = 0
         with open(path + str(num) + ".txt") as inf:
           next(inf)
           num = num + 1
           for line in inf:
             [...]
             a[0][it] = thresh
             b[0][it][label] = 1
             it = it + 1

看看你的代码,b应该是一个one-hot向量。但请注意,仅在定义变量时才将其归零。之后它被分配给1在不同的指数。后来的迭代while循环更新相同b数组,因此它最终包含几个1在批次的后面几行中。这交叉熵损失 https://www.tensorflow.org/api_docs/python/tf/nn/softmax_cross_entropy_with_logits期望一个有效的概率分布,因此对于您的数据,其输出变得完全没有意义:

每一行labels[i]必须是有效的概率分布。

Summary:数据处理的方式过于复杂,因此很容易出错。尝试更简单地组织输入文件,以便可以将其读入 numpy 数组(或 pandas 数据帧)并馈送到会话中。

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

Tensorflow 神经网络预测始终相同 的相关文章

  • 检测到通过 ChromeDriver 启动的 Chrome 浏览器

    我正在尝试在 python 中使用 selenium chromedriver 来访问 www mouser co uk 网站 然而 从第一次拍摄开始 它就被检测为机器人 有人对此有解释吗 此后我使用的代码 options Options
  • 如何使用 colorchecker 在 opencv 中进行颜色校准?

    我有数码相机获取的色彩检查器图像 我如何使用它来使用 opencv 校准图像 按照以下颜色检查器图像操作 您是想问如何进行颜色校准或如何使用 OpenCV 进行校准 为了进行颜色校准 您可以使用校准板的最后一行 灰色调 以下是您应该逐步进行
  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • Pandas dataframe:每批行的操作

    我有一个熊猫数据框df我想计算每批行的一些统计信息 例如 假设我有一个batch size 200000 对于每批batch sizerows 我想要一列的唯一值的数量ID我的数据框 我怎样才能做这样的事情呢 这是我想要的一个例子 prin
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time
  • 小部件之间的自定义信号

    尝试将信号从一个 gtk EventBox 子级发送到另一个 在 init HeadMode 第 75 行 上出现错误 类型错误 未知信号名称 消息发送 why usr bin env python coding utf8 import p
  • 使用 Python 计算 Spark 中成对 (K,V) RDD 中每个 KEY 的平均值

    我想与 Python 共享这个特定的 Apache Spark 解决方案 因为它的文档非常贫乏 我想通过 KEY 计算 K V 对 存储在 Pairwise RDD 中 的平均值 示例数据如下所示 gt gt gt rdd1 take 10
  • 如何在 Django 中使用基于类的视图创建注册视图?

    当我开始使用 Django 时 我几乎使用 FBV 基于函数的视图 来处理所有事情 包括注册新用户 但当我更深入地研究项目时 我意识到基于类的视图通常更适合大型项目 因为它们更干净且可维护 但这并不是说 FBV 不是 无论如何 我将整个项目
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • Pandas 堆积条形图中元素的排序

    我正在尝试绘制有关某个地区 5 个地区的家庭在特定行业赚取的收入比例的信息 我使用 groupby 按地区对数据框中的信息进行排序 df df orig groupby District Portion of income value co
  • GradientTape 根据损失函数是否被 tf.function 修饰给出不同的梯度

    我发现计算的梯度取决于 tf function 装饰器的相互作用 如下所示 首先 我为二元分类创建一些合成数据 tf random set seed 42 np random seed 42 x tf random normal 2 1 y
  • 为什么我应该使用 WSGI?

    使用 mod python 一段时间了 我读了越来越多关于 WSGI 有多好的文章 但没有真正理解为什么 那么我为什么要切换到它呢 有什么好处 这很难吗 学习曲线值得吗 为了用 Python 开发复杂的 Web 应用程序 您可能会使用更全面
  • 在 Spyder 的变量资源管理器中查看局部变量

    我是 python 新手 正在使用 Spyder 的 IDE 我欣赏它的一项功能是它的变量资源管理器 然而 根据一些研究 我发现它只显示全局变量 我找到的解决方法是使用检查模块 import inspect local vars def m
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • falcon,AttributeError:“API”对象没有属性“create”

    我正在尝试测试我的猎鹰路线 但测试总是失败 而且看起来我把所有事情都做对了 my app py import falcon from resources static import StaticResource api falcon API
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • 字符串列表,获取n个元素的公共子串,Python

    我的问题可能类似于this https stackoverflow com questions 37514193 count the number of occurrences of n length not given string in
  • 从列表python的单个列表中删除子列表

    我已经经历过从列表列表中删除子列表 https stackoverflow com questions 47209786 removing sublists from a list of lists 但当我为我的数据集扩展它时 它不适用于我
  • 通过 Web 界面执行 python 单元测试

    是否可以通过 Web 界面执行单元测试 如果可以 如何执行 EDIT 现在我想要结果 对于测试 我希望它们是自动化的 可能每次我对代码进行更改时 抱歉我忘了说得更清楚 EDIT 这个答案此时已经过时了 Use Jenkins https j
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo

随机推荐

  • Python中的时间序列分解函数

    时间序列分解是一种将时间序列数据集分成三个 或更多 分量的方法 例如 x t s t m t e t where t is the time coordinate x is the data s is the seasonal compon
  • firebase 函数 Puppeteer 找不到 Chromium GCP

    我已经在谷歌云上使用GCP很长时间了 我想运行一个使用Puppeteer的云函数 但不幸的是 我收到以下错误 未处理的错误错误 找不到 Chromium 修订版 1069273 如果出现以下任一情况 就会发生这种情况 您在运行脚本之前没有安
  • 比较 JPA Criteria API 中的日期实体

    使用 JPA 2 和 EclipseLink 实现 我正在尝试构建一个动态查询 它应该为我带来一些在给定日期之后保留的记录 CriteriaBuilder builder em getCriteriaBuilder CriteriaQuer
  • 如何为 WongKinYiu/Yolov7 姿势估计准备自定义关键点数据集?

    如何准备自定义关键点数据集黄建耀 yolov7 https github com WongKinYiu yolov7 pose estimation 关键点格式描述如下 https cocodataset org format data h
  • 气流中任务的粒度

    对于一项任务 有许多辅助任务 从文件 数据库获取 保存属性 验证 审核 这些辅助方法并不耗时 一个样本 DAG 流 fetch data gt gt actual processing gt gt validation gt gt save
  • Paperclip:如何在 Rails 控制台中存储图片?

    我尝试将本地图像存储在 Rails 控制台中 因为我的本地存储中有很多图片 我使用爬虫下载大量图片 所以我想将它们存储到数据库中 利用回形针来完成一些图像工作 例如缩略图等 如果我使用网页将新图片一张一张保存到数据库中 会花费很多时间 所以
  • 使用 Rails 和 ActiveMerchant 进行定期计费:最佳实践、陷阱、陷阱?

    我们正在准备发布一个大型 Web 应用程序 该应用程序已经开发了一年 我们即将开始集成 ActiveMerchant 来处理该服务的经常性订阅费用 我正在寻找有关考虑我们的要求 如下所列 的最佳实践的任何建议 以及针对常见陷阱或我应该特别考
  • 如何使用 jQuery 将一个 HTML 块替换为另一个 HTML 块

    我想替换以下 html 块 table class t12PageBody cellpadding 0 cellspacing 0 width 100 tr td REGION POSITION 01 td tr table table w
  • 更新插入交易

    我将 Spring 与 PostgreSQL 结合使用 并尝试使用如下代码执行某种 UPSERT jt update delete from A where id 1 jt update insert into A id value val
  • 解析文本区域中的换行符而不允许所有 html 标签

    我有一个文本区域字段 用户可以在其中输入内容 当涉及到在页面上显示他们的条目时 rails 返回 n对于每个换行符 在页面上的 html 中显示为根本没有换行符 据我所知 解决这个问题的标准方法是 gsub命令 替换 n with br 然
  • C# 如何注销 Citrix XenApp 用户会话?

    由于 Citrix 关于其 SDK 的文档绝对为零 因此我在此记录这一点 使用 C 如何以编程方式注销用户会话 使用下面的简单方法通过解析会话并注销单个会话来注销用户会话 using Citrix Common Sdk using Citr
  • Qt/Qml 和方法重载

    刚刚在 Qml 中调用重载的 C 方法时遇到了 Qt 框架的奇怪行为 并试图了解其背后的原因 假设我有一个QList
  • 带星号参数和不带星号参数的调用函数的区别

    我知道 Python 函数定义中星号的含义 不过 我经常看到星号用于调用带有如下参数的函数 def foo args kwargs first func args kwargs second func args kwargs 第一个和第二个
  • 可可印刷

    我已经制作了一个非常适合 A4 页面的视图 现在我想打印它 请注意 我没有使用drawRect或类似的东西 只是一个带有子视图和文本标签的普通视图 我的问题是 我对该视图有一些视图 我使用图层在项目周围放置背景颜色和圆角矩形 子视图不会打印
  • JavaScript 依赖列表

    我有一个需要找出依赖关系的元素列表 I have a b d d c e a取决于b and d and d on c and e 有没有一种方法可以巧妙地构建依赖关系 输出应该 可能 是 b c e d a 克里斯蒂安 假设您想要一个元素
  • 在shell脚本中设置环境变量/在Java程序中访问

    我想在Ubuntu 10 04中使用shell脚本设置环境并想在java程序中访问 我写了这样的shell脚本 bin sh export JAVA home ubuntu echo Variable JAVA 我的java程序是 impo
  • .NET Threadpool工作线程和异步IO线程

    好的 据我了解 NET 线程池维护着许多后台线程 准备用于某种任务 Get SetMinThreads 和 Get SetMaxThreads 方法包含两个可以返回或调整的参数 根据MSDN http msdn microsoft com
  • ASP.net MVC 3 - 在 OnActionExecuting 中获取发布的 JSON 数据

    我使用 jquery 中的 ajax 方法将数据发布到 actin 并使用数据字段传递 JSON 字符串化值来指定要发布的数据 这些已发布到操作 但我无法将它们放入 OnActionExecuting 操作过滤器中 它们不是 Forms 或
  • Android Studio Kotlin 出现 dataSnapshot.getValue 错误

    我在最近的项目中将 java 文件转换为 kotlin 文件 问题是我遇到了以下代码错误 val map dataSnapshot getValue
  • Tensorflow 神经网络预测始终相同

    我有一个深度 CNN 可以预测 3d 图像中每个像素的 0 和 2 之间的标签 我已经在每个像素都标记为 1 的图像上训练了模型 因此 在测试模型时 我相信每个预测都应该是 1 相反 模型仅预测 0 这是整个模型的存储库 https git