惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
博客园 - 司徒正美
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Visual Studio Blog
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
博客园 - 聂微东

Dr34m's Blog

I Expect You To Die(我希望你死) 1,2,3 完整中文攻略 Linux换国内源 && docker安装 && 换加速镜像 Vue3 + Element-Plus 极简速查 随笔 pyinstaller打包的程序执行报错Failed to extract xxxx decompression resulted in return code -1 taoSync排除项简易教程 apscheduler的cron配置项 如何在绿联NAS中使用TaoSync同步我的文件到各个网盘 GB28181抓包记录 JS计算字节大小,把字节转换为KB/MB/GB/TB等 在Python中使用onvif管理摄像头,包括设备发现,获取RTSP地址,获取设备信息,截图,云台控制与缩放,设置时间 编写bat脚本实现对vue项目构建并压缩 内网穿透工具frp快速使用 CentOS 7.9 安装基础开发环境jdk redis nacos nginx mysql Pyinstaller 逆向 VUE实现复制与粘贴_获取剪切板内容 Electron + xterm.js + node-pty + vue 实现本地终端 child_process exec 中文乱码 Windows&Linux 解决方法 yum 更新 gcc CentOS安装并使用conda 将fluid主题博客的静态资源由第三方改为本地存储 一个上手即用的通用公众号/小程序/h5/app框架 python批量转化doc到docx SpringBoot单元测试注入空指针 随笔 python归一化数据 windows下python安装sasl遇到的问题及解决 将对象List中的某个字段放到新的List中[转载] Python http.server 本地服务支持跨域 TensorFlow入门
TensorFlow 预测出现NaN的一种可能以及解决方法
Dr3@m · 2022-04-21 · via Dr34m's Blog

现象

  • 使用TensorFlow进行训练(model.fit)时,一切正常,并且对测试数据集的预测结果(model.evaluate)也表现正常,这时候保存模型
  • 对训练集中单独一条数据,或者少量数据进行预测,预测结果出现NaN
  • 如果对稍大量数据预测,则能正常出结果,但预测结果准确度低于预期
  • 如果对大量数据预测,则结果准确度符合预期

原因

经过分析,是由于训练和预测使用的归一化方法中使用的变量不一致导致的,训练和预测都是用下边的归一化方法

1
2
3
4
train_stats = train_dataset.describe().transpose()
train_stats_final = train_stats[['mean', 'std']]
def norm(x):
return (x - train_stats_final['mean']) / train_stats_final['std']

但由于训练和预测的数据不一样,导致其meanstd值不同,尤其预测用数据量较少时,其值差别巨大,导致训练的模型不适用于预测时归一化出来的数据,最终预测结果出现NaN

解决方法

在训练保存模型时,同时对训练数据的meanstd值保存,在预测时使用

1.保存

1
2
3
train_stats = train_dataset.describe().transpose()
train_stats_final = train_stats[['mean', 'std']]
train_stats_final.to_csv('xxx.csv')

2.使用

1
train_stats_final = pd.read_csv("xxx.csv", index_col=0)