Tensorflow 2.5 model.evaluate报错Invalid argument: required broadcastable shapes at loc(unknown)

Tensorflow 2.5使用model.evaluate进行模型评估时报错Invalid argument: required broadcastable shapes at loc unknown

  • 1.软件环境⚙️
  • 2.问题描述🔍
  • 3.解决方法🐡
  • 4.结果预览🤔

⚡插播一条老家自产的糖心苹果,多个品种,欢迎选购!有问题随时私信我⚡:🍎🍎来自雪域高原的馈赠——海拔2000米的大凉山高原生态糖心苹果,欢迎选购!!🍎🍎
在这里插入图片描述

大凉山高原生态糖心苹果

1.软件环境⚙️

Windows10 教育版64位
Python 3.6.3
Tensorflow-GPU 2.5.0
CUDA 11.1

2.问题描述🔍

我们在模型训练完时,都需要对模型的性能进行评估。而在Tensorflow.Keras中,往往通过.flow_from_directory函数读入本地的图片,然后使用model.evaluate对模型进行精度评估:

test_datagen = ImageDataGenerator(preprocessing_function=preprocessing_function)test_generator = test_datagen.flow_from_directory(test_dir,shuffle=False,target_size=(299,299),batch_size=32)print("================开始模型评估======================")
model_evaluation = model.evaluate(test_generator, verbose=1)

比如我们这边有一个评估数据集val-fewer-sample,该数据集中包含dogcat两类:
在这里插入图片描述
这些样本已经被打上了正确的标签(即文件夹名),我们训练出来的分类器对这些样本进行预测,如果标签对得上,那么该图片预测正确。
如果你训练的时候使用的是softmax那么不会有问题,但二分类问题我更喜欢用sigmoid,这个时候,如果是Tensorflow 2.5,就会出现报错:

Invalid argument: required broadcastable shapes at loc(unknown)

2022-09-01 10:31:58.676170: W tensorflow/core/framework/op_kernel.cc:1755] Invalid argument: required broadcastable shapes at loc(unknown)
2022-09-01 10:31:58.676482: W tensorflow/core/framework/op_kernel.cc:1755] Invalid argument: required broadcastable shapes at loc(unknown)
2022-09-01 10:31:58.676653: W tensorflow/core/framework/op_kernel.cc:1755] Invalid argument: required broadcastable shapes at loc(unknown)
Traceback (most recent call last):File "<input>", line 1, in <module>File "C:\Program Files\JetBrains\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfilepydev_imports.execfile(filename, global_vars, local_vars)  # execute the scriptFile "C:\Program Files\JetBrains\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfileexec(compile(contents+"\n", file, 'exec'), glob, loc)File "E:/Code/Python/classification model evaluation/model_evaluation_sigmoid.py", line 71, in <module>model_evaluation = model.evaluate(test_generator, verbose=1, workers=4, return_dict=True)File "C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1489, in evaluatetmp_logs = self.test_function(iterator)File "C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\tensorflow\python\eager\def_function.py", line 889, in __call__result = self._call(*args, **kwds)File "C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\tensorflow\python\eager\def_function.py", line 957, in _callfiltered_flat_args, self._concrete_stateful_fn.captured_inputs)  # pylint: disable=protected-accessFile "C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\tensorflow\python\eager\function.py", line 1961, in _call_flatctx, args, cancellation_manager=cancellation_manager))File "C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\tensorflow\python\eager\function.py", line 596, in callctx=ctx)File "C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\tensorflow\python\eager\execute.py", line 60, in quick_executeinputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.(0) Invalid argument:  required broadcastable shapes at loc(unknown)[[node LogicalAnd (defined at E:/Code/Python/classification model evaluation/model_evaluation_sigmoid.py:71) ]][[assert_greater_equal_1/Assert/AssertGuard/else/_29/assert_greater_equal_1/Assert/AssertGuard/Assert/data_0/_65]](1) Invalid argument:  required broadcastable shapes at loc(unknown)[[node LogicalAnd (defined at E:/Code/Python/classification model evaluation/model_evaluation_sigmoid.py:71) ]]
0 successful operations.
0 derived errors ignored. [Op:__inference_test_function_5740]
Function call stack:
test_function -> test_function

可以看到,Tensorflow 报错原因是tensorshape不一致,这就很尴尬了,为什么softmax训练出来的模型可以正常评估,但是sigmoid训练出来的模型就报错呢?
在这里插入图片描述

3.解决方法🐡

经过查询,发现是因为.flow_from_directory中的class_mode参数的默认值是categorical,而我们使用的是sigmoid进行训练:

  def flow_from_directory(self,directory,target_size=(256, 256),color_mode='rgb',classes=None,class_mode='categorical',batch_size=32,shuffle=True,seed=None,save_to_dir=None,save_prefix='',save_format='png',follow_links=False,subset=None,interpolation='nearest'):"""Takes the path to a directory & generates batches of augmented data."""

