AI Studio开课心得
该项目为重庆大学与百度合作的基于百度飞桨和“对抗式学习”教学法的深度学习课程改革。诣在利用AI Studio平台辅助课程教学,同时减轻学生学习成本。该项目在不同年级的三门课程中进行,难度由易到难,体现教学过程的渐进性。下面分别介绍这三门课程。
新生研讨课(大一)
考虑到学生能力,本阶段的教学目标是使学生大致了解深度学习的背景,掌握使用easyDL平台迅捷训练并部署深度学习模型的方法,基本掌握使用API调用已部署深度学习模型的方法。学生使用easyDL平台进行不同的深度学习项目训练(包括学校地标建筑识别、食物识别等),最终完成度较高,效果较好。
下面展示课程中关于调用API部分的教学文档。
如何在代码中调用easyDL训练出模型的API
训练模型
直接使用easyDL训练,略。
查看模型配置信息
下面演示如何获取调用模型API的关键参数,API_KEY、SECRET_KEY、MODEL_API_URL
- 首先进入easyDL->我的模型,在训练好的模型一栏点击服务详情->立即使用
- 在应用列表中找到模型对应的应用,点击管理
- 得到API Key、Secret Key、请求地址(MODEL_API_URL)
代码调用API
官方文档:easyDL图像分类API调用文档
在该文档中可以查看API请求参数、API调用错误时返回错误代码的含义,以及API调用示例代码
创建python文件,粘贴官方API文档中的Python3示例代码
需要更换的参数:
- IMAGE_FILEPATH 图片地址
- PARAMS[‘top_num’] 调用API返回的分类数量
- MODEL_API_URL 模型API请求地址
- ACCESS_TOKEN 改为空字符串 “”
- API_KEY
- SECRET_KEY
运行程序,即可得到API的response信息,格式为JSON:
解析该JSON,从results列表中[0]元素得到置信度最高的分类,即为调用模型API得到的预测结果。
计算机网络安全(大三)
大三年级的学生已经掌握计算机网络,数据库,数据结构等核心课程,并对python语言十分熟悉,故在这一阶段的教学目标更改为了解深度学习基础与飞桨框架基础,使用AI Studio独立进行深度学习项目开发。
鉴于人脸识别涉及到计算机网络安全相关知识,故选用基于深度学习(飞桨框架)的人脸识别项目作为该课程的项目。
课程链接:重庆大学-飞桨入门
其中课节3为该课程项目,fork自:人脸识别
人脸识别
数据集
数据集中原本有章子怡、姜文、彭于晏三位明星的人脸图片,在其中加入赵丽颖、白敬亭和本人照片构成新的数据集。 总计630张图片,章子怡100张,姜文103张,彭于晏114张,白敬亭104张,赵丽颖105张,数据集作者本人104张。按照9:1的比例进行划分,90%用于训练,10%用于测试。
- 学生在这一过程中掌握基本的数据集划分方法及数据预处理步骤。
模型
以经典模型VGG13作为项目基线模型,在原始数据集上能达到90%左右的识别准确率。
- 学生在搭建模型的过程中进一步加深对深度学习模型构建的理解,及掌握paddlepaddle框架的使用基础。
损失函数、优化器
使用的是交叉熵损失函数,该函数在分类任务上比较常用。
并使用随机梯度下降法SGD优化器对模型权重参数进行更新。
- 学生在这一过程中理解模型评价重要指标loss及梯度反向传播的过程,并理解不同优化器的作用原理。
模型训练与预测
训练分为三步:第一步配置好训练的环境,第二步用训练集进行训练,并用验证集对训练进行评估,不断优化,第三步保存好训练的模型。
模型预测阶段先加载训练好的模型,再调用准确率函数对模型识别的准确率进行验证。
- 学生在这一过程中掌握模型训练的基本流程,并掌握对模型进行评估的参数与方法。
总结
该课程项目诣在使学生理解深度学习基本训练过程及掌握百度飞桨框架的基本使用方法。
通过查阅已有相关论文,使用更深的网络模型(如VGG-16,ResNet-18等)、调节参数(如batch_size,learning_rate等)优化模型,提高识别准确率。
在项目过程中,学生的自主学习能力、资料收集能力、动手实践能力均得到提高。
深度学习(大三)
在深度学习课程中,学生会进行深度学习基础知识的学习,故该阶段对学生的实践能力提出了更高的要求。
为鼓励学生积极参与,该项目以比赛形式开展。
百度深度学习开发赛
总结
在选定题目的过程中,学生的资料收集能力得到了锻炼。
在开发过程中,学生的团队协作能力、动手实践能力也得到提高。