预测给定图像中的数字(0到1)

我对机器学习和神经网络完全是初学者。目前我在做一个项目,项目中我有很多图片存储在MongoDB数据库中。每张图片都有一个从0到1的数字。例如,“图片1”的数字是0.71。

我想根据数据库来训练我的模型。项目的主要目标是,在模型完成训练后,给定一张图片,模型能够返回(预测)一个从0到1的数字。经过一些研究和询问了一些人后,我了解到一些对项目有用的库:TensorFlow和Keras。有些人告诉我这是不可能的,但我不是很确定,所以我来这里询问。

所以我的问题是:这是可能的吗?如果可以,我该如何实现?您推荐使用哪些特定的工具?如果您为我的项目指定了一种方法,我需要以某种形式导出我的MongoDB数据库吗?因为我是初学者,也许您认为有一些教程可以帮助我?

如果这个问题有点太笼统了,或者有任何误解,请评论,我会尽力回答。提前感谢!


回答:

你想做的事情完全是可行的,这种类型的项目被称为回归,由于你使用的是图像数据,最好的模型类型被称为卷积神经网络(CNN),如果你想构建自己的模型,你需要一些理解。我做过一个项目,需要使用图像预测细菌菌落的数量,这与你的问题很相似,只是我对预测值没有界限。

CNN是什么?这里有一个链接

基本上,CNN会理解图像中的特征,并使用这些特征来预测一个值。

你不需要创建自己的模型,大多数人只是使用科学文献中设计良好的模型。

选择Keras,这是最简单的框架,效果很好。这里是如何实现VGG16(一个可能最适合你问题的架构)的方法:链接

你应该按照这个教程开始使用Keras进行开发。

最后一个提示:不要使用VGG16实现中的最后一层,使用一个带有一个神经元的Dense层,并使用sigmoid/linear/leaky relu激活函数。

即:

#model.add(Dense(1000, activation='softmax'))model.add(Dense(1, activation='sigmoid'))

这意味着:预测1个数字(sigmoid会将其限制在0和1之间,但也许lrelu或linear更好)

另外,我猜你可以使用MongoDB来读取图像作为数组,但我建议只是将图像放在一个文件夹中。

编辑:在编译模型时,使用均方误差,如

adam = keras.optimizers.Adam(lr=1e-4)model.compile(optimizer=adam, loss='mse')

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注