团队项目选择

项目 内容
课程:北航-2020-春-软件工程 博客园班级博客
做业要求 团队项目选择
咱们在这个课程的目标是 提高团队管理及合做能力,开发一项满意的工程项目
这个做业在哪一个具体方面帮助咱们实现目标 肯定工程项目,进行初步设计

项目介绍

选题过程详见: 选题与大纲html

项目名称:Visual Pytorch前端

项目介绍:实现一个能够经过拖拽组建进行编程的在线编程网站。核心功能是经过图形拖拽的编程方式,来生成神经网络的PyTorch项目代码,从而帮助深度学习初学者快速入门。但愿能在上一版本的基础上实现更多的网络层、支持封装、代码的可视化、经典模型的嵌入、模型的部署等附加功能等。python

NABCD分析

NABCD的含义请参考连接: 现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD编程

1. Need:

现在Deep Learning大火,不管是计算机专科出生的学生,仍是有必定数学工程基础的计算机爱好者,甚至是彻底对编程不熟悉的人都但愿能了解一些深度学习的基础知识、背后原理,而且亲手搭建一个神经网络,但刚入门这一领域中着实面临着一些困难:后端

  • 除了看教材、博客之外,没有好的入门方法
  • 教材中的概念比较抽象,而且有大量数学推导,不容易看懂
  • 大多例子都是以代码形式的,不直观,不熟悉python语言的人难以读懂
  • 搭建一个模型须要学习的代价大,难以边作边学

可见现有的学习途径对学习者并非很友好。因此咱们想搭建一个在线平台, 提供给用户可拖拽的编程方法,经过拖拽图形链接成网络(或者提供一些经典的网络结构),自动生成程序,而且教初学者本地部署模型,加载数据并进行训练。用这种方式能够帮助没有接触过deep learning的人更快、更直观地理解基本原理,并作一些前期的简单练习,可以快速入门。服务器

2. Approach:

大体分为前端和后端两部分:网络

  • jsPlumb实现前端的可拖拽网页,提供Pytorch模型中所须要的各个组件,以及查看代码、上传数据、生成模型等功能。
  • Django框架实现后端服务器功能。
  • 基于Pytorch进行开发,在项目中嵌入tensorboard做为代码的可视化。

3. Benefit:

详见:功能设计app

4. Competitors:

目前来看,针对深度学习的图形化编程网站或软件尚未,可是存在3个相似的网页:框架

  1. tensorboard函数

    pytorch自带的tensorboard能实现模型可视化:在本地使用SummaryWriter可在本地生成pytorch网页,进行模型的初步可视化。

    然而目前作深度学习的不多有人使用这一方式,缘由多是:①不会用,②生成很麻烦,③可视化效果很差。这也是咱们但愿改正的地方,咱们但愿在咱们项目中能嵌入tensorboard,让使用者很是方便地生成模型视图。

ScreenClip
  1. tensorflow playground

    tensorflow开发的一款线上学习,自动调节参数训练并可视化的网页。点击标题便可访问

    缺点是①模型简单,只能使用固定的神经元;②数据单一,普通的二维点分类

  2. NVIDIA AI PLAYGROUND

    tensorflow playgroud相似,网络端部署了模型而且能够实如今线图像生成功能。可是操做者不知道网络实现的具体细节,不利于学习Pytorch。

  3. 上一届Visual Pytorch

    【Gamma】发布说明是学长的最终版发布说明。从该博客中咱们能够看到,他们已经实现了比较核心的功能。好比参数的调整,模块的删除,代码优化,引导内容。

    然而不足之处也有不少:模型不支持缩放,以及可视化结构的调整,模型的分享,比较关键的激活函数层、BN层、反卷积层,以及损失函数、优化器的选择,数据预处理部分,经典模型的集成,Tensorboard可视化的集成等。

    在Benefit一项,咱们设计了咱们的项目在他们的基础上改进的地方。具体设计的部分见功能规格设计。

上面的一些网页实现了一些功能,甚至仍是颇有趣的功能,可是没有提供给初学者一个方便学习的接口,学习网络结构的搭建,并亲手实现一个,这样才能获得一种成就感。

咱们的项目核心竞争力在于免费和直观、便于入门,一个方便的工具天然容易让有需求的人接受,让以前没有使用过的用户开始使用咱们的产品,即便没有学习deep learning计划的人,在初次尝试以后也可能有了学习的热情。

5. Delivery:

  • 在CSDN论坛、知乎等相似的技术论坛、菜鸟教程等相似的教程网站上推荐咱们的网站。
  • 也能够在公众号上出推送,分享咱们的网页、展现咱们的功能。
  • 能够和高校的实验室老师取得联系,做为新加入实验室的同窗入门的教程软件。

用户量评估

  • 在哪里发布软件?估计一周后用户量多少呢?

    线上网站。
    \(\alpha\)版本:预计发布之后一周内的模型的使用次数达到300,注册的用户量达到100。
    \(\beta\)版本:预计发布之后一周内的模型的使用次数达到600,注册的用户量达到200。
    \(\gamma\)版本:预计发布之后一周内的模型的使用次数达到1000,注册的用户量达到300。

电梯演说

各位领导/合做伙伴:

咱们的visual pytorch网络的扩展和封装是为了解决 但愿接触Deep Learning却没有基础的学习者 的痛苦,他们须要 更直观、更易懂的方式而不是单纯的教材和样例来入门,可是现有的方案并无很好地解决这些需求,咱们有独特的办法jsPlumb+Django来实现前端可拖拽以及先后端连接,它能给用户带来好处是能够更直观地理解DL中神经网络训练的过程,并复现一些经典的网络,亲手实现图像分类与分割、目标探测、图像生成,远远超过竞争对手tensorboard tensorflow playground NVIDIA AI PLAYGROUND,包括咱们之前的版本。同时,咱们会在CSDN、知乎等技术论坛,或是菜鸟教程等教程网站上宣传咱们的网站,能很快地让大部分用户知道咱们的产品,并进一步传播。 咱们相信新的改进能给咱们带来用户量及使用量的改善 。