【发布时间】:2018-11-21 16:14:03
【问题描述】:
当我意识到出现问题时,我正在创建颜色预测器。我让模型成功运行,但预测总是在大约 2.5 到大约 5.5 的相同中值范围内。该模型应该输出对应于每种颜色的 0 到 8,并且我对每种颜色都有均匀数量的数据点进行训练。有没有更好的模型我可以使用它来预测某个值是 0 还是 7?我假设它不会,因为它认为它们是某种异常值。
这是我的模型
const model = tf.sequential();
const hidden = tf.layers.dense({
units: 3,
inputShape: [3] //Each input has 3 values r, g, and b
});
const output = tf.layers.dense({
units: 1 //only one output (the color that corresponds to the rgb values
});
model.add(hidden);
model.add(output);
model.compile({
activation: 'sigmoid',
loss: "meanSquaredError",
optimizer: tf.train.sgd(0.005)
});
这是解决我问题的好模型吗?
【问题讨论】:
-
欢迎来到 SO;我建议编辑您的问题,删除讲故事和多余的信息(它只会造成混乱,降低获得答案的机会),并准确地和简洁地阐明什么正是 是您的问题(目前还不清楚)。请务必阅读How do I ask a good question?
-
为什么不为每种颜色创建一个平衡的数据集?例如,每个类有 100 个数据点。我认为你正面临阶级不平衡的问题。
-
@sjishan 我花了时间为每种颜色获取 20 个数据点,但问题仍然存在,仍然从未离开那个中值范围,但是很好的建议,我会在所有数据点上达到 100,但是等待某些颜色随机生成 100 次非常罕见
-
@desertnaut 感谢您的提示!我试图删掉背景信息,只保留大部分能解决我问题的内容
-
输出是否需要是 1 到 8 范围内的整数?因为如果是这种情况,您将使用回归来解决分类问题。此外,您可以为模型添加非线性。
标签: javascript tensorflow machine-learning tensorflow.js