我正在研究人脸识别。我曾经使用TensorFlow retrain.py
训练数据我的问题是...1. Tensorflow如何工作?2.是否使用CNN?3.如果我错了请纠正我4.训练模型的步骤-提供图像->调整图像大小->瓶颈->使用CNN进行处理? ->显示图形作为输出?5.为此,我需要一些参考。
1-Tensorflow是用于机器学习的数学库。可以将其视为计算机视觉的OpenCV或Web开发的Bootstrap。
2-是的,Tensorflow确实使用了卷积神经网络。为此,它有一个名为Keras的专门图书馆。
3-通常是的,但是还有很多。这是更详细的过程:
a-您提供图像或称为数据集。如果要创建一个模型来识别猫中的狗,则应具有4个数据集;
培训文件夹
---------------狗文件夹
------------------------------ dog1.jpg
------------------------------ dog2.jpg
---------------猫文件夹
------------------------------ cat1.jpg
------------------------------ cat2.jpg
验证文件夹
---------------狗文件夹
------------------------------ dog3.jpg
------------------------------ dog4.jpg
---------------猫文件夹
------------------------------ cat3.jpg
------------------------------ cat4.jpg
b-是的,调整大小对于视觉机器学习至关重要,但是您还应该对数据集图片进行其他修改。例如,旋转,倾斜和翻转。为什么?因为您想训练模型以识别各个位置的对象。例如,如果您的数据集包含站立的狗,则不会识别出睡觉或仰卧的狗,因此您需要翻转狗站立的图像。幸运的是,您不必手动执行此操作,因为Keras为您提供了一个类,它为您执行所有图像加载,调整大小..... etc等,称为ImageDataGenerator。进一步了解here
c-瓶颈是神经网络的体系结构,通常有助于避免过度拟合。并非每个模型都遵循瓶颈架构。这是机器学习中最具挑战性的部分,它找到正确的体系结构,层组合和参数以实现高精度。互联网上已经有针对不同应用的内置模型,因此您不必从头开始设计神经网络体系结构。例如,有一个名为Yolo的模型可以识别各种物体(人,鞋子,手机,冰箱等)。幸运的是,Keras允许您加载外部模型并对其进行修改以适合您的应用程序,而这正是当今大多数数据科学家所做的事情。
d-您已经在阶段c中使用CNN处理。
e-正确,图表和输出应概述模型的准确性。通过根据您在阶段a中提供的验证数据测试模型的性能来衡量准确性。
不幸的是,我没有相关的参考,但是我通过参加以下课程学习了这些信息:
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning