您的问题在很大程度上取决于您用于机器学习的方法。听起来您想从图像中提取某些特征,例如“曲线和直线”,并将它们用作训练数据。这个提取步骤通常不被认为是训练过程的一部分,而是预处理的一部分。在预处理过程中,您读取图像、提取某些特征或执行一些转换并将新数据存储为您的实际训练样本或立即将它们用于训练而无需中间存储。如果您想多次使用图像进行训练并且希望在未来的训练周期中跳过预处理步骤,通常存储此信息是一个好主意。
比较文件存储和数据库存储
您如何存储处理过的数据以进行训练相对独立于机器学习的应用,并且适用于数据存储的一般原则。将数据存储在平面文件中通常非常方便,因为磁盘存储很容易获得,并且用于存储和读取文件的 API 是您的编程语言和操作系统的一部分。数据库为您的架构增加了额外的复杂性,但它当然也有好处,特别是如果您想让训练数据可用于其他实例或不同的学习引擎。如果您正在处理大量数据,则结构良好的数据库可以帮助您更好地组织数据并提供有用的功能来有效地处理这些数据。
请记住,您的 AI 的实际训练最初是进行的,一旦完成,您就可以在没有所有训练数据的情况下推出您的 AI。因此,您只需要在应用程序生命周期的有限时间内处理训练数据。训练的速度通常不是很重要,因为它只发生一次,而不是在 AI 的日常使用过程中发生。因此训练过程中文件访问的速度可以忽略不计。
结论
总之,对于大多数应用程序,仅使用平面文件的简单实现就足够了。如果您想将每个样本存储在一个单独的文件中或将它们打包成更大的批次并使用一些元信息来识别文件中的各个样本,则更多的是品味问题,而不是真正的技术相关性。
训练后存储数据
从您的问题来看,您听起来好像总体上了解机器学习。只是为了澄清初学者的一个潜在误解 - 您不必在训练后将任何“学习”信息存储为数据,因为每个训练步骤只是适应神经网络中的权重和偏差。如果您在未来的训练周期中不需要它,则可以在成功训练后丢弃实际的训练数据。
更多信息/参考
为了完成我的回答,我想推荐斯坦福大学关于 CNN 和视觉识别的当前课程(日期为 2017 年春季)。它是实现用于图像识别的神经网络的重要信息来源。