tensorflow - 为什么我在深度学习(回归)中得到一个等间距的方形真实预测图?
问题描述
我使用 Tensorflow 2.0 进行回归,但在训练损失方面表现不佳。绘制真实值与预测我总是得到这种奇怪的行为:
我有一个带有两个输入和一个输出的模型。一个输入是三维体素图像 (None,32,32,32,1),第二个是数字输入 (None,2)。输出也是数字(无,6)。首先,我使用一个由“CNN-CNN-MAX ...”组成的简单 CNN,第二个输入通过一些 FC。我连接两个分支并通过一些额外的 FC。我能够对小批量进行过度拟合,并且在批量 32 时实现了 < 0.1% 的相对误差。我正在使用 Adam。所有层都有 LeakyRElu 激活。没有正则化。我对输入使用 z 分数缩放。我在每个 epoch 中抽取固定数量的样本并随机播放这些样本。我尝试了不同的学习率、优化器、架构、均方或均值绝对损失等。过度拟合的样本在真实与预测(线性相关)中表现出完美的行为。
对于更多示例,我得到了图片中的行为。我认为这是一种非常“特殊”的行为,但我无法在网上找到类似的东西。这种行为的平均相对误差约为 10%。
有没有人看到这种行为?可能是什么原因?我想我什么都试过了。我认为这与洗牌有关,但停用并没有帮助。有什么建议么?
解决方案
推荐阅读
- android - 处理片段中的后按,完成功能与活动相同
- sqlalchemy - 通过 sqlalchemy 创建 ReplicatedMergeTree 表
- azure-devops - 在 Azure Devops Release Pipeline 中,如何获取与发布关联的生成的名称?
- python - 如何自动将命令行输入输入python程序
- python - Matplotlib:绘制比屏幕上可用像素更多的数据点
- python - 如何获取手套向量的特征名称
- android - Netty 库在 android 发布 apk 中不起作用?
- angular - ERROR 错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改。角
- python - Python 中的 AWS lambda 预期的预期块错误
- bash - 如何打破作为 grep C1 输出的行