我正在研究人脸识别。 我曾经使用TensorFlow retrain.py
来训练数据我的问题是... 1. Tensorflow如何工作? 2.是否使用CNN? 3.如果我错了请纠正我 4.训练模型的步骤-提供图像->调整图像大小->瓶颈->使用CNN进行处理? ->显示图形作为输出? 5.为此,我需要一些参考。
答案 0 :(得分:0)
1 — Tensorflow是用于机器学习的数学库。可以将其视为计算机视觉的OpenCV或Web开发的Bootstrap。
2-是的,Tensorflow确实使用了卷积神经网络。为此,它有一个名为Keras的专门库。
3-通常是,但是还有很多其他内容。这是更详细的过程:
a-您提供图像或称为数据集。如果要创建一个模型来识别猫中的狗,则应该有4个数据集;
培训文件夹
--------------狗文件夹
-------------------------------- dog1.jpg
-------------------------------- dog2.jpg
----------------- cat文件夹
-------------------------------- cat1.jpg
-------------------------------- cat2.jpg
验证文件夹
--------------狗文件夹
-------------------------------- dog3.jpg
-------------------------------- dog4.jpg
----------------- cat文件夹
-------------------------------- 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