繁体   English   中英

如何在TensorFlow中使用我自己的图像?

[英]How do i use my own images in TensorFlow?

我知道之前已经问过这个问题,但我还没找到能够合作的答案。 我是Python和Tensorflow的新手,但设法使用MNIST图像集将我的准确度提高到+ -99.3%。 现在我想尝试使用我自己的图像,但事实证明这比我预期的要困难。

我已经在Tensorflow网站上阅读了数百次的教程页面,但这对我来说没有意义,无论我尝试什么,我最终都会收到警告。 现在我想弄清楚自己,但有没有人知道哪种方式最容易使用我自己的图像? 或者任何例子? 我一直在网上找他们,但感觉我找到了1000个,但没有一个以我能理解的方式得到解释。

感谢您的帮助。

好吧,所以把它放在一起,你有42个课程,并期望每个大约有10个图片。

这让你非常需要两件事:

您已经在评论中解决了数据扩充的可能需求,您可以发现:为了充分利用每个类的10个图像,您需要对它们应用一大堆变换。 可能超过10/20的总图像:

  • 裁剪
  • 缩放
  • 噪声
  • 对比度/颜色/亮度调整
  • 回转

图像分类的数据增强的一个很好的例子是官方的resnet示例模型

第二是转学习。 当您尝试从非常少的数据中学习42个类的模型时,您可能可以通过从其他数据训练的模型开始,然后使用新数据集重新训练最后(几个)层来做得更好。 这背后的原因是初始训练的更大的示例空间将帮助您的分类器学习各种常见的图像特征,您的转移学习分类器可以使用它来更快地实现更高级别的识别。

当然,另一种选择是,您可以进行某种形式的主动学习 - 训练分类器,然后显示您的令牌图像(可能通过网络摄像头,对每个帧进行分类),当它出错时,将其保存为下一轮训练的例子。 这需要更多的工作,你必须为它构建一些基础设施,所以我开始转移学习。

然后,您将了解为转移学习开始的架构问题。 对于你正在做的事情,起初可能太多了,但是股票MNIST模型可能比你想要的更简单。 你需要做一些实验 - 一个改进的LeNet风格的分类器,比如常见的MNIST例子可以很好地工作(添加另一个卷积层,添加batchnorm,也许有点辍学)。 或者,您可以从预先训练的Mobilenet网络开始,并从中学习转移。 我很想从后者开始,除非你对推理速度有一些严格的计算限制。

对于你的图像,我首先要创建一个JPEG图像目录。 处理它们的最“官方”方式是这个答案中的过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM