用PyWebIO“交互” 呈现人工智能学习成果

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:easy8023
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  涉及学科:信息技术
  人工智能是通过智能机器延伸,增强人类改造自然、治理社会能力的新兴技术,也是近几年中小学信息技术课程中最受关注的技术之一。高中信息技术课程将“人工智能初步”作为选择性必修模块。《普通高中信息技术课程标准》(2017年版2020年修订)鼓励学校建立信息技术实验室,提供开源硬件及开源AI应用框架,让学生搭建简单人工智能应用模块,并能根据实际需要配置适当的环境、参数及自然交互方式等,体验各种经典算法和应用。
  绝大多数的人工智能课程,都会提供一些相关的体验活动和实验活动。最常见的是机器学习中的经典算法模型,如回归、聚类、决策树、神经网络等。借助参考代码,学生通过整理数据集,经过一定时间的训练后,一般都能顺利得到学习成果,即人工智能模型。那么,如何将这些模型部署为人工智能应用,直观形象地呈现他们的学习成果呢?
  ● 思考:将人工智能模型部署为应用的一般方式
  训练人工智能模型的最终目的是解决问题,如实现人脸识别、物体分类等。这些功能整合在一个信息系统中,就形成了智能信息系统。将人工智能模型部署为人工智能应用的前提,是具备一定的信息系统开发能力。如果仅仅将人工智能部分独立出来,部署为一个人工智能应用,实际上就是将数据输入和模型结果输出的环节剥离出来,这需要借助TK、EasyGUI或者PySimpleGUI等能够设计应用程序界面的库。如果输入的数据比较复杂,还需要QT之类的专业库支持。如果要部署为Web应用,则要采用Flask、Django之类的Web框架。
  一般而言,高校学生在学习人工智能课程前都已经学过程序设计,具备一定的编程能力,如何部署AI应用不需要教师关心。但中小学不一样,由于义务教育阶段的信息科技课程标准还没有正式发布,一些学校往往是并行开设人工智能课程和编程课程,导致学习人工智能的学生,很多并不具备相应的编程能力。即使在高中,“人工智能基础”模块是选择性必修,学生虽然已经学习过两个必修模块,但是编程技术并不扎实,用QT之类的GUI库编写复杂的程序,或者用Flask之类的Web框架编写Web应用,都有些力不从心。如果仅仅用input和Print语句进行输入输出,又很难得到直观形象的体验,相对来说,以Web形式“交互”是最好的选择。
  ● 发现:用PyWebIO编写交互式Web应用
  在本栏目的文章《用Python写一个基于Web的物联网应用程序》中,笔者曾经介绍了一个名叫“Remi”的Python库,可以在没有HTML和JS基础的情况下,快速开发出Web应用。但是,这个库的使用门槛还是稍微高了些,功能也比较复杂。笔者在比较当前众多的Python的输入输出和GUI库的基础上,最终发现了一个名叫PyWebIO的库,非常适合应用于人工智能模型的部署环节。
  1.PyWebIO库简介
  PyWebIO库是一个基于Web方式来实现输入输出(I/O)的Python库。这是北京航空航天大学在读研究生王伟民同学用业余时间写的库。目前在GitHbu上获得了高达1.6K的Star。它允许用户像编写终端脚本一样来编写Web应用或基于浏览器的GUI应用,而无需具备HTML和JS的相关知识。
  2.PyWebIO库的安装
  PyWebIO可以采用pip命令安装,具体为:pip install remi或者pip3 install remi
  3.PyWebIO庫的代码示例
  PyWebIO提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,相当于将浏览器变成了一个“富文本终端”,如图1所示。运行这段代码后,浏览器会自动打开一个本地的网址,出现如图2所示的界面。
  输入姓名再点击“提交”按钮,网页上就会输出相应的文字。这种基于Web页面的“交互”,体验比黑乎乎的终端界面要好很多。
  PyWebIO支持常见的网页控件。既然PyWebI的定位就是输入和输出,那么也可以将网页控件分为这两类,部分控件的说明如下表所示。
  尤其值得称赞的是,PyWebIO还支持MarkDown语法。除了输入输出,PyWebIO还支持布局、协程、数据可视化等特性。通过和其他库的配合,可以呈现更加酷炫的网页效果。
  如果需要了解更多关于PyWebIO库的资源,请访问github或者官方文档。
  Github:https://github.com/wang0618/PyWebIO
  文档:https://pywebio.readthedocs.io/
  ● 实践:基于PyWebIO部署的人工智能作品案例
  2020年,笔者和温州的其他几位教师一起承担了浙江教育出版社的初中人工智能教材编写。首选选择了几个常见的机器学习经典案例,然后设计为实验活动,让学生体会机器学习的一般过程。一个典型的实验大致分为“数据整理”“模型搭建”“模型训练”“模型测试”四个环节,用Jupyter来完成,实验效果较好。
  在学生完成实验活动后,也就是已经训练出人工智能模型后,笔者和其他几位教师又增加了“模型部署”的拓展活动环节,即利用PyWebIO来实现基于Web的数据输入和预测结果输出。学生需要增加的代码很少,效果很不错。以“手写体数字识别”实验为例,模型部署的代码如下页图3所示。
  代码中的ocr函数,本来就属于实验中给出的基本代码,实现模型根据输入的图片输出预测结果,用于“模型测试”环节。而PyWebIO实现了图片以Web上传的方式输入,模型预测结果以网页文字的形式输出,代码运行效果如图4所示。
  ● 反思:从普通交互到多模态交互
  Python作为人工智能领域的第一语言,虽然能够快速用于完成人工智能的各种实验,但其偏向于脚本执行的方式,内置的“交互”能力较弱,肯定需要借助于第三方的库。PyWebIO就是一个很好的例子,它能够将普通代码快速“变身”为Web应用,极大地提高了学生的学习收获感。
  当然,人工智能模型的呈现也不能仅仅满足于Web的交互,还需要结合摄像头、麦克风、传感器和执行器等,实现多模态交互。这里的“模态”(Modality)指感官,如人类有视觉、听觉、触觉、味觉和嗅觉等模态。多模态交互是指人通过声音、肢体语言、信息载体(文字、图片、音频、视频)、环境等多个通道与计算机进行交流,充分模拟人与人之间的交互方式。要实现多模态交互,除了PyWebIO之外,教师还要结合OepnCV、pinpong等第三方库,这是中小学人工智能课程开发需要关注的重点之一。
其他文献
“学导”课堂是指引导学生进行自主学习的课堂。基于“学导”的“微项目化”设计是指将一节课设计成一个微项目,通过微项目来引导学生学习,从而达成知能教学目标,培养学生的核心素养。微项目与项目不同,项目需要历经几节课或几周,内容更多更复杂,而微项目内容少,更集中,短小精悍,好操作,一两节课就可以完成,适合分散性知识的学习与掌握。基于“学导”的“微项目化”设计具体可以从创设真实情境、明确项目任务、分解核心问
如今与计算机绘图有关的专业很多,建筑、广告、园林、游戏、服装、影视等,都是由传统的手绘稿图进阶到计算机绘图。在初一的信息技术课程中,与绘图有关的软件,除了Photoshop,还有WPS文字和WPS演示。笔者结合“WPS画图”教学,以传统板块为起点进行了拓展,并总结了以下几点绘图技巧,进而有效培养学生的信息技术核心素养。
在信息技术学科教学中强调、强化灵活迁移模型与算法具有十分重要的意义。本文从信息技术课程对迁移能力的现实需求出发,整理学科核心素养下信息技术学科迁移的概念和内涵,构建问题解决取向下的迁移能力培养模型,并对信息技术学科中的教学给出几点建议,期望为新课程改革背景下的信息技术教学在如何培养学生的灵活迁移算法和模型能力方面提供一些参考。  ● 信息技術课程对迁移能力的现实需求  计算思维是信息技术学科核心素
随着信息技术在教学管理中的应用,数据采集变得越来越便捷,教学管理获得的数据也越来越多,数据分析有了用武之地。这让教学管理逐渐从经验判断走向了数据决策,逐步实现管理的精准化。近年来,笔者所在学校在认真分析教学管理中存在的问题后,开启了基于数据分析的小学教学管理研究。(以下将“小学教学管理”简称为“教学管理”)  ● 经验式教学管理,影响管理水平的提升  1.管理者个人经验影响教学管理效果  教学管理
近几年,关于核心三层架构理念的解读和实践研究已有一定的积累,初步完成了学科知识层、问题解决层、学科思维层三位一体的思考和分析,但依然缺少足够的使用经验介绍,因此,在具体教学中仍有大量的目标设定与达成度相差甚远。笔者认为,缺少对三层目标内在关系的梳理,就无法真正把握它,也就无法在教学实践中落实它,核心素养教育便无法真正落地。为此,本文将继续深入探讨三层目标设计与达成问题,抓住问题解决层这一核心素养落
摘要:传统文化进入课堂成为当前热点,许多学者对此进行了相关研究,但国内有关传统文化进入课堂的研究中大多未将信息技术考虑进去,而VR技术作为当前国内外最为火热的新兴信息技术之一,能够有效解决传统课堂教学在情境创设、时空切换、情感体验、思维训练等方面的问题。基于此,本文以佛山本土陶瓷这一典型传统文化为研究对象,对相关课例的设计与开发进行初步探究。  关键词:VR技术;陶瓷文化;课例  中图分类号:G4
多媒体作品创作是初中信息技术教材中“信息的加工与表达”模块的重要内容,旨在培养学生加工信息、使用不同的媒体技术工具进行有效的信息表达、借助信息技术创造性地解决生活和学习中的一些实际问题的意识和能力,提高学生的信息素养。此类内容的教学一般是利用多个课时围绕一个主题进行作品的创作。
●背景编程教育主要是利用适合儿童年龄发展的简化形式的编程工具,帮助儿童掌握计算机科学知识,发展理论思维能力。编程的魅力不仅在于编码,更重要的价值体现在问题解决的过程及思维能力的延伸,以及在此过程中对学习者观察、反思和结构性思考等无形技能的培养。为了更好地培养学生的创新能力。
2018年1月16日高中课程方案与高中各学科课程标准同步发布,2020年5月11日教育部印发高中课程方案和高中14个学科课程标准2020年修订版,高中信息技术教材也因由新课标的变化进行全新改版。如何基于全新课标、全新教材,落实学科培养目标,是高中信息技术教学、教研面临的一个大课题。下面,笔者将通过分析新课标、新教材(下称“双新”)的主要变化,结合本地教学实施前后问卷情况,阐述对“双新”视阈下高中信
为了解决当前人工智能教材引导性不足、情意类活动缺乏等问题,作者从AR融合出版角度思考人工智能教材开发,发挥AR融合出版的情境性、交互性、引导性特征,设计了基于AR技术的