因此需要将class_mode修改为binary才能用sigmoid适配,即:

test_generator = test_datagen.flow_from_directory(test_dir,shuffle=False,target_size=(299,299),batch_size=32)
# 修改为:
test_generator = test_datagen.flow_from_directory(test_dir,shuffle=False,target_size=(299,299),class_mode='binary',batch_size=32)

4.结果预览🤔

修改完class_mode之后,发现模型评估可以正常运行了:

Found 12226 images belonging to 2 classes.
================开始模型评估======================
2022-09-01 13:47:56.720307: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2)
2022-09-01 13:47:59.106484: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudnn64_8.dll
2022-09-01 13:48:00.179758: I tensorflow/stream_executor/cuda/cuda_dnn.cc:359] Loaded cuDNN version 8201
C:\Users\Anaconda3\envs\tf2.5\lib\site-packages\PIL\Image.py:976: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images"Palette images with Transparency expressed in bytes should be "
2022-09-01 13:48:02.140887: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublas64_11.dll
2022-09-01 13:48:02.827805: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublasLt64_11.dll42/192 [=====>........................] - ETA: 32s - loss: 0.5887 - accuracy: 0.9371 - precision: 0.8920 - recall: 0.9420


渣男!都看到这里了,还不赶紧点赞评论收藏走一波?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/48854.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐收藏!3.5万字图解 Pandas!

↓推荐关注↓ 大家好&#xff0c;在 Python 各个工具包中&#xff0c;最频繁使用的应该就是 Pandas 了。今天我以图解的方式给大家介绍 Pandas 中各种常用的操作&#xff0c;内容有点长&#xff0c;喜欢记得点赞、收藏、关注。 第一部分&#xff1a;Pandas 展示 请看下表: 它描…

ONLYOFFICE 文档 7.4 版本现已发布:新增绘图、雷达图、合并文档、另存为图片等功能

您现在可以使用我们最新版本的在线编辑器了&#xff0c;更新的功能包括&#xff1a;绘图、雷达图、合并文档、将某个对象或者整个文档/工作表保存为图片、更强大的编辑区域保护等等。继续阅读本文了解所有的更新。 在编辑器中绘图 尽情发挥创造力&#xff0c;使用画笔或荧光笔…

四十不惑-重头再来

四十不惑-重头再来 重装系统系统版本 卸载老毛桃自动安装的软件安装必备软件安装Docker DeskTop安装Docker Desktop后重启系统运行Power Shell切换环境重新运行PS DockerDesktop导入镜像启动DockeDesktop启动PS 新建容器搭建ChatGPT(pengzhile_pandora_latest_43f234c4e8a8)搭建…

大学生必备神器

大学生要掌握的办公软件因专业和工作需求而异&#xff0c;但是以下是一些普遍适用于大学生的办公软件&#xff0c;可以帮助提高学习和工作效率&#xff0c;今天就给大家推荐几款大学生常用的软件。 1.OneDrive 这是微软出品的云存储产品&#xff0c;与百度网盘有些类似&#…

北极九章CEO刘沂鑫:从自然语言一步直达数据洞察——数据驱动增长的新范式|量子位·视点分享回顾...

视点 发自 凹非寺量子位 | 公众号 QbitAI 今天&#xff0c;尽管人人都在谈论大数据&#xff0c;但数据实际价值和现有价值有巨大落差。 尽管企业采集和储存、计算数据的能力越来越强&#xff0c;但数据分析能力始终增长缓慢。据Forrester调研&#xff0c;约70%的企业数据从未被…

老胡的周刊(第089期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 MOSS[2] 来自复旦大学的开源工具增强型会话语…

从网站流量指标开始,CSDN 如何洞察运营效果异动?丨评测来了

最近&#xff0c;CSDN组织了一次《人人都能简单上手的指标平台》开箱测评活动&#xff0c;邀请了三位嘉宾&#xff0c;分别是 Kyligence 联合创始人兼 CTO 李扬、CSDN 战略合作总监闫辉、CSDN 开发云 CTO 冯丙见。三位嘉宾根据真实的需求场景&#xff0c;详细评估了指标平台的最…

跟我看 Microsoft Build 2023

又是一年一度的 Microsoft Build 了&#xff0c;你有和我一样熬夜看了吗&#xff1f;如果没有&#xff0c;那么你就错过了一场精彩的技术盛宴。本次的 Microsoft Build &#xff0c;有非常多的干货&#xff0c;围绕打造 Copilot 应用展开。我会将基于 Data AI 比较重要的内容列…

ChatGPT简介|人机交互的新时代|小智ai

ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT-3.5丨开源AI平台 导语&#xff1a;随着人工智能的迅猛发展&#xff0c;ChatGPT&#xff08;Chat Generative Pre-trained Transformer&#xff09;作为一种基于深度学习的自然语言处理模型&#xff0…

从春节后央行的首批罚单,看金融反欺诈反洗钱的复杂性

目录 个人信息保护的问题 征信管理的问题 反洗钱与反欺诈的问题 金融欺诈愈加复杂多变 金融机构如何增强反欺诈反洗钱 春节后&#xff0c;央行公示首批罚单。其中&#xff0c;厦门银行被中国人民银行福州中心支行给予警告&#xff0c;并没收违法所得767.17元&#xff0c;处…

2020微信对话截图生成器,各种截图一键制作!

前言 上次有朋友说想要个微商作图神器,找了几款觉得功能一般般,就没有发出来,今天又有朋友私信了,对比了这几款,选择中一款不错的给大家分享一下,软件是安卓版的,打开就是VIP,无需去登陆了,直接使用即可&#xff01;嗯&#xff01;拉下去看下详情介绍叭&#xff01; // 软件…

呼唤正义的 AssangeDAO 众筹,会是一个骗局吗?

Jan. 2022, Sabrinafootprint.network Data Source: Footprint Analytics 目前 AssangeDAO 是JuiceBox 历史上最大的 DAO&#xff0c;超过了 ConstitutionDAO 的筹集。 AssangeDAO是在2021年12月10日由一群赛博朋克发起的。它累计募集了17,442.49 ETH &#xff0c;所有资金都…

中国互联网众筹行业

近些年&#xff0c;中国互联网发展迅速&#xff0c;众筹这种起源于美国的新型互联网金融模式更是一直处于风口浪尖。在“大众创业、万众创新”的背景下&#xff0c;这种低门槛的融资模式也深受欢迎&#xff0c;加上阿里、京东、苏宁三大电商的巨头的相继入场&#xff0c;更令这…

海外众筹 | Kickstarter热门众筹项目汇总

筹集资金&#xff1a;&#xff04;837,890&#xff08;仍在筹集中&#xff09; Backer数量&#xff1a;3,194 VELO推出了世界上第一款可在3种尺寸之间轻松切换的硬边可扩展行李箱&#xff0c;它可以转换为16英寸小型随身携带&#xff1b;22英寸中型托运行李&#xff1b;26英寸…

众筹平台网站

以下收录目前国内仍在正常运营的所有众筹网站&#xff1a; 追梦网 - 创意计划众筹平台 和点名时间一样&#xff0c;最早开始涉足众筹的国内网站。 觉 JUE.SO 也是有资历了&#xff0c;专注预售500年。 EMIE,亿觅创意网 这个网站转型了&#xff0c;似乎离众筹已经越来越远。 众筹…

python生成dat文件_基于Python的DTMF信号识别

前言 我这标题起得怎么这么像课程论文呢…… 啊,放心啦,这不是课程论文,这只是一个有趣(且值钱)的程序。 起因是这样的。我加了几个软件兼职群,前几天我发现其中有一个项目,是利用FFT识别信号啥的,报价700,性价比对于我来说我觉得挺高的了,看样子好像也不难,我就接了…

他是程序员出身,做了一款最遭人“恨”的App,挑战张小龙!

????????关注后回复 “进群” &#xff0c;拉你进程序员交流群???????? 作者丨流水不争先 来源丨技术领导力(ID&#xff1a;jishulingdaoli) “嘀嘀&#xff0c;嘀嘀”&#xff0c;无论何时何地&#xff0c;打工人最怕听到的声音&#xff0c;就是钉钉的消息提示…

《周鸿祎自述:我的互联网方法论》---- 读书笔记

文章大纲 第一章 欢迎来到互联网时代第二章 互联网里的用户至上第三章 颠覆式创新第四章 免费时代第五章 体验为王第六章 互联网方法论附录 周鸿祎批注“遗失的乔布斯访谈” 周鸿祎个人简介&#xff1a; 周鸿祎这个人比较有争议&#xff0c;如果不是他&#xff0c;中国互联网的…

2022年终总结(脚踏实地,仰望星空)

2022年终总结 回忆录 2022年焦虑和快乐是这一年中最大的两种情绪了。焦虑主要是因为心里的三块石头&#xff0c;从年初就开始悬着。第一块石头&#xff0c;科研论文录用&#xff0c;第二个石头&#xff0c;拿到国奖&#xff0c;第三个石头是拿到满意的offer。目前只剩下最后一…

论文精读:关于导通一体的信号新颖设计及分析

英文标题&#xff1a;A Novel Signal Design and Analysis for Navcom 中文标题&#xff1a;一种导通一体化信号设计分析 作者&#xff1a;Ji Jing&#xff0c;Chen Wei&#xff0c;Liu Yuting&#xff0c;Du Luyao&#xff0c;Lu Hongyang 一、背景简介 北斗三号全球系统已于